hardyorock Posté(e) le 28 février 2007 Posté(e) le 28 février 2007 salut les amis pour facilité un peu mon travail je suis entrain d'etablir un scripte qui transforme une region en polyline fermé avec une certaine épaisseur mon scripte c'est ca : ;==============================decompospeditmpoj la0.2 ;============================le probleme c'est que le scripte s'arrete a la 3ème etape , je me demandé s'il y a une variable qui nous permé de selectioné avant d'exécuté la commande PEDIT.merci de vos reponce les amis
Patrick_35 Posté(e) le 28 février 2007 Posté(e) le 28 février 2007 SalutUn Lisp de (gile) qui devrait répondre à ton attente @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
hardyorock Posté(e) le 28 février 2007 Auteur Posté(e) le 28 février 2007 ca marche merçi patrick_35 et merçi aussi a gile vous etes vraiment des pros les amisjuste que, est ce qu'on peu faire evolué ce lisp, en ajoutant une entés utilisteur ou on spécifie l'epaisseur du polyline,ca sera magnifique merci encord
(gile) Posté(e) le 28 février 2007 Posté(e) le 28 février 2007 Voici, ;;; R2PL -Gilles Chanteau- 01/01/07 ;;; Transforme les régions sélectionnées en polylignes. ;;; Ajout d'une option "Largeur" le 28/02/07 (defun c:r2pl (/ gile_vl_err arcbugle acdoc space ss wid n reg norm expl olst blst dlst plst tlst blg pline ) (vl-load-com) ;;;***************************************************************;;; (defun gile_vl_err (msg) (if (or (= msg "Fonction annulée") (= msg "quitter / sortir abandon") ) (princ) (princ (strcat "\nErreur: " msg)) ) (vla-EndUndoMark (vla-get-ActiveDocument (vlax-get-acad-object)) ) (setq *error* m:err m:err nil ) (princ) ) ;;;***************************************************************;;; (defun arcbulge (arc) (/ (sin (/ (vla-get-TotalAngle arc) 4)) (cos (/ (vla-get-TotalAngle arc) 4)) ) ) ;;;***************************************************************;;; (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) space (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace acdoc) (vla-get-ModelSpace acdoc) ) m:err *error* *error* gile_vl_err ) (if (setq ss (ssget '((0 . "REGION")))) (progn (vla-StartUndoMark acdoc) (setq wid (getdist "\nSpécifiez la largeur des polylignes ou : ") ) (repeat (setq n (sslength ss)) (setq reg (vlax-ename->vla-object (ssname ss (setq n (1- n)))) norm (vlax-get reg 'Normal) expl (vlax-invoke reg 'Explode) ) (if (vl-every '(lambda (x) (or (= (vla-get-ObjectName x) "AcDbLine") (= (vla-get-ObjectName x) "AcDbArc") ) ) expl ) (progn (vla-delete reg) (setq olst (mapcar '(lambda (x) (list x (vlax-get x 'StartPoint) (vlax-get x 'EndPoint) ) ) expl ) ) (while olst (setq blst nil) (if (= (vla-get-ObjectName (caar olst)) "AcDbArc") (setq blst (list (cons 0 (arcbulge (caar olst))))) ) (setq plst (cdar olst) dlst (list (caar olst)) olst (cdr olst) ) (while (setq tlst (vl-member-if '(lambda (x) (or (equal (last plst) (cadr x) 1e-9) (equal (last plst) (caddr x) 1e-9) ) ) olst ) ) (if (equal (last plst) (caddar tlst) 1e-9) (setq blg -1) (setq blg 1) ) (if (= (vla-get-ObjectName (caar tlst)) "AcDbArc") (setq blst (cons (cons (1- (length plst)) (* blg (arcbulge (caar tlst))) ) blst ) ) ) (setq plst (append plst (if (minusp blg) (list (cadar tlst)) (list (caddar tlst)) ) ) dlst (cons (caar tlst) dlst) olst (vl-remove (car tlst) olst) ) ) (setq pline (vlax-invoke Space 'addLightWeightPolyline (apply 'append (mapcar '(lambda (x) (setq x (trans x 0 Norm)) (list (car x) (cadr x)) ) (reverse (cdr (reverse plst))) ) ) ) ) (vla-put-Closed pline :vlax-true) (mapcar '(lambda (x) (vla-setBulge pline (car x) (cdr x))) blst ) (vla-put-Elevation pline (caddr (trans (car plst) 0 Norm)) ) (vla-put-Normal pline (vlax-3d-point Norm)) (if wid (vla-put-ConstantWidth pline wid) ) (mapcar 'vla-delete dlst) ) ) (mapcar 'vla-delete expl) ) ) (vla-EndUndoMark acdoc) ) ) (setq *error* m:err m:err nil ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
hardyorock Posté(e) le 2 mars 2007 Auteur Posté(e) le 2 mars 2007 merci gile vrément moi je ne suis qu'un consomateurdit comment on peu trouvé des cour de lisp gratos
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