Aller au contenu

Messages recommandés

Posté(e)

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.

Posté(e)

 

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

Posté(e)

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

Posté(e)

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é).

Posté(e)

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/

  • 5 ans après...
Posté(e)

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 !

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité