Aller au contenu

Lisp Ajout Attributs


545jee

Messages recommandés

Bonjour la communauté,

Ayant une grosse bibliothèque a mettre a jour je tente de coder un petit lisp a partir de différent que j'ai piocher a droite à gauche et je n'ai malheureusement par encore de connaissance en codage pour finaliser.

 

Je dois dans un premier temps ajouter une vingtaine d’attributs type à chaque symbole de cette bibliothèque.

 

Je me suis baser sur le code suivant:

(defun c:add$ ( / ss i blk blks def AttObj)
   (and
      (setq ss (ssget '((0 . "INSERT"))))
      (setq i (sslength ss))
      (while (> i 0)
         (setq blk (cdr (assoc 2 (entget (ssname ss (setq i (1- i)))))))
         (if (not (vl-position blk blks))(setq blks (cons blk blks)))
      )
   )
   (foreach blk blks
        (setq def (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) blk))
        (setq AttObj
           (vla-addattribute def
             3
             acattributemodelockposition
             "New Attribute 1"
             (vlax-3D-point 72 84)
             "NEW_TAG1"
             "New Value 1"
           )
        )

        (vlax-put AttObj 'Alignment acAlignmentmiddle) ;; 4
        (command "_.attsync" "_N" blk)
    )
   (princ)
)
(vl-load-com) (princ)

 

Je l'ai modifier le code ci-dessous mais il la position ne fonctionne: (vlax-3D-point 72 84)

pas plus que le réglage de l'attribut en mode invisible: acattributemodeinvisible

 

 

(defun c:add$ ( / ss i blk blks def AttObj)
   (and
      (setq ss (ssget '((0 . "INSERT"))))
      (setq i (sslength ss))
      (while (> i 0)
         (setq blk (cdr (assoc 2 (entget (ssname ss (setq i (1- i)))))))
         (if (not (vl-position blk blks))(setq blks (cons blk blks)))
      )
   )
   (foreach blk blks
        (setq def (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) blk))
        (setq AttObj
       (vla-addattribute def
             2
             acattributemodelockposition
             "New Attribute 1"
            (vlax-3D-point 0 0)
            "NEW_TAG1"
            "New Value 1"
           )
	(vla-addattribute def
            2
             acAttributeModelockposition
            "New Attribute 2"
            (vlax-3D-point 0 -15)
            "NEW_TAG2"
            "New Value 2"
           )
           )
	(vla-addattribute def
            2
             acAttributeModeInvisible
            "New Attribute 3"
            (vlax-3D-point 0 -30)
            "NEW_TAG3"
            "New Value 3"
           )		
        )
        (vlax-put AttObj 'Alignment acAlignmentmiddle) ;; 4
        (command "_.attsync" "_N" blk)
    )

 

Quelqu'un saurais comment coder cela correctement peut-etre?

Par avance merci!

Lien vers le commentaire
Partager sur d’autres sites

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é