Aller au contenu

Ptitony72

Membres
  • Compteur de contenus

    29
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Ptitony72

  1. Voila c'est réduit. Je savais pas qu'on pouvais régler la taille des images. Merci pour cette solution x_all.
  2. Bonjour tout le monde. J'ai un problème avec certaines de mes hachures sur un projet. Comme vous pouvez le voir sur les screens si dessous, elle sont toutes déformées. Les hachures en gris sont normalement des HEX. 600x400http://img21.imageshack.us/img21/3397/47801798.jpg[/img] 600x400http://img21.imageshack.us/img21/6979/32795226.jpg[/img] Je pense que ce problème est lié aux fichiers car j'ai le problème sur plusieurs PC avec plusieurs versions Autocad (Map 2007, Map 2008, Full 2009). Par contre, je n'ai pas ce problème sur d'autres projets. Quelqu'un aurait-il une idée d'ou viens le problème? Vous trouverez un des fichiers ici : http://rapidshare.com/files/210736976/DCE_GO_Niveau_1.zip.html[Edité le 18/3/2009 par Ptitony72] [Edité le 18/3/2009 par Ptitony72]
  3. Impeccable Philphil Merci beaucoup. Pour répondre à ta question krunch, j'ai créé un fichier Calque.dwg avec dessus mes styles de cote et mes calques que je charge dans chaque plans afin d'avoir toujours les mêmes calques et les mêmes styles de cote sur tous mes plans. Par contre, tu est sur pour les guillemets ? Ca me mettais bien le nom du calque courant dans la variable "layer_courant".
  4. Bonjour tout le monde. J'ai créé le petit lisp suivant pour dessiner mes côtes à la bonne échelle. (defun c:COT20 () (setq "layer_courant" (getvar "clayer")) (command "_insert" "Calque=" "0,0" "" "" "" ) (command "-cotstyle" "r" "ETCO 20ème") (command "clayer" "ETCO 20 Cotation") (command "cotlin") (setvar "clayer" layer_courant) ) Seulement, j'ai un petit problème : je n'arrive pas à revenir sur le calque précédent après avoir tracé ma côte. Pourtant, la variable "layer_courant" contient bien le nom du calque précédent. Quelqu'un peut-il m'aider à compléter cette routine ? Merci d'avance.
  5. Ptitony72

    Affichage des hachures

    En effet, je viens d'essayer sur le poste à mon collègue qui est en 2009, et ca marche très bien. Merci à tout le monde.
  6. Ptitony72

    Affichage des hachures

    Ok merci pour cette explication (gile). Bienvue pour l'armoire, un bloc que j'ai pas encore remis à jour. J'ai encore un problème avec un plan, quand j'xécute le lisp, il me met nil d'entré et ne fait pas les modifications. Sinon, ça a bien marché sur tous les autres niveaux. --> J'ai rien dis, j'étais pas en SCU général. [Edité le 1/8/2008 par Ptitony72]
  7. Ptitony72

    Affichage des hachures

    T'es sur quelle version lili2006 ? J'ai essayé sur la 2007 map3D et 2008 map3D et j'avais toujours le problème. Merci (gile). Une petite question, tu entends quoi par normale 0,0,1? (je vais aller consulter l'aide voir s'il parlent de ça)
  8. Ptitony72

    Affichage des hachures

    C'était exactement ça mon probleme (gile). J'avais remarqué que mes blocs n'étaient pas à 0 en Z mais je pensais pas que ca venait de la (et je ne voyais pas comment les remettre à 0 apart le faire bloc par bloc). Merci beaucoup :) Ps : si vous utilisez les quelques lignes de (gile), dévérouillez tous les calques avant [Edité le 1/8/2008 par Ptitony72]
  9. Ptitony72

    Affichage des hachures

    Voila, tu le trouvera ici.
  10. Ptitony72

    Affichage des hachures

    Je reviens avec mon probleme de hachures. Sur ce plan : http://img522.imageshack.us/img522/323/pbautocadft6.jpg J'ai mes blocs de luminaire 1x36W dans le rangement et le local linge sale qui sont identiques. Pour je ne sais quelle raison, les hachures apparaissent dans un et pas dans l'autre. Et si je change de SCU (pour mettre mon plan droit par exemple) les hachures vont apparaitre dans l'autre luminaire et disparaitre de ceux là. Quelqu'un aurait une idée de pourquoi? La seule solution que l'ai trouvé, c'est de me mettre en SCU général et de réinsérer mes blocs 1 par 1 (j'en ai 3000 à 4000 par niveau). Vous pensez qu'un lisp peut m'inserer un nouveau bloc à la place de l'ancien à la bonne échelle (soit à l'échelle 100 sur ces plans), avec le meme point de base, la meme rotation, sur le meme calque, et en conservant l'emplacement et les valeurs des attributs? Sinon, y'a t'il une solution pour contacter Autodesk ? Ils ont peut etre une solution eux. Merci d'avance.
  11. Ptitony72

    Affichage des hachures

    J'ai un problème dans le même genre : Mes hachures apparaissent bien dans certains blocs et pas dans d'autres. Plus étonnant, 2 blocs identiques l'un a coté de l'autre, je vais avoir des hachures dans un et pas dans l'autre. J'ai remarqué aussi que les blocs dont les hachures s'affichent varient en fonction du SCU. J'ai biens ma variable FILLMODE à 1 et REMPLIR actif. J'ai surtout le problème avec le type de hachure solid. Quelqu'un a déja eue (et résolu) le problème ? Autre question : Depuis le passage de Windows en SP3, j'ai des écritures qui apparaissent en italique. Quelqu'un sait comment les remettre normalement ?
  12. Merci beaucoup bred. Ca m'a permis de rendre fonctionnel ma légende automatique. Je laisse le code en dessous si ça intéresse du monde, je mettrais les fichiers qui vont avec dès que j'aurais trouvé comment faire. Y'a des trucs qui servent a rien pour le moment mais je compte l'améliorer un peu plus tard. ;;;----------------------------------------------------------------------------------------------------------------------------- ;;; LISTE DES VARIABLES ;;;----------------------------------------------------------------------------------------------------------------------------- ;;; ;;; ;;; os_courant --> accrochage aux objets courant ;;; sel_bloc --> liste des blocs sélectionnés ;;; nom_bloc --> nom du bloc courant ;;; bloc_insere --> liste blocs déjà inséré ;;; compteur --> compteur ;;; ptd --> point de départ ;;; pt1 --> point de départ éclairage ;;; pt2 --> point de départ commande ;;; pt3 --> point de départ courants forts ;;; pt4 --> point de départ éclairage de sécurité ;;; pt5 --> point de départ incendie ;;; pt6 --> point de départ appel malade ;;; pt7 --> point de départ courants faibles ;;; pt8 --> point de départ ;;; designation --> désignation du bloc courant ;;; categorie --> catégorie du bloc courant ;;; quantite --> quantité du bloc courant ;;;----------------------------------------------------------------------------------------------------------------------------- ;;; Routine principale ;;;----------------------------------------------------------------------------------------------------------------------------- (defun c:legende () (princ "Version 10/06/08") (command "_insert" "Calque=" "0,0" "" "" "" ) ;_ Insertion des calques (setvar "clayer" "0") ;_ Défini le calque "0" courant (setvar "cmdecho" 0) ;_ Désactive l'affichage à l'écran --> mettre à 1 (setvar "attreq" 0) ;_ Définit les attributs des blocs par défaut (setq os_courant (getvar "osmode")) ;_ Enregistre l'accrochage aux objets courant dans os_courant (setvar "osmode" 0) ;_ Désactive l'accrochage aux objets (setq bloc_insere nil) (setq ptd (getpoint "\nEntrer le point de départ : ")) ;_ Défini le point de départ par l'utilisateur (setq pt1 (polar ptd 0 0)) ;_ Défini le point 1 en fonction du point de départ (setq pt2 (polar ptd 0 9.5)) ;_ Défini le point 2 en fonction du point de départ (setq pt3 (polar ptd 0 19)) ;_ Défini le point 3 en fonction du point de départ (setq pt4 (polar ptd 0 28.5)) ;_ Défini le point 4 en fonction du point de départ (setq pt5 (polar ptd 0 38)) ;_ Défini le point 5 en fonction du point de départ (setq pt6 (polar ptd 0 47.5)) ;_ Défini le point 6 en fonction du point de départ (setq pt7 (polar ptd 0 57)) ;_ Défini le point 7 en fonction du point de départ (setq pt8 (polar ptd 0 66.5)) ;_ Défini le point 8 en fonction du point de départ (setq sel_bloc (ssget (list (cons 0 "insert")))) ;_ Sélectionne les blocs et les mets dans la variable sel_bloc (setq compteur -1) ;_ Initialise le compteur à -1 (car indexation dans un jeu de sélection commence à 0) (repeat (sslength sel_bloc) ;_ Répète la boucle autant de fois qu'il y'a de blocs (setq nom_bloc (cdr (assoc 2 (entget (ssname sel_bloc (setq compteur (+ compteur 1))))))) ;_ Met dans la variable nom_bloc le bloc courant et l'enlève du jeu de sélection sel_bloc (setq selection (ssget "_X" (list (cons 2 nom_bloc)))) (setq en (ssname selection 0)) (if (member nom_bloc bloc_insere) (princ (strcat "\nBloc déjà inséré")) (progn (setq bloc_insere (cons nom_bloc bloc_insere)) (setq enlist(entget en)) ;_ Récupère le groupe de codes DXF (setq blocType(cdr(assoc 0 enlist))) ;_ Enregistre le type d'entité (if (= blocType "INSERT")(progn ;_ Si le Type d'entité est une entité "Insert" (if(= (cdr(assoc 66 enlist)) 1)(progn ;_ --> See if the attribute flag equals one (if so, attributes follow) (setq en2(entnext en)) ;_ Récupère la prochaine sous-entité (setq enlist2(entget en2)) ;_ Récupère le groupe de codes DXF (while (/= (cdr(assoc 0 enlist2)) "SEQEND") ;_ --> Start the while loop and keep ;- looping until SEQEND is found. (if (= (cdr(assoc 2 enlist2)) "DESIGNATION")(setq designation (cdr(assoc 1 enlist2)))) ;_ Si l'étiquette de l'attribut est "DESIGNATION", mettre la valeur de cet attribut dans la variable "designation" (if (= (cdr(assoc 2 enlist2)) "CATEGORIE")(setq categorie (cdr(assoc 1 enlist2)))) ;_ Si l'étiquette de l'attribut est "CATEGORIE", mettre la valeur de cet attribut dans la variable "categorie" (if (= (cdr(assoc 2 enlist2)) "QUANTITE")(setq quantite (cdr(assoc 1 enlist2)))) ;_ Si l'étiquette de l'attribut est "QUANTITE", mettre la valeur de cet attribut dans la variable "quantite" (setq en2(entnext en2)) ;_ Récupère la prochaine sous-entité (setq enlist2(entget en2)) ;_ Récupère le groupe de codes DXF ) )) )) (princ (strcat "\nNom du bloc ----> " nom_bloc "")) (princ (strcat "\nCatégorie ----> " categorie "")) (princ (strcat "\nDésignation ----> " designation "")) (princ "\n ") (progn (if (and (= categorie "ECLAIRAGE")(/= (substr nom_bloc 1 1) "5"))(progn (command "_insert" nom_bloc pt1 "1" "1" "0") (command "changer" "d" "" "pr" "cal" "- ETCO - Luminaires -" "") (command "_insert" "*Cadre luminaire simple" pt1 "" "") (command "-style" "Romans" "romans.shx" "0.1" "1" "0" "" "" "") (command "texte" "j" "mg" (polar pt1 0 1.35) "0" designation) (setq pt1 (polar pt1 (* 3 (/ pi 2)) 0.4)) )) (if (and (= categorie "ECLAIRAGE")(= (substr nom_bloc 1 1) "5"))(progn (setq pt1 (polar pt1 (* 3 (/ pi 2)) 0.2)) (command "_insert" nom_bloc pt1 "1" "1" "0") (command "changer" "d" "" "pr" "cal" "- ETCO - Luminaires -" "") (command "_insert" "*Cadre luminaire double" pt1 "" "") (command "-style" "Romans" "romans.shx" "0.1" "1" "0" "" "" "") (command "texte" "j" "mg" (polar pt1 0 1.35) "0" designation) (setq pt1 (polar pt1 (* 3 (/ pi 2)) 0.6)) )) (if (= categorie "COMMANDE")(progn (command "_insert" nom_bloc pt2 "1" "1" "0") (command "changer" "d" "" "pr" "cal" "- ETCO - Courants forts -" "") (command "_insert" "*Cadre simple" pt2 "" "") (command "-style" "Romans" "romans.shx" "0.1" "1" "0" "" "" "") (command "texte" "j" "mg" (polar pt2 0 0.95) "0" designation) (setq pt2 (polar pt2 (* 3 (/ pi 2)) 0.4)) )) (if (= categorie "COURANT FORT")(progn (command "_insert" nom_bloc pt3 "1" "1" "0") (command "changer" "d" "" "pr" "cal" "- ETCO - Courants Forts -" "") (command "_insert" "*Cadre simple" pt3 "" "") (command "-style" "Romans" "romans.shx" "0.1" "1" "0" "" "" "") (command "texte" "j" "mg" (polar pt3 0 0.95) "0" designation) (setq pt3 (polar pt3 (* 3 (/ pi 2)) 0.4)) )) (if (= categorie "COURANT FAIBLE")(progn (command "_insert" nom_bloc pt4 "1" "1" "0") (command "changer" "d" "" "pr" "cal" "- ETCO - Courants Faibles -" "") (command "_insert" "*Cadre simple" pt4 "" "") (command "-style" "Romans" "romans.shx" "0.1" "1" "0" "" "" "") (command "texte" "j" "mg" (polar pt4 0 0.95) "0" designation) (setq pt4 (polar pt4 (* 3 (/ pi 2)) 0.4)) )) (if (= categorie "ECLAIRAGE DE SECURITE")(progn (command "_insert" nom_bloc pt5 "1" "1" "0") (command "changer" "d" "" "pr" "cal" "- ETCO - Eclairage de sécurité -" "") (command "_insert" "*Cadre simple" pt5 "" "") (command "-style" "Romans" "romans.shx" "0.1" "1" "0" "" "" "") (command "texte" "j" "mg" (polar pt5 0 0.95) "0" designation) (setq pt5 (polar pt5 (* 3 (/ pi 2)) 0.4)) )) (if (= categorie "ALARME INCENDIE")(progn (command "_insert" nom_bloc pt6 "1" "1" "0") (command "changer" "d" "" "pr" "cal" "- ETCO - Détection incendie -" "") (command "_insert" "*Cadre simple" pt6 "" "") (command "-style" "Romans" "romans.shx" "0.1" "1" "0" "" "" "") (command "texte" "j" "mg" (polar pt6 0 0.95) "0" designation) (setq pt6 (polar pt6 (* 3 (/ pi 2)) 0.4)) )) (if (and(/= categorie "ECLAIRAGE") (/= categorie "COMMANDE") (/= categorie "COURANT FORT") (/= categorie "COURANT FAIBLE") (/= categorie "ECLAIRAGE DE SECURITE") (/= categorie "ALARME INCENDIE") )(progn (command "_insert" nom_bloc pt8 "1" "1" "0") (command "changer" "d" "" "pr" "cal" "- ETCO - Remarques -" "") (command "_insert" "*Cadre simple" pt8 "" "") (command "-style" "Romans" "romans.shx" "0.1" "1" "0" "" "" "") (command "texte" "j" "mg" (polar pt8 0 0.95) "0" designation) (setq pt8 (polar pt8 (* 3 (/ pi 2)) 0.4)) )) ) ) )) ) ;_ Fin de la boucle (setvar "osmode" os_courant) ;_ Redéfinit l'accrochage aux objets courant ) Encore une fois, merci à tous ceux qui m'ont aidés.
  13. Merci Patrick. Grace aux quelques lignes de Bred, ma légende est sur le point de fonctionner. Me manque juste une petite ligne. En faite, je cherche à comparer la variable Nom_bloc avec la liste Bloc_insere afin d'exécuter un programe si Nom_bloc ne s'y trouve pas. En gros : (if "Nom_bloc pas dans Bloc_insere" (progn ... )) Ce qu'il me manque, c'est ce qu'il va après le if ou, tout du moin, la façon de comparer une variable avec une liste. Ma liste est de la forme (BS DM PC HUB_PORTE 6213 . 0) Une autre question qui me viens a l'esprit, comment on vide la liste? La seule méthode que j'ai trouvé, c'est de faire (setq Bloc_insere 0), d'ou le . 0 à la fin. Merci d'avance.
  14. @ Patrick_35 : Ton explication est claire dans le fonctionnement du lisp. En faite, mon problème est que dans le visual lisp, les commandes sont pas les mêmes que dans le lisp "normal". Même si je ne les connais pas en lisp "normal", je les retrouve facilement dans l'aide d'Autocad, alors qu'en visual lisp, je ne sais pas trop ou chercher. Sinon pour la commande lsp, ça n'en est pas une sur mon PC. Ca vient peut être de ma version autocad, c'est un autocad 2008 Map 3D (qui n'est pas tout à fait identique à un autocad 2008 complet aparament) @ Bred : Merci pour ces 2 lignes, maintenant ma légende marche dans son ensemble. Me reste plus qu'a insérer un symbole de chaque type et non pas autant de symboles qu'il y en a sur le plan. Faut juste que je fasse du tri dans la variable sel_bloc. En cherchant un peu, je devrais y arriver. Merci beaucoup.
  15. Excuse moi Bred, merci à toi aussi. J'étais un peu à fond le lisp de Patrick. Malgré l'explication, j'ai quand même du mal à l'exploiter. En partant du Lisp que j'ai mis plus haut, j'ai réussi à en extraire les 2 attributs qui m'interressent : (defun c:lsp () (if (setq ent(entsel "\n Select a Block: ")) (progn (setq en(car ent)) (setq enlist(entget en)) (setq blkType(cdr(assoc 0 enlist))) (if (= blkType "INSERT") (progn (if(= (cdr(assoc 66 enlist)) 1) (progn (setq en2(entnext en)) (setq enlist2(entget en2)) (while (/= (cdr(assoc 0 enlist2)) "SEQEND") (if (= (cdr(assoc 2 enlist2)) "DESIGNATION")(setq designation (cdr(assoc 1 enlist2)))) (if (= (cdr(assoc 2 enlist2)) "CATEGORIE")(setq categorie (cdr(assoc 1 enlist2)))) (setq en2(entnext en2)) (setq enlist2(entget en2)) ) ) ) ) ) ) ) (princ (strcat "\nNom du bloc ----> " nom_bloc "")) (princ (strcat "\nCatégorie ----> " categorie "")) (princ (strcat "\nDésignation ----> " designation "")) ) ) Maintenant, je ne vois pas trop par quoi remplacer la ligne (if (setq ent(entsel "\n Selectionner un Bloc : ")) pour qu'il me prenne en compte le bloc courant (celui qui est dans la variable Nom_bloc) et pas le bloc sélectionné. En faite, je ne vois pas comment changer le Nom du bloc en Entité.
  16. Merci pour cette explication patrick. Je vais voir si j'arrive à en tirer quelque chose.
  17. C'est encore moi. J'ai trouvé ce code sur internet : (defun c:lsp () (if (setq ent(entsel "\n Select a Block: ")) ;- Let the user select a block (progn (setq en(car ent)) ;- Get the entity name of the block (setq enlist(entget en)) ;- Get the DXF group codes (setq blkType(cdr(assoc 0 enlist))) ;- Save the type of entity (if (= blkType "INSERT") ;- If the entity type is an Insert entity (progn (if(= (cdr(assoc 66 enlist)) 1) ;- See if the attribute flag equals one (if so, attributes follow) (progn (setq en2(entnext en)) ;- Get the next sub-entity (setq enlist2(entget en2)) ;- Get the DXF group codes (while (/= (cdr(assoc 0 enlist2)) "SEQEND") ;- Start the while loop and keep ;- looping until SEQEND is found. (princ "\n ") ;-Print a new line (princ enlist2) ;- Print the attribute DXF group codes (setq en2(entnext en2)) ;- Get the next sub-entity (setq enlist2(entget en2)) ;- Get the DXF group codes ) ) ) ;- Close the if group code 66 = 1 statement ) ) ;- Close the if block type = "ATTRIB" statement ) ) ;- Close the if an Entity is selected statement ) En l'exécutant sur un de mes bloc, il me donne ça : Ma question : Comment mettre chacunne des 2 valeurs en gras dans une variable?
  18. Merci Patrick_35 Pour le moment, je ne comprends pas tout (voir pas grand chose) à la routine mais je vais l'essayer par morceaux pour en extraire ceux qui m'interessent. Une petite question, les commandes qui commance par vla, c'est du lisp aussi? Je ne les connais pas celles là. Ps : Juste une petite remarque, ton lisp marche très bien sous autocad 2007 mais pas sous 2008, il met l'erreur suivante : no function definition: VLAX-GET-ACAD-OBJECT. Encore une fois, merci.
  19. Bonjour, Depuis un petit bout de temps, je cherche à faire une légende automartique à partir d'un ancien lisp qu'on utilisais avant, mais je bloque sur plusieurs points. Ce lisp sert à faire automatiquement nos légende a partir des blocs présents sur le plan. Tous les blocs de notre bibliothèque on un attribut DESIGNATION, TYPE, LIGNE, QUANTITE et CATEGORIE. Certains blocs ont des attributs en plus. Mes problèmes : - Lorsque j'ai 2 blocs identiques sur un plan, il me les insert deux fois dans la légende. Je cherche un moyen de faire du tris dans la variable sel_bloc afin d'enlever les doublons. - Je ne parviens pas à extraire la valeur de l'attribut DESIGNATION pour le mettre dans la variable "designation" Petite cerise sur le gateau (je peux m'en passer mais bon), lorsque je fais Echap, serait-il possible de remettre l'OSMODE en os_courant? Voici le lips en question : ;;;------------------------------------------------------------------------------------------------------------- ;;; LISTE DES VARIABLES ;;;------------------------------------------------------------------------------------------------------------- ;;; ;;; ;;; os_courant --> accrochage aux objets courant ;;; sel_bloc --> liste des blocs sélectionnés ;;; nom_bloc --> nom du bloc courant ;;; compteur --> compteur ;;; ptd --> point de départ ;;; pt1 --> point de départ éclairage ;;; pt2 --> point de départ commande ;;; pt3 --> point de départ courants forts ;;; pt4 --> point de départ éclairage de sécurité ;;; pt5 --> point de départ incendie ;;; pt6 --> point de départ appel malade ;;; pt7 --> point de départ courants faibles ;;; pt8 --> point de départ ;;; designation --> désignation du bloc courant ;;;------------------------------------------------------------------------------------------------------------- ;;; PROGRAMME ;;;------------------------------------------------------------------------------------------------------------- (defun c:legende () (princ "Version 10/06/08") (command "_insert" "Calque=" "0,0" "" "" "" ) ;_ Insertion des calques (setvar "clayer" "0") ;_ Défini le calque "0" courant (setvar "cmdecho" 0) ;_ Désactive l'affichage à l'écran --> mettre à 1 (setvar "attreq" 0) ;_ Définit les attributs des blocs par défaut (setq os_courant (getvar "osmode")) ;_ Enregistre l'accrochage aux objets courant dans os_courant (setvar "osmode" 0) ;_ Désactive l'accrochage aux objets (setq ptd (getpoint "\nEntrer le point de départ : ")) ;_ Défini le point de départ par l'utilisateur (setq pt1 (polar ptd 0 0)) ;_ Défini le point 1 en fonction du point de départ (setq pt2 (polar ptd 0 9.5)) ;_ Défini le point 2 en fonction du point de départ (setq pt3 (polar ptd 0 19)) ;_ Défini le point 3 en fonction du point de départ (setq pt4 (polar ptd 0 28.5)) ;_ Défini le point 4 en fonction du point de départ (setq pt5 (polar ptd 0 38)) ;_ Défini le point 5 en fonction du point de départ (setq pt6 (polar ptd 0 47.5)) ;_ Défini le point 6 en fonction du point de départ (setq pt7 (polar ptd 0 57)) ;_ Défini le point 7 en fonction du point de départ (setq pt8 (polar ptd 0 66.5)) ;_ Défini le point 8 en fonction du point de départ (setq sel_bloc (ssget (list (cons 0 "insert")))) ;_ Sélectionne les blocs et les mets dans la variable sel_bloc (setq compteur -1) ;_ Initialise le compteur à -1 (car indexation dans un jeu de sélection commence à 0) (repeat (sslength sel_bloc) ;_ Répète la boucle autant de fois qu'il y'a de blocs (setq nom_bloc (cdr (assoc 2 (entget (ssname sel_bloc (setq compteur (+ compteur 1))))))) ;_ Met dans la variable nom_bloc le bloc courant et l'enlève du jeu de sélection sel_bloc (print nom_bloc) (print designation) (progn (command "_insert" nom_bloc pt1 "1" "1" "0") (command "changer" "d" "" "pr" "cal" "- ETCO - Détection incendie -" "") (command "_insert" "*Cadre simple" pt1 "" "") (command "-style" "Romans" "romans.shx" "0.1" "1" "0" "" "" "") (command "texte" "j" "mg" (polar pt1 0 0.95) "0" designation) (setq pt1 (polar pt1 (* 3 (/ pi 2)) 0.4)) ) ) ;_ Fin de la boucle (setvar "osmode" os_courant) ;_ Redéfinit l'accrochage aux objets courant ) Si possible, pouvez-vous bien détailler vos routines que je puisse un peu comprendre comment ca marche? Merci d'avance.
  20. C'était pas ces commandes que je cherchais mais la commande REGION fera très bien l'affaire. Merci Tramber.
  21. J'ai fais un dessin en 3D tout en ligne et je souhaite créer des surfaces à partir de ces lignes pour y affecter des matériaux. Pour ce qui est des surfaces rectangulaires, j'utilise la commande "_convtosurface" mais je ne parviens pas à retrouver la commande pour les surfaces quelconques. Quelqu'un pourrait'il me la rappeler svp?
  22. Bien vu Bonuscad. J'ai cherché tout l'après midi sans rien trouver :s Sinon, vous connaissez pas un sujet où la gestion des attributs dans un lisp est bien expliquée? J'arrive pas a trouver quelque chose qui puisse règler mon problème des sujets précédents. Et encore, merci pour tout Bonuscad.
  23. Encore une autre question. La-dedans : le message d'alerte "Légende terminée !" s'affiche quand? A la fin nan? Si oui, voyez vous une raison pour qu'il s'affiche au début de mon lisp?
  24. J'ai mis du temps à comprendre le lisp mais c'est exactement ce que je voulais. Je repasserais un peu plus tard car un autre problème va se poser à moi mais j'essais d'avancer un peu avant de vous l'exposer. Merci bonuscad. [Edit] : Me revoila bloqué. Tous mes blocs ont un attribut désignation et je voudrais mettre la valeur de cet attribut dans la variable DESIGNATION pour l'exploiter après. Je ne trouve rien sur les attributs alors si quelqu'un veut bien m'écrire ces quelques lignes pour me débloquer, ça serait cool ;) Histoire de compliquer (quoique, je sais pas si ca complique), je veux insérer ces lignes dans la boucle du repeat afin d'avoir la désignation du bloc courant. Merci d'avance. [Edité le 6/7/2007 par Ptitony72]
  25. Une autre petite question : Pour inserer le premier bloc de ma liste au point X=0 Y=0, je dois mettre quoi dans la ligne : pour cette partie de lisp : Le fonctionnement de cette parite : ;_ Sélectionne les blocs et les mets dans la variable sel_bloc ;_ Ouvre la boucle "tant que sel_bloc n'est pas nul" ;_ Extrait le nom du premier bloc de la liste ;_ Insert ce bloc au point X=0 Y=0 ;_ Enlève ce bloc de la liste sel_bloc Sinon je repose ma question, la variable sel_bloc contient quoi? Merci de me répondre, je nage dans le brouillard là.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité