Aller au contenu

edition attribut étendu - appel aux lispeur


Messages recommandés

Posté(e)

Bonjour à tous,

 

Voila cela fait plusieurs mois que ça me chatouille alors je fais appel aux lispeur (car je ne vois pas comment cela peut être fait autrement).

 

Prenons un bloc avec 1 attribut, inserons ce bloc puis faisons une rotation à ce bloc.

L'attribut subit la même rotation.

Si je veux que mon attribut reste suivant un angle de 0. Je double clic sur l'attribut et la fenêtre "Editeur d'attribut étendu" s'ouvre » je vais dans le 2éme onglets et dans la valeur rotation de l'attribut je tape 0.

Ce qui est parfait.

Sauf que si je veux l'appliquer à l'ensemble des représentation du même bloc cela ne marche pas, il faut les faire 1 par 1. (A MOINS QUE JE N'AIS PAS VUE LA COMMANDE D'AUTODESK).

 

Mon souhait serais l'ajout d'une ligne en plus dans la palette des prorpiétés en effet car quand vous selectionner un bloc avec attribut compléement en bas de la palette des propriété il y a les propriétées des attributs. Seulement on ne peut que changer la valeur pour tous les attributs selectionnés. Ils auraient pu rajouter une ligne de plus pour la rotation des attribut dans le bloc chez AUTODESK.

 

Bref je sais ajouter une ligne de plus directement dans la palette des propriétés d'AUTODESK n'est pas judicieux pour des lispeurs.

Mais es ce qu'il y a possibiliter de faire un lisp indépendant qui affiche dans une fenêtre indépendante les même valeurs que les onglets de la boite de l'éditeur des attributs étendu.

 

Merci

Je sens que noël va tomber en Août cette année :D

 

A+

Posté(e)

Bonjour à tous,

 

Merci à (gilles) de m'avoir guider sur la page des lisp de Patrick_35, seulement après avoir essayais les deux lisp, un petit quelque chose me gène (en tout bien tout honneur en espérant que Patrick_35 ne le prenne pas mal) :cool:

Sauf si je n'ais pas trouver toutes les subtiliter des deux lisps mais ils fonctionnent que sur des blocs qui ne sont pas encors inserés dans le fichier. ou alors pour ROT_0 si le lisp est activé en effet si on fait un copié/collé ou un déplacé d'un bloc la nouvelle entité a bien ces attributs avec angle à 0.

Donc j'ai trouver une astuce, quand on a des blocs déjà insérés et a la position souhaitais, ils faut les selectionner faire copié avec un point de base 0,0 , suprimer les blocs et coller en 0,0.

Dans ce cas là les nouvelles entitées on bien les attributs avec un angle à 0.

Sauf que dans certains de mes blocs j'ai des atributs avec des champs, si je copie colle ces blocs les nouvelles entitées on les atributs avec angle à 0 mais le champs met des #####.

 

Bref:

Moi ce que je voudrais c'est selectionner les blocs souhaités et indiquer l'angle des attributs pour ces blocs.

 

Il est bien entendu que si cela n'est pas possible ou si ça ne vous interres pas de le faire, vous aurez 2 points de moins sur votre carnet de vacances. :)

 

Merci

A+

Posté(e)

Salut

 

Merci à (gilles) de m'avoir guider sur la page des lisp de Patrick_35, seulement après avoir essayais les deux lisp, un petit quelque chose me gène (en tout bien tout honneur en espérant que Patrick_35 ne le prenne pas mal)

Non, c'est du libre service ;)

 

si je copie colle ces blocs les nouvelles entitées on les atributs avec angle à 0 mais le champs met des #####.

Un regen règle le problème

 

Moi ce que je voudrais c'est selectionner les blocs souhaités et indiquer l'angle des attributs pour ces blocs.

Un sujet à voir.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Bonjour Patrick_35 et merci,

 

J'ai lu et essayais tes conseils sur l'autre post.

 

Malheureusement n'étant pas lispeur je me vois obliger de te demander une broutille.

 

En fait j'ai copié l'ensemble des différents paragraphes ou tu dis à quoi cela correspond, puis j'ai collé le tout dans la ligne de commande de AUTOCAD et ça a marché pour l'ensemble des blocs sans faire de sélection tous les attributs sont en valeur de rotation = 0.

Donc c'est trés bon signe, voila mes deux demandes:

 

1) Peux tu me mettre le bout de code qui me permet de faire ma propre selection de bloc, afin que la rotation ne s'applique que sur ces blocs sélectionnés. :D

2) Enfin si tu peux également me préciser les lignes à écrir pour en faire un programme lisp complet. Afin que je puisse le charger avec APPLOAD et l'apelé à la ligne de commande.

 

Mon ignorance en lisp est afligante, et je peux concevoir que tu ne souhaite pas me répondre :P . Mais ayez pitié seigneur de moi. ;)

Merci

 

Posté(e)

Salut

 

Mon ignorance en lisp est afligante, et je peux concevoir que tu ne souhaite pas me répondre

C'est un forum d'entre-aide, donc pas de raison.

Au moins, tu as essayé de comprendre, de te débrouiller et c'est déjà très bien.

Donc, avec les deux codes qui suivent, tu vas (je pense) comprendre ce qui manquait.

 

 

En reprenant le lisp d'origine.

 

(defun c:ro0(/ ent js n)
 (and	(setq n 0)
(setq js (ssget '((0 . "INSERT") (66 . 1))))
   (while (setq ent (ssname js n))
     (setq ent (entget (entnext ent)))
     (while (/= (cdr (assoc 0 ent)) "SEQEND")
(and (= (cdr (assoc 0 ent)) "ATTRIB")
     (setq ent (subst (cons 50 0) (assoc 50 ent) ent))
     (entmod ent)
       )
(setq ent (entget (entnext (cdr (assoc -1 ent)))))
     )
     (setq n (1+ n))
   )
 )
 (princ)
)

 

Sa version vlisp

(defun c:ro0(/ att doc ent sel)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 (and (ssget '((0 . "INSERT") (66 . 1)))
   (progn
     (vlax-for ent (setq sel (vla-get-activeselectionset doc))
(foreach att (vlax-invoke ent 'getattributes)
  (vla-put-rotation att 0)
)
     )
     (vla-delete sel)
   )
 )
 (vla-endundomark doc)
 (princ)
)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é