gillespj Posté(e) le 4 août 2008 Posté(e) le 4 août 2008 Bonjour tlm, Je recherche un lisp permettant ,s'il n'existe pas, de placer automatiquement un bloc (ex : "azerty") à chaque extrémités des polylignes sélectionnées.
lecrabe Posté(e) le 4 août 2008 Posté(e) le 4 août 2008 Hello Qq questions supplémentaires : 1) Si Polyligne Close alors UN seul bloc au Départ ?2) Si Polyligne Ouverte alors 2 blocs ? ou bien un bloc à chaque sommet des polylignes !? Le Decapode Autodesk Expert Elite Team
bonuscad Posté(e) le 4 août 2008 Posté(e) le 4 août 2008 Une réponse ici Si ça ne convient pas, recherches dans les routines de (gile), je crois me rappeler qu'il a fait cela aussi. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
gillespj Posté(e) le 5 août 2008 Auteur Posté(e) le 5 août 2008 Hello Qq questions supplémentaires : 1) Si Polyligne Close alors UN seul bloc au Départ ?2) Si Polyligne Ouverte alors 2 blocs ? ou bien un bloc à chaque sommet des polylignes !? Le Decapode Polyligne ouverte donc 2 blocs par polyligne (1 sur chaque extrémité).
lili2006 Posté(e) le 5 août 2008 Posté(e) le 5 août 2008 Bonjour à toutes et tous, Ce lisp, peut-être ? (defun c:ins-vtx (/ acdoc space bname ss lay layf n ins) (vl-load-com) (setq acdoc (vla-get-activeDocument (vlax-get-acad-object)) space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace acdoc) (vla-get-ModelSpace acdoc) ) ) (if (setq bname (getblock "Nom du bloc")) (progn (if (setq ss (ssget "_X" (list '(0 . "INSERT") (cons 2 bname)))) (setq lay (cdr (assoc 8 (entget (ssname ss 0))))) ) (if (setq layf (getlayer "Choisir le calque filtre de polylignes")) (if (ssget "_X" (list '(0 . "*POLYLINE") (cons 8 layf))) (progn (vla-startUndoMark acdoc) (vlax-for pl (vla-get-ActiveSelectionSet acdoc) (setq n (fix (vlax-curve-getEndParam pl))) (or (= (vla-get-Closed pl) :vlax-false) (setq n (1- n)) ) (repeat (1+ n) (setq ins (vla-InsertBlock space (vlax-3d-point (vlax-curve-getPointAtParam pl n)) bname 1.0 1.0 1.0 0.0 ) ) (if lay (vla-put-layer ins lay) ) (setq n (1- n)) ) ) (vla-EndUndoMark acdoc) ) ) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
G2.toff Posté(e) le 22 avril 2014 Posté(e) le 22 avril 2014 Bonjour à toutes et tous, Ce lisp, peut-être ? (defun c:ins-vtx (/ acdoc space bname ss lay layf n ins) (vl-load-com) (setq acdoc (vla-get-activeDocument (vlax-get-acad-object)) space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace acdoc) (vla-get-ModelSpace acdoc) ) ) (if (setq bname (getblock "Nom du bloc")) (progn (if (setq ss (ssget "_X" (list '(0 . "INSERT") (cons 2 bname)))) (setq lay (cdr (assoc 8 (entget (ssname ss 0))))) ) (if (setq layf (getlayer "Choisir le calque filtre de polylignes")) (if (ssget "_X" (list '(0 . "*POLYLINE") (cons 8 layf))) (progn (vla-startUndoMark acdoc) (vlax-for pl (vla-get-ActiveSelectionSet acdoc) (setq n (fix (vlax-curve-getEndParam pl))) (or (= (vla-get-Closed pl) :vlax-false) (setq n (1- n)) ) (repeat (1+ n) (setq ins (vla-InsertBlock space (vlax-3d-point (vlax-curve-getPointAtParam pl n)) bname 1.0 1.0 1.0 0.0 ) ) (if lay (vla-put-layer ins lay) ) (setq n (1- n)) ) ) (vla-EndUndoMark acdoc) ) ) Bonjour, Je cherche un lisp qui ressemblerait à celui qui tu avais posté il y a quelque temps. En effet je cherche un lisp qui permet d'insérer des blocs aux extrémités de poly se trouvant dans des calques. Sur ton lisp j'ai une erreur de chargement donc je ne peux voir comment il fonctionne. En fait je t'explique mon idée.J'ai un fichier avec des calques QQ1 et QQ2 par exemple, j'aurais aimait trouver un lisp qui m'insère aux extrémités des poly sur ces calques des blocs BB1 et BB2(qui ne sont pas déjà présents sur mon fichier mais issus de ma bibliothèque donc connus, raccourci sur Autocad enregistré dans outils/options/fichier/chemins de recherche/...). Par contre mon fichier ne possèdera pas toujours ces 2 calques donc si un calque manque il ne m'insère pas le bloc mais continu sa fonction pour les calques existants.J'ai trouvé des lisp insérant des blocs aux sommets mais pas extrémités, mais ces lisp ne fonctionnent que si le bloc à insérer est déjà dans le dessin (pas forcément mon cas), de plus il me faut faire la manip bloc par bloc et sélectionner les poly. Or je préfèrerais que le lisp possède déjà les liaisons BB1 sur poly QQ1 et BB2 sur QQ2 etc...Pour finir à la fin des remplacements si on peut rajouter une décomposition automatique des blocs qui commencent par MMMM* par ce serait pas mal, mais bon, c'est la cerise ! Merci d'avance si tu peux y jeter un œil, je continu mes recherches au cas ou !
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