Clément.a Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 Bonjour, Quelqu'un aurait déja fait une routine remplasant la commande TRACE disparut depuis la version 2012?J'ai cherché dans le forum et n'ai rien trouvé à ce sujet?
x_all Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 une routine qui l'utilise?mais qui le remplace.... je comprend pas. et elle ferai quoi la routine? quelques trucs sur autocad
(gile) Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 Salut, Je ne comprends pas l'intérêt d'utiliser encore aujourd'hui cette entité antédiluvienne. Les traces sont les ancêtres lointains des actuelles polylignes avec épaisseur bien plus performantes.J'avais fait,il y a pas mal de temps, un LISP pour convertir les traces en polylignes: ici. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
VDH-Bruno Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 Bonsoir, Je réponds très certainement à coté, mais si c’est pour faire du remplissage peut être la commande SOLIDE peut répondre à ton besoin.. A+ Apprendre => Prendre => Rendre
lecrabe Posté(e) le 23 août 2013 Posté(e) le 23 août 2013 Hello Eh oui la derniere fois que j'ai vu des DWGs avec l'entite TRACE, c'etait en 2006 ! C pourquoi a l'epoque, j'avais demande sur le forum un programme Lisp/VLisp pour transformer ces horreurs en bonnes Polylignes ... Grand Merci a Gilles dont la routine a fait merveille !et m'a permis de transformer des DWGs ASS/AEP qui utilisaient des centaines d'entites TRACE Rappel : l'entite Polyligne est apparue avec la version 2.1 quand meme ! Bonne Journne a Tous, lecrabe Autodesk Expert Elite Team
x_all Posté(e) le 23 août 2013 Posté(e) le 23 août 2013 TRACE !! ça fait tellement longtemps que j'avais compris TRACER :P quelques trucs sur autocad
(gile) Posté(e) le 23 août 2013 Posté(e) le 23 août 2013 Re, Ça m'amusait (peut-être parce que je trouve ça parfaitement inutile), alors je l'ai fait. Le LISP suivant imite la commande TRACE et la variable système TRACEWID des versions antérieures à 2012. ;; TRACEWID ;; Modifier la valeur de la "variable système" TRACEWID (defun c:tracewid (/ val) (initget 6) (if (setq val (getdist (strcat "\nEntrez une nouvelle valeur pour TRACEWID <" (rtos (cond ((vlax-ldata-get "GILE_TRACE" "TraceWid")) ((vlax-ldata-put "GILE_TRACE" "Tracewid" 1.0)) ) ) ">: " ) ) ) (vlax-ldata-put "GILE_TRACE" "Tracewid" val) ) (princ) ) ;; TRACE ;; Imite la commande TRACE des versions antérieures à 2012 (defun c:trace (/ *error* makeTrace wid pt1 pt2 zdir ang p10 p11 p12 p13) (vl-load-com) (defun *error* (msg) (and msg (/= msg "Fonction annulée") (princ (strcat "\nErreur: " msg)) ) (vla-EndUndoMark (vla-get-ActiveDocument (vlax-get-acad-object))) (princ) ) (defun makeTrace (p1 p2 p3 p4 z) (entmake (list '(0 . "TRACE") (cons 10 (trans p1 1 z)) (cons 11 (trans p2 1 z)) (cons 12 (trans p3 1 z)) (cons 13 (trans p4 1 z)) (cons 210 z) ) ) ) (defun left (p) (polar p (+ ang (/ pi 2.)) wid)) (defun right (p) (polar p (- ang (/ pi 2.)) wid)) (vla-StartUndoMark (vla-get-ActiveDocument (vlax-get-acad-object))) (initget 6) (if (setq wid (getdist (strcat "\nSpécifiez la largeur de la trace <" (rtos (cond ((vlax-ldata-get "GILE_TRACE" "TraceWid")) ((vlax-ldata-put "GILE_TRACE" "Tracewid" 1.0)) ) ) ">: " ) ) ) (vlax-ldata-put "GILE_TRACE" "Tracewid" wid) (setq wid (vlax-ldata-get "GILE_TRACE" "TraceWid")) ) (setq wid (/ wid 2.)) (if (and (setq pt1 (getpoint "\nSpécifiez un point de départ: ")) (setq pt2 (getpoint pt1 "\nSpécifiez le point suivant: ")) ) (progn (setq zDir (trans '(0. 0. 1.) 1 0 T) ang (angle pt1 pt2) p10 (left pt1) p11 (right pt1) p12 (left pt2) p13 (right pt2) pt1 pt2 ) (while (setq pt2 (getpoint pt1 "\nSpécifiez le point suivant: ")) (setq ang (angle pt1 pt2) p12 (inters p10 p12 (left pt1) (left pt2) nil) p13 (inters p11 p13 (right pt1) (right pt2) nil) ) (makeTrace p10 p11 p12 p13 zDir) (setq p10 p12 p11 p13 p12 (left pt2) p13 (right pt2) pt1 pt2 ) ) (makeTrace p10 p11 p12 p13 zDir) ) ) (*error* nil) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Clément.a Posté(e) le 26 août 2013 Auteur Posté(e) le 26 août 2013 Merci,Je ne comprends pas l'intérêt d'utiliser encore aujourd'hui cette entité antédiluvienneJe suis d'accord avec vous, personnelement je m'en sert pas c'est pour rendre service à quelqu'un qui apparement s'en servait avant que son entreprise change de version d'AutoCAD.. Merci pour le lisp. Au passage la phrase Ça m'amusait (peut-être parce que je trouve ça parfaitement inutile), alors je l'ai fait.m'a bien fait rire!! :D
Clément.a Posté(e) le 26 août 2013 Auteur Posté(e) le 26 août 2013 on m'a indiquer une erreur lorsque l'on utilise la commande trace et que l'on trace deux traits aligner, soit avec un angle de 180 degré ça bug là:(cons 11 (trans p2 1 z)) (cons 12 (trans p3 1 z)) (cons 13 (trans p4 1 z)) (cons 210 z) je sais pas si on peut y faire quelque chose?Merci
Clément.a Posté(e) le 28 août 2013 Auteur Posté(e) le 28 août 2013 Bonjour, j'ai corriger pour que la fonction trace marche lorsqu'on prolonge la droite dans la même direction :;; TRACEWID ;; Modifier la valeur de la "variable système" TRACEWID (defun c:ttv (/ val) (initget 6) (if (setq val (getdist (strcat "\nEntrez une nouvelle valeur pour TRACEWID <" (rtos (cond ((vlax-ldata-get "GILE_TRACE" "TraceWid")) ((vlax-ldata-put "GILE_TRACE" "Tracewid" 1.0)) ) ) ">: " ) ) ) (vlax-ldata-put "GILE_TRACE" "Tracewid" val) ) (princ) ) ;; TRACE ;; Imite la commande TRACE des versions antérieures à 2012 (defun c:tt (/ *error* makeTrace wid pt1 pt2 zdir ang p10 p11 p12 p13) (vl-load-com) (defun *error* (msg) (and msg (/= msg "Fonction annulée") (princ (strcat "\nErreur: " msg)) ) (vla-EndUndoMark (vla-get-ActiveDocument (vlax-get-acad-object))) (princ) ) (defun makeTrace (p1 p2 p3 p4 z) (entmake (list '(0 . "TRACE") (cons 10 (trans p1 1 z)) (cons 11 (trans p2 1 z)) (cons 12 (trans p3 1 z)) (cons 13 (trans p4 1 z)) (cons 210 z) ) ) ) (defun left (p) (polar p (+ ang (/ pi 2.)) wid)) (defun right (p) (polar p (- ang (/ pi 2.)) wid)) (vla-StartUndoMark (vla-get-ActiveDocument (vlax-get-acad-object))) (initget 6) (if (setq wid (getdist (strcat "\nSpécifiez la largeur de la trace <" (rtos (cond ((vlax-ldata-get "GILE_TRACE" "TraceWid")) ((vlax-ldata-put "GILE_TRACE" "Tracewid" 1.0)) ) ) ">: " ) ) ) (vlax-ldata-put "GILE_TRACE" "Tracewid" wid) (setq wid (vlax-ldata-get "GILE_TRACE" "TraceWid")) ) (setq wid (/ wid 2.)) (if (and (setq pt1 (getpoint "\nSpécifiez un point de départ: ")) (setq pt2 (getpoint pt1 "\nSpécifiez le point suivant: ")) ) (progn (setq zDir (trans '(0. 0. 1.) 1 0 T) ang (angle pt1 pt2) p10 (left pt1) p11 (right pt1) p12 (left pt2) p13 (right pt2) pt1 pt2 ) (while (setq pt2 (getpoint pt1 "\nSpécifiez le point suivant: ")) (setq ang (angle pt1 pt2) p122 (inters p10 p12 (left pt1) (left pt2) nil) p133 (inters p11 p13 (right pt1) (right pt2) nil) ) (if (and(not( null p122 ))(not (null p133))) (setq p12 p122 p13 p133)) (makeTrace p10 p11 p12 p13 zDir) (setq p10 p12 p11 p13 p12 (left pt2) p13 (right pt2) pt1 pt2 ) ) (makeTrace p10 p11 p12 p13 zDir) ) ) (*error* nil) ) voilou défois que quelqu'un à besoins de cette vieille commande. merci à Gile!
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