lovecraft Posté(e) le 5 décembre 2006 Posté(e) le 5 décembre 2006 Bonjour à tous, J'aurais voulu savoir si quelqu'un avez un lisp pour transformer des lignes 2d en 3d par rapport a des points 3d. Merci à tousCordialementLovecraft http://www.youtube.com/user/CADMINATOR?feature=mhee
Tramber Posté(e) le 5 décembre 2006 Posté(e) le 5 décembre 2006 Ca veut rien dire. Un peu de précision peut-être. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
lovecraft Posté(e) le 5 décembre 2006 Auteur Posté(e) le 5 décembre 2006 Pour la précision: j'ai un dessin avec des lignes 2d sur lesquels, il y a des points 3d.Je voudrais juste trouver un lisp qui me permettrai de transformer ces lignes 2d avec comme support les points 3d. Voila j'espere que j'ai été clair. Cordialement http://www.youtube.com/user/CADMINATOR?feature=mhee
didier Posté(e) le 5 décembre 2006 Posté(e) le 5 décembre 2006 hello, oui, mais c'est très simple avec les méthodes d'édition par les poignées.sauf à avoir des milliers de lignes à traiter, je ne vois pas l'urgence de Lisper.si tu as des arcs, c'est une autre histoire... tiens nous au courant. amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
lovecraft Posté(e) le 5 décembre 2006 Auteur Posté(e) le 5 décembre 2006 Merci d'avoir repondu...Comme vous dites, le problème c'est qu'il y a des centaines de ligne a transformer.C'est pour cela que je recherche un lisp qui pourrait automatiser tous cela.. Merci d'avance pour la suite.... http://www.youtube.com/user/CADMINATOR?feature=mhee
(gile) Posté(e) le 5 décembre 2006 Posté(e) le 5 décembre 2006 Salut, Je ne suis pas sûr d'avoir bien compris, mais tu peux essayer ce LISP. Il faut le lancer dans le SCG, en vue de dessus, zoom étendu, pour que les points correspondent avec l'extrémités des lignes. Taper TEST pour lancer la commande, on peut faire U pour annuler si ça ne convient pas. (defun c:test (/ ssline elst pt10 pt11 ss10 ss11) (vl-load-com) (vla-StartUndoMark (vla-get-ActiveDocument (vlax-get-acad-object))) (command "_.undo" "_begin") (if (setq ssline (ssget "_A" '((0 . "LINE")))) (foreach line (mapcar 'cadr (ssnamex ssline)) (setq elst (entget line) pt10 (cdr (assoc 10 elst)) pt11 (cdr (assoc 11 elst)) ) (if (and (setq ss10 (ssget pt10 '((0 . "POINT")))) (setq ss11 (ssget pt11 '((0 . "POINT")))) ) (progn (setq elst (subst (assoc 10 (entget (ssname ss10 0))) (assoc 10 elst) elst ) elst (subst (cons 11 (cdr (assoc 10 (entget (ssname ss11 0))))) (assoc 11 elst) elst ) ) (entmod elst) (entupd line) ) ) ) ) (vla-EndUndoMark (vla-get-ActiveDocument (vlax-get-acad-object))) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lovecraft Posté(e) le 6 décembre 2006 Auteur Posté(e) le 6 décembre 2006 Je tiens à te remercier gile, ça fonctionne. Donc je te confirme que tu a bien compris .La seule chose que je n'ai pas précisé, c'est que j'aimerai que ça fonctionne avec des LWPOLYLINE. Merci à vous tous. http://www.youtube.com/user/CADMINATOR?feature=mhee
Didier-AD Posté(e) le 6 décembre 2006 Posté(e) le 6 décembre 2006 Impossible avec la méthode proposée : une LWPOLYLINE est obligatoirement un objet 2Dla seule chose qu'on puisse faire c'est modifier son altitudeIl serait possible moyennant un plus gros effort de programmation de la placer dans un SCU particulier à condition que l'ensemble des points soient dans un même plan.
bonuscad Posté(e) le 6 décembre 2006 Posté(e) le 6 décembre 2006 Pour des LWPOLYLINE, avec les mêmes restrictions que gilles (zoom, scg ...) sans fonction de test de sélection ni contrôle d'erreur. Donc à peaufiner.... ((lambda ( / l_2d l_z l_3d) (setq l_2d (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) (entget (car (entsel)))))) (setq l_z (mapcar '(lambda (x) (setq js (ssget "_C" x x '((0 . "POINT")))) (if js (caddr (cdr (assoc 10 (entget (ssname js 0))))) 0.0 ) ) l_2d ) ) (setq l_3d (mapcar 'append l_2d (mapcar 'list l_z))) (command "_.3dpoly") (repeat (length l_3d) (command "_none" (car l_3d)) (setq l_3d (cdr l_3d)) ) (command "") )) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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