tvr42 Posté(e) le 6 mai 2015 Posté(e) le 6 mai 2015 Bonjour, J'aimerais savoir si il était possible de remanier ce Lisp pour que je puisse décomposer plusieurs arcs en même temps (je suis nul en programmation). (defun c:arc2lines (/ ent nb obj n dist lst) (vl-load-com) (if (and (setq ent (car (entsel "\nSélectionnez un arc: "))) (= (cdr (assoc 0 (entget ent))) "ARC") ) (progn (initget 7) (setq nb (getint "\nEntrez le nombre de segments: ") obj (vlax-ename->vla-object ent) dist (/ (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj) ) nb ) lst (list (vlax-curve-getStartPoint obj)) n 0 ) (repeat nb (setq lst (cons (vlax-curve-getPointAtDist obj (* dist (setq n (1+ n)))) lst ) ) ) (while (cdr lst) (entmake (list '(0 . "LINE") (cons 10 (car lst)) (cons 11 (cadr lst)) ) ) (setq lst (cdr lst)) ) (entdel ent) ) (prompt "\nEntité non valide.") ) (princ) ) Merciarc2line.lsp Citer
(gile) Posté(e) le 6 mai 2015 Posté(e) le 6 mai 2015 Voilà, tu as les deux ARC2LINES pour sélectionner un seul arc ou ARCS2LINES pour en sélectionner plusieurs. (defun arc2lines (ent nb / obj n dist lst) (vl-load-com) (setq obj (vlax-ename->vla-object ent) dist (/ (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj) ) nb ) lst (list (vlax-curve-getStartPoint obj)) n 0 ) (repeat nb (setq lst (cons (vlax-curve-getPointAtDist obj (* dist (setq n (1+ n)))) lst ) ) ) (while (cdr lst) (entmake (list '(0 . "LINE") (cons 10 (car lst)) (cons 11 (cadr lst)) ) ) (setq lst (cdr lst)) ) (entdel ent) ) (defun c:arc2lines (/ ent nb) (if (and (setq ent (car (entsel "\nSélectionnez un arc: "))) (= (cdr (assoc 0 (entget ent))) "ARC") ) (progn (initget 7) (setq nb (getint "\nEntrez le nombre de segments: ")) (arc2lines ent nb) ) (prompt "\nEntité non valide.") ) (princ) ) (defun c:arcs2lines (/ ss nb n) (if (setq ss (ssget '((0 . "ARC")))) (progn (initget 7) (setq nb (getint "\nEntrez le nombre de segments: ")) (repeat (setq n (sslength ss)) (arc2lines (ssname ss (setq n (1- n))) nb) ) ) ) (princ) ) Citer Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Messages recommandés