vpl Posté(e) le 30 novembre 2006 Posté(e) le 30 novembre 2006 Bonjour Nous avons créé des murs composés de plusieurs éléments répartis sur plusieurs calques. Ces objets sont posés sur le calque Autodesk Architectural Desktop Insert.Du coup les menus express pour geler ou désactiver le calque de l'objet cliqué ne marchent plus (ils agissent sur Autodesk Architectural Desktop Insert et "effacent" tous les éléments) Connaissez-vous un moyen de récupérer l'info sur le calque d'un élément d'un bloc à vue multiple pour n'agir que sur un des calques utilisés dans le bloc ? [Edité le 30/11/2006 par vpl]
BIM G CO Posté(e) le 30 novembre 2006 Posté(e) le 30 novembre 2006 le code autoLISP à enregistrer dans un fichier texte avec extension .LSP (defun table_entete (TB / TBLIST TBLIST TBNAME RES) (setq TBNLIST nil) (setq TBLIST (tblnext TB T)) (while TBLIST (setq TBNAME (cdr (assoc 2 TBLIST))) (setq TBNLIST (append TBNLIST (list TBNAME))) (setq TBLIST (tblnext TB)) ) (setq RES TBNLIST) ) (defun Programmation (ARG_TYPE / PRIVE_RESULTAT n PRIVE_ENTITE PRIVE_FILE PRIVE_BOUCLE PRIVE_ENTETE ) (cond ((= ARG_TYPE 1) ; Entité Variable Entité (progn (setq PRIVE_ENTITE nil) (while (not PRIVE_ENTITE) (setq PRIVE_ENTITE (entsel "Entité:")) ) (setq PRIVE_ENTITE (entget (car PRIVE_ENTITE))) (if (assoc 7 PRIVE_ENTITE) (progn (Princ "\nBibliothèque :") (foreach n (tblsearch "STYLE" (cdr (assoc 7 PRIVE_ENTITE))) (print n) ) ) ) (if (assoc 7 PRIVE_ENTITE) (Princ "\n\nEntité :") ) (foreach n PRIVE_ENTITE (print n)) (setq PRIVE_RESULTAT PRIVE_ENTITE) (if (and (= (cdr (assoc 0 PRIVE_ENTITE)) "INSERT") (assoc -2 (tblsearch "BLOCK" (cdr (assoc 2 PRIVE_ENTITE)))) ) (progn (Princ "\n\nEntité(s) dans le bloc:") (setq PRIVE_ENTITE (entget (cdr (assoc -2 (tblsearch "BLOCK" (cdr (assoc 2 PRIVE_ENTITE)) ) ) ) ) ) (foreach n PRIVE_ENTITE (print n)) (while (entnext (cdr (assoc -1 PRIVE_ENTITE))) (princ "\n") (setq PRIVE_ENTITE (entget (entnext (cdr (assoc -1 PRIVE_ENTITE))) ) ) (foreach n PRIVE_ENTITE (print n)) ) ) ) ) ) ((= ARG_TYPE 2) ; Table de l'entité selectionnée (progn (setq PRIVE_ENTITE nil) (while (not PRIVE_ENTITE) (setq PRIVE_ENTITE (entsel "Entité: ")) ) (setq PRIVE_ENTITE (entget (car PRIVE_ENTITE))) (if (or (= (cdr (assoc 0 PRIVE_ENTITE)) "TEXT") (= (cdr (assoc 0 PRIVE_ENTITE)) "MTEXT") ) (progn (print (cdr (assoc 0 PRIVE_ENTITE))) (setq PRIVE_RESULTAT (TABLE_ENTETE "STYLE")) ) ) (if (or (= (cdr (assoc 0 PRIVE_ENTITE)) "LINE") (= (cdr (assoc 0 PRIVE_ENTITE)) "LWPOLYLINE") (= (cdr (assoc 0 PRIVE_ENTITE)) "CIRCLE") (= (cdr (assoc 0 PRIVE_ENTITE)) "XLINE") ) (progn (print (cdr (assoc 0 PRIVE_ENTITE))) (foreach n (tblsearch "LTYPE" (cdr (assoc 6 PRIVE_ENTITE))) (if n (print n) ) ) (setq PRIVE_RESULTAT (TABLE_ENTETE "LTYPE")) ) ) (if (= (cdr (assoc 0 PRIVE_ENTITE)) "INSERT") (progn (print (cdr (assoc 2 PRIVE_ENTITE))) (setq PRIVE_RESULTAT (TABLE_ENTETE "BLOCK")) ) ) (if PRIVE_RESULTAT (progn (princ "\nListe des Entêtes: ") (foreach n PRIVE_RESULTAT (Print n)) ) ) ) ) ((= ARG_TYPE 3) ; Voler le type de ligne de l'archi format DXF (progn (setq PRIVE_FILE (open "C:\\LTYPE.CSV" "w")) (foreach n (TABLE_ENTETE "LTYPE") (progn (setq PRIVE_BOUCLE 0) (setq PRIVE_RESULTAT "") (setq PRIVE_ENTETE (entget (tblobjname "LTYPE" n))) (if (assoc -1 PRIVE_ENTETE) (setq PRIVE_ENTETE (vl-remove (assoc -1 PRIVE_ENTETE) PRIVE_ENTETE ) ) ) (if (assoc 5 PRIVE_ENTETE) (setq PRIVE_ENTETE (vl-remove (assoc 5 PRIVE_ENTETE) PRIVE_ENTETE ) ) ) (if (assoc 330 PRIVE_ENTETE) (setq PRIVE_ENTETE (vl-remove (assoc 330 PRIVE_ENTETE) PRIVE_ENTETE ) ) ) (if (assoc 340 PRIVE_ENTETE) (setq PRIVE_ENTETE (vl-remove (assoc 340 PRIVE_ENTETE) PRIVE_ENTETE ) ) ) (while (< PRIVE_BOUCLE (length PRIVE_ENTETE)) (setq PRIVE_ENTITE (vl-string-subst ":" " . " (vl-princ-to-string (nth PRIVE_BOUCLE PRIVE_ENTETE) ) ) ) (setq PRIVE_ENTITE (strcat "[" (substr PRIVE_ENTITE 2))) (setq PRIVE_ENTITE (strcat (substr PRIVE_ENTITE 1 (- (strlen PRIVE_ENTITE) 1) ) "]" ) ) (setq PRIVE_RESULTAT (strcat PRIVE_RESULTAT (if (/= "" PRIVE_RESULTAT) ";" "" ) PRIVE_ENTITE ) ) (setq PRIVE_BOUCLE (1+ PRIVE_BOUCLE)) ) (if (/= (cdr (assoc 2 PRIVE_ENTETE)) "Continuous") (write-line PRIVE_RESULTAT PRIVE_FILE) ) ) ) (close PRIVE_FILE) ) ) (t nil) ) PRIVE_RESULTAT ) après avoir créer à l'aide du bloc note ce fichier - enregistrer.glisser le fichier dns la fenêtre de dessin d'Autodesk Autodesk Architectural Desktop et créer un bouton pour avoir toutes les entités dans le le bloc sélectionné^C^C (setq PUBLIC_PROGRAM (Programmation 1))(princ) à l'aide de la touche F2 vous voyer un listing avec des codes :pour chaque sous entité(0 . "xxxxxxxx") est le type d'entité(2 . "xxxxxxxx") est le nom du bloc(8 . "xxxxxxxx") est le calque dans lequel il est dessiné [Edité le 30/11/2006 par Maximilien] Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
vpl Posté(e) le 30 novembre 2006 Auteur Posté(e) le 30 novembre 2006 Merci pour cette réponse. Honnêtement je vais transmettre au développeur qui bosse pour nous parce que pour moi c'est du chinois...Je suis quand même impressionné par la réactivité et la précision de la réponse, du coup je relance une autre question ! paf !
vpl Posté(e) le 30 novembre 2006 Auteur Posté(e) le 30 novembre 2006 La suite... En fait on cherche à récupérer ces données pour des objets AEC ijnsérés dans le fichier, et la méthode donnée est pour les blocs. Une idée ? Merci d'avance
Patrick05 Posté(e) le 30 novembre 2006 Posté(e) le 30 novembre 2006 bonjour,tous les objets AEC ont des "jeux de propriétés" ça peut servir ?.++Patrick
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