rebcao Posté(e) le 17 janvier 2018 Posté(e) le 17 janvier 2018 Bonjour à Toutes et à Tous, Suite à un ssget sur des blocs dynamiques le code DXF 2 retourner bien sur *Uxx !!!!!! Où se cache le nom REEL de ce bloc ? J'ai essayé avec des ENTNEXT mais sans succès ! Je vous remercie. Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Fraid Posté(e) le 17 janvier 2018 Posté(e) le 17 janvier 2018 Bonjour, Je ne pense pas que l'on puisse le trouver dans le code dxf.parcontre avec cela AcadDynamicBlockReferenceProperty Lien exemple d'utilisation dans ce Post https://github.com/Fraiddd
(gile) Posté(e) le 17 janvier 2018 Posté(e) le 17 janvier 2018 Salut, On peut retrouver le nom de la définition du bloc source via les listes DXF, mais il faut creuser profond... soit blocRef le 'ename' d'une référence de bloc anonyme (dynamique).(setq dxfLst (entget blocRef)) (setq extDict (entget (cdr (assoc 360 dxfLst)))) (setq blocRep (entget (cdr (assoc 360 extDict)))) (setq repData (entget (cdr (assoc 360 blocRep)))) (setq blocRec (entget (cdr (assoc 340 repData)))) (setq nom (cdr (assoc 2 blocRec))) Depuis AutoCAD 2012 les nouvelles fonctions LISP créées pour AutoCAD MAC permettent de faire ça plus facilement.(setq nom (getpropertyvalue (getpropertyvalue blocRef "BlockTableRecord") "Name")) Sinon, en Visual LISP :(setq nom (vla-get-EffectiveName (vlax-ename->vla-object blocRef))) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
rebcao Posté(e) le 17 janvier 2018 Auteur Posté(e) le 17 janvier 2018 Bonjour Gilles, Je te remercie, je vais regarder tout ça de prêt. Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
rebcao Posté(e) le 27 juin 2019 Auteur Posté(e) le 27 juin 2019 Bonjour, Un grand merci à Gilles, je confirme que la dernière ligne fonctionne parfaitement... nettement plus simple que les lignes LISP... Petite interrogation, lorsqu'il s'agit d'un bloc dynamique il semblerait que le code DXF 102 se rajoute dans le (ENTGET) ? Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
lecrabe Posté(e) le 27 juin 2019 Posté(e) le 27 juin 2019 Hello Christian est particulièrement DYNAMIC en ce moment !?Bonne fin de semaine, lecrabe "triste" Autodesk Expert Elite Team
PHILPHIL Posté(e) le 27 juillet 2019 Posté(e) le 27 juillet 2019 hello Rebcao parlait d'un SSGET au debut du sujet comment sélectionner avec un SSGET les blocs dynamiques qui on le meme nom qu'un bloc de référence, si on ne peut pas l'avoir directement en "DXF" a moins qu'il y est une commande "vl-lisp" similaire a SSGET qui le permette? a+Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 27 juillet 2019 Posté(e) le 27 juillet 2019 hello Rebcao parlait d'un SSGET au debut du sujet comment sélectionner avec un SSGET les blocs dynamiques qui on le meme nom qu'un bloc de référence, si on ne peut pas l'avoir directement en "DXF" a moins qu'il y est une commande "vl-lisp" similaire a SSGET qui le permette? a+Phil Il n'y a aucun moyen de filtrer directement les blocs anonymes par leur nom (c'est pas une lapalissade ça ?).Il faut traiter le jeu de sélection a posteriori.Généralement on filtre les référence de bloc qui ont le le nom du bloc de référence ou qui sont anonymes.(ssget (list (cons 8 "INSERT") (cons 2 (strcat "`*U*," nomDuBloc)))) 1 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 27 juillet 2019 Posté(e) le 27 juillet 2019 hello Gile merci j'ai fini par ecrire ca ca fournit une liste au final, exploitable pour d autre lispca devrait marcher pour le bloc parametrique et normaux ;;; ;;;-------------------------------------------------- ;;;selectionner bloc par nom effectivenanme ;;;-------------------------------------------------- (defun c:selectionner_bloc_meme_nom (/) (setvar "cmdecho" 0) (setvar "CURSORSIZE" 10) (setq osm (getvar "osmode")) (if (and (setq source (car (entsel "\nCLIQUER SUR LE BLOC DE REFERENCE : "))) (setq source (vlax-ename->vla-object source)) (= (vla-get-objectname source) "AcDbBlockReference") ) (progn (setq namebloc (vla-get-effectivename source))) ) (setq compt 0 selinsertname (ssadd) ) (prompt "\nSELECTIONNER LES BLOCS :") (setq selinsert (ssget (list (cons 0 "INSERT")))) (setq com (sslength selinsert)) (while (< compt com) (if (= (vla-get-effectivename (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname selinsert compt)))))) namebloc ) (progn (ssadd (cdr (assoc -1 (entget (ssname selinsert compt)))) selinsertname)) ) (setq compt (1+ compt)) ) (command "SELECT" selinsertname) (command "SELECT" "p") (setvar "CURSORSIZE" 100) (setvar "osmode" osm) (princ) ) a+ Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
MamyTina Posté(e) le 29 juillet 2019 Posté(e) le 29 juillet 2019 Bonjour,Cette discussion m’intéresse beaucoup ;En fait nous travaillons beaucoup sur Microstation et AutoCad.Lors de l’export Microstation vers AutoCad, certains nom des blocs dynamiques deviennent *Uxx.J’aimerais savoirs s’il existe un lisp pour les renommer correctement, sans modifier les attributs. Pour le moment j’utilise Rbloc, mais derrière il reste encore beaucoup de travail manuel à faire et je veux éviter ça.Si quelqu’un à une idée, je suis preneur.A+Fabien AutoCad MAP 2023 - Covadis + Autopiste 18.3b www.colas-mayotte.fr
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