chachageo Posté(e) le 3 juin 2020 Posté(e) le 3 juin 2020 Bonjour! Je suis nouvelle sur ce forum, j'ai déjà trouvé pas mal de réponse à mes questions mais la je sèche!N'ayant pas covadis, je souhaite crée des types de lignes 'complexes'. J'ai trouvé par l'onglet express tool comment créer des linéaires avec texte, que j'ai utilisé dans certains cas pour contourner mon problème, ex pour un mur j'ai utilisé une répétition de ZZZ mais cela n'est pas applicable à tous. Je souhaiterais par exemple créer un type de ligne 'ligne arbres' avec un trait un arbre un trait ... et également une ligne avec trait double (voir captures). Merci pour votre aide!
jerome.s Posté(e) le 3 juin 2020 Posté(e) le 3 juin 2020 Bonjour tu peux zieuter cette video qui répond bien à ta demande : Cordialement
chachageo Posté(e) le 3 juin 2020 Auteur Posté(e) le 3 juin 2020 Bonjour tu peux zieuter cette video qui répond bien à ta demande : Cordialement merci beaucoup! j'ai cependant encore un soucis car je n'ai pas la commande SHAPE
Steven Posté(e) le 3 juin 2020 Posté(e) le 3 juin 2020 Salut, Il faut avoir les Express Tools d'installés. Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
jerome.s Posté(e) le 3 juin 2020 Posté(e) le 3 juin 2020 Bonjour, tapes la commande au clavier.Cordialement
dilack Posté(e) le 3 juin 2020 Posté(e) le 3 juin 2020 salut,a la vue de tes formes complexes suivant tes captures, je te conseil de bien choisir la résolution de ta ligne. Pour ton exemple je pencherai plus vers une résolution de 256 voir 512.Ce qui faut savoir aussi, c'est plus tu as de type de ligne complexe dans tes dwg plus tu alourdi ton dwg.
chachageo Posté(e) le 3 juin 2020 Auteur Posté(e) le 3 juin 2020 Salut, Il faut avoir les Express Tools d'installés. oui je les ai et je tap la commande au clavier mais il me renvoi vers MKSHAPE (la première que j'ai déjà effectué donc)
chachageo Posté(e) le 3 juin 2020 Auteur Posté(e) le 3 juin 2020 salut,a la vue de tes formes complexes suivant tes captures, je te conseil de bien choisir la résolution de ta ligne. Pour ton exemple je pencherai plus vers une résolution de 256 voir 512.Ce qui faut savoir aussi, c'est plus tu as de type de ligne complexe dans tes dwg plus tu alourdi ton dwg. en effet je n'avais pas pensé à cela! je vais certainement simplifié mais forme alors, un trait un rond un trait pour ma ligne d'arbre? et concernant la haie un simple rectangle vert suffit peut-être?
dilack Posté(e) le 3 juin 2020 Posté(e) le 3 juin 2020 concernant la haie un simple rectangle vert suffit peut-être? Ca dépend de ta méthode de travail et du rendu souhaité. Chacun à ses petite habitudes.Personnellement je ne passe pas par une polyligne de type complexe mais un bloc dynamique avec récupération des longueurs en attribut si j'ai besoin de les quantifier, quand je n'ai pas covadis sous la main.
chachageo Posté(e) le 3 juin 2020 Auteur Posté(e) le 3 juin 2020 Ca dépend de ta méthode de travail et du rendu souhaité. Chacun à ses petite habitudes.Personnellement je ne passe pas par une polyligne de type complexe mais un bloc dynamique avec récupération des longueurs en attribut si j'ai besoin de les quantifier, quand je n'ai pas covadis sous la main. c'est à dire?
bonuscad Posté(e) le 5 juin 2020 Posté(e) le 5 juin 2020 Bonjour, En copiant directement ce qui suit en ligne de commande, tu auras un type de ligne nommé "Haie" qui sera disponible dans ton dessin. Ce code s'occupe de créer la forme SHP et de la compiler en SHX ainsi que d'écrire le fichier LIN utilisant cette forme. Tu auras désormais les fichiers nécessaires et plus besoin d'utiliser le code proposé. ((lambda ( / f_shp f_lin doc) (if (not (findfile "haie.shp")) (progn (setq f_shp (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\haie.shp") "w")) (write-line "*128,66,HAIE" f_shp) (write-line "1,12,(2,1,-54),2,018," f_shp) (write-line "1,12,(4,1,-91),2,018," f_shp) (write-line "1,12,(2,0,-126),2,01C," f_shp) (write-line "1,12,(3,-1,-127),2,025," f_shp) (write-line "1,12,(2,-2,-79),2,02C," f_shp) (write-line "1,12,(-3,1,-52),2,020," f_shp) (write-line "1,12,(-5,1,-76),2,02F," f_shp) (write-line "1,12,(-3,-1,-126),2,010," f_shp) (write-line "1,12,(-4,0,-78)," f_shp) (write-line "2,8,(10,2),0" f_shp) (close f_shp) ) ) (command "_.compile" (strcat (getvar "ROAMABLEROOTPREFIX") "support\\haie.shp")) (if (not (tblsearch "STYLE" "")) (entmakex '( (0 . "STYLE") (100 . "AcDbSymbolTableRecord") (100 . "AcDbTextStyleTableRecord") (2 . "") (70 . 1) (40 . 0.0) (41 . 1.0) (50 . 0.0) (71 . 0) (42 . 2.5) (3 . "haie.shx") (4 . "") ) ) ) (entmake (list '(0 . "LTYPE") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLinetypeTableRecord") '(2 . "HAIE") '(70 . 0) '(3 . "Haies-arbuste") '(72 . 65) '(73 . 2) '(40 . 1.0) '(49 . 0.0) '(74 . 0) '(49 . -1.0) '(74 . 4) '(75 . 128) (CONS 340 (TBLOBJNAME "STYLE" "")) '(46 . 0.1) '(50 . 0.0) '(44 . -1.0) '(45 . 0.0) ) ) (if (not (findfile "haie.lin")) (progn (setq f_lin (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\haie.lin") "w")) (write-line "*HAIE, Haies-arbuste" f_lin) (write-line "A,0,-1,[HAIE,haie.shx,x=-1,s=.1]" f_lin) (close f_lin) ) ) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (if (and (not (vlax-for item (vla-get-linetypes doc) (if (= (strcase (vla-get-name item)) (strcase "haie")) T) ) ) (vl-catch-all-error-p (vl-catch-all-apply 'vla-load (list (vla-get-Linetypes doc) "haie" "haie.lin") ) ) ) nil T ) (princ "\nCréation de Type de Ligne \"haie\" effectué!") (prin1) )) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Steven Posté(e) le 5 juin 2020 Posté(e) le 5 juin 2020 oui je les ai et je tap la commande au clavier mais il me renvoi vers MKSHAPE (la première que j'ai déjà effectué donc) Si tu tapes la commande en français, il faut taper FORMES. Si tu veux taper la commande en anglais, il faut mettre un underscore (_) devant shape. = _shape. Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
chachageo Posté(e) le 9 juin 2020 Auteur Posté(e) le 9 juin 2020 Merci, je viens juste de voir que j'avais des réponses :)c'est parfait entre la première vidéo et ces deux commandes j'ai réussi à faire ce que je veux merci! :)
chachageo Posté(e) le 9 juin 2020 Auteur Posté(e) le 9 juin 2020 salut!c'est encore moi :) je progresse dans la création de mes linéaires, cependant j'aimerais savoir si il y a moyen d'obtenir une ligne avec double trait (créer à partir d'un shape) qui n'ait jamais de trou au début et à la fin (cf image)car je vois que le linéaire prend exactement le gabarit de mon shape sans le réadapter mais si ma ligne n'est pas un multiple exact de mon shape il y a un vide. Merci! ;)
chachageo Posté(e) le 11 juin 2020 Auteur Posté(e) le 11 juin 2020 salut! :)je ne sais pas si qq a vu mon dernier message, donc je relance la conversation au cas où ^^merci bonne journée!
bonuscad Posté(e) le 11 juin 2020 Posté(e) le 11 juin 2020 salut!c'est encore moi :) je progresse dans la création de mes linéaires, cependant j'aimerais savoir si il y a moyen d'obtenir une ligne avec double trait (créer à partir d'un shape) qui n'ait jamais de trou au début et à la fin (cf image)car je vois que le linéaire prend exactement le gabarit de mon shape sans le réadapter mais si ma ligne n'est pas un multiple exact de mon shape il y a un vide. Merci! ;) Salut, A mon avis, il n'y a pas moyen de résoudre cd problème d'évidement en début et fin de ligne en utilisant une forme (shape), le type de ligne n'est qu'une répétition d'un motif et autocad ajuste celle-ci pour que les motif ne dépasse pas les points d'extrémitées Autrement tu peut essayer de te tourner vers le multi-lignes. Voici par exemple un lisp un peu ancien qui converti des objets curviligne en multi-ligne. (defun def_bulg_pl (ls lb flag_closed / ls lb rad a l_new) (if (not (zerop flag_closed)) (setq ls (append ls (list (car ls))))) (while (cadr ls) (if (zerop (car lb)) (setq l_new (append l_new (list (car ls)))) (progn (setq rad (/ (distance (car ls) (cadr ls)) (sin (* 2.0 (atan (abs (car lb))))) 2.0) a (- (/ pi 2.0) (- pi (* 2.0 (atan (abs (car lb)))))) ) (if (< a 0.0) (setq a (- (* 2.0 pi) a))) (if (or (and (< (car lb) 0.0) (> (car lb) -1.0)) (> (car lb) 1.0)) (setq l_new (append l_new (reverse (cdr (reverse (bulge_pts (polar (car ls) (- (angle (car ls) (cadr ls)) a) rad) (car ls) (cadr ls) rad (car lb))))))) (setq l_new (append l_new (reverse (cdr (reverse (bulge_pts (polar (car ls) (+ (angle (car ls) (cadr ls)) a) rad) (car ls) (cadr ls) rad (car lb))))))) ) ) ) (setq ls (cdr ls) lb (cdr lb)) ) (append l_new (list (car ls))) ) (defun bulge_pts (pt_cen pt_begin pt_end rad sens / inc ang nm p1 p2 lst) (setq inc (angle pt_cen (if (< sens 0.0) pt_end pt_begin)) ang (+ (* 2.0 pi) (angle pt_cen (if (< sens 0.0) pt_begin pt_end))) nm (fix (/ (rem (- ang inc) (* 2.0 pi)) (/ (* pi 2.0) 36.0))) ) (repeat nm (setq p1 (polar pt_cen inc rad) inc (+ inc (/ (* pi 2.0) 36.0)) lst (append lst (list p1)) ) ) (setq p2 (polar pt_cen ang rad) lst (append lst (list p2)) ) (if (< sens 0.0) (reverse lst) lst) ) (defun c:polyarc2ml ( / jspl nbr ent dxf_ent typent name_layer closed lst l_bulg e_next dxf_next oldlayer oldosm key_mod scale_ml) (princ "\nChoix des polylignes à transformer en multilignes: ") (setq jspl (ssget '((0 . "*POLYLINE,LINE,CIRCLE,ARC") (-4 . "<NOT") (-4 . "&") (70 . 124) (-4 . "NOT>"))) nbr 0 ) (cond (jspl (initget "Dessus Nulle dEssous _Top Zero Bottom") (setq key_mod (getkword (strcat "\nEntrez le type de justification [Dessus/Nulle/dEssous] <" (cond ((eq (getvar "cmljust") 0) "Dessus" ) ((eq (getvar "cmljust") 1) "Nulle" ) ((eq (getvar "cmljust") 2) "dEssous" ) ) ">: " ) ) ) (if key_mod (cond ((eq key_mod "Top") (setvar "cmljust" 0)) ((eq key_mod "Zero") (setvar "cmljust" 1)) ((eq key_mod "Bottom") (setvar "cmljust" 2)) ) ) (setq scale_ml (getdist (strcat "\nEntrez l'échelle de la multiligne <" (rtos (getvar "cmlscale")) ">: "))) (if scale_ml (setvar "cmlscale" scale_ml)) (setq oldlayer (getvar "clayer") oldosm (getvar "osmode")) (setvar "osmode" 0) (setvar "cmdecho" 0) (command "_.ucs" "_world") (repeat (sslength jspl) (setq typent (cdr (assoc 0 (setq dxf_ent (entget (setq ent (ssname jspl nbr)))))) name_layer (cdr (assoc 8 dxf_ent)) ) (cond ((eq typent "LWPOLYLINE") (setq closed (boole 1 (cdr (assoc 70 dxf_ent)) 1) lst (mapcar '(lambda (x) (trans x ent 1)) (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) dxf_ent))) l_bulg (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 42)) dxf_ent)) lst (def_bulg_pl lst l_bulg closed) ) ) ((eq typent "POLYLINE") (setq closed (boole 1 (cdr (assoc 70 dxf_ent)) 1) e_next (entnext ent) ) (while (= "VERTEX" (cdr (assoc 0 (setq dxf_next (entget e_next))))) (if (zerop (boole 1 223 (cdr (assoc 70 dxf_next)))) (setq lst (cons (trans (cdr (assoc 10 dxf_next)) ent 1) lst) l_bulg (cons (cdr (assoc 42 dxf_next)) l_bulg) ) ) (setq e_next (entnext e_next)) ) (setq lst (reverse lst) l_bulg (reverse l_bulg) lst (def_bulg_pl lst l_bulg closed) ) ) ((eq typent "LINE") (setq lst (list (trans (cdr (assoc 10 dxf_ent)) 0 1) (trans (cdr (assoc 11 dxf_ent)) 0 1)) closed 0 ) ) ((eq typent "CIRCLE") (setq lst (bulge_pts (trans (cdr (assoc 10 dxf_ent)) ent 1) (polar (trans (cdr (assoc 10 dxf_ent)) ent 1) 0.0 (cdr (assoc 40 dxf_ent))) (polar (trans (cdr (assoc 10 dxf_ent)) ent 1) (- (* 2.0 pi) (/ (* pi 2.0) 36.0)) (cdr (assoc 40 dxf_ent))) (cdr (assoc 40 dxf_ent)) 1 ) lst (append lst (list (car lst))) closed 1 ) ) ((eq typent "ARC") (setq lst (bulge_pts (trans (cdr (assoc 10 dxf_ent)) ent 1) (polar (trans (cdr (assoc 10 dxf_ent)) ent 1) (cdr (assoc 50 dxf_ent)) (cdr (assoc 40 dxf_ent))) (polar (trans (cdr (assoc 10 dxf_ent)) ent 1) (cdr (assoc 51 dxf_ent)) (cdr (assoc 40 dxf_ent))) (cdr (assoc 40 dxf_ent)) 1 ) closed 0 ) ) ) (cond (lst (setvar "clayer" name_layer) (command "_.mline") (foreach n lst (command n)) (if (not (zerop closed)) (command "_close") (command "")) (entdel ent) ) ) (setq nbr (1+ nbr) lst nil l_bulg nil) ) (command "_.ucs" "_previous") (setvar "clayer" oldlayer) (setvar "osmode" oldosm) (setvar "cmdecho" 1) ) (T (princ "\nSélection vide")) ) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
lecrabe Posté(e) le 24 juin 2020 Posté(e) le 24 juin 2020 Hello Bruno MERCI pour cette superbe routine ! LA SANTE (Stay Safe), Bye, lecrabe "triste"Automne 2020, la retraite Autodesk Expert Elite Team
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant