Récupérer la valeur de rotation pour modfier un angle dynamique
Xavier
-
Xavier -
Xavier -
Bonjour,
J'ai plusieurs blocs dynamique avec un jeu de rotation nommé « Angle1 »
Je souhaiterais savoir s'il existe un lisp qui récupère la valeur de rotation du bloc pour l'inscrire en valeur négative dans Angle1.
Merci
J'ai plusieurs blocs dynamique avec un jeu de rotation nommé « Angle1 »
Je souhaiterais savoir s'il existe un lisp qui récupère la valeur de rotation du bloc pour l'inscrire en valeur négative dans Angle1.
Merci
A voir également:
- Récupérer la valeur de rotation pour modfier un angle dynamique
- Rotation ecran windows - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Tableau croisé dynamique - Guide
- Comment récupérer un compte facebook piraté - Guide
- Rotation video - Guide
Mais existe-t-il ? (je sais... j'insiste mais vu le nombre de plans et de blocs à modifier..) un lisp ou des bouts de codes qui :
Permet de parcourir tous les blocs dynamique du dessin
et un autre pour écrire dans la propriété Angle1.
Peut-être qu'avec quelques exemples et morceaux de codes je pourrais m'en sortir ?
Je ne connais pas cette propriété d'un block.
Ce ne serait pas plutôt un attribut?
Je confirme qu'Angle1 n'est pas un attribut mais une propriété.
Tous les blocs sont faits de la même manière et contiennes un paramètre avec une action de rotation (par défaut le nom de l'étiquettes de propriété est Angle1).
Mon souci est que la rotation du bloc est indépendante de la rotation du paramètre dynamique, je cherche donc à avoir la même valeur mais en négatif de cette manière quel que soit l'angle de rotation du bloc le symbole ayant l'étiquette Angle1 reste horizontal.
Ce que tu appelle étiquette, c'est un attribut, et Angle1 est le nom de cet attribut.
J'ai déniché sur le net un lisp que j'ai un peu adapté.
Faire un essai sur une copie.
Charger le lisp et taper rot_att sur la ligne de commande. Tiens moi au courant.
Voici le lisp (à copier dans un fichier nommé rot_att.lsp)
;ROTATION DES ATTRIBUTS D UN BLOC (defun c:rot_att() ;Tu créés un jeu de sélection des blocs avec attributs (setq js (ssget "x" '((0 . "INSERT") (66 . 1)))) ;Tu parcours le jeu de sélection (setq n 0) (while (setq ent (ssname js n)) ;En parcourant le jeu de sélection, tu vas rechercher dans chaque bloc les attributs (setq ent (entget (entnext ent))) (while (/= (cdr (assoc 0 ent)) "SEQEND") ; Tester si c'est la fin des attributs ;A chaque attribut trouvé, je force la valeur à 0 (while (/= (cdr (assoc 0 ent)) "SEQEND") (if (and (= (cdr (assoc 0 ent)) "ATTRIB") (= (cdr (assoc 2 ent)) "ANGLE1")); tester si c'est un attribut nommé ANGLE1 (progn (setq ent (subst (cons 50 0) (assoc 50 ent) ent)) ; modifier la valeur (entmod ent) ; mettre à jour ) ) (setq ent (entget (entnext (cdr (assoc -1 ent))))) ) ) (setq n (1+ n)) ) )Je m'exprime mal, merci pour ta patience .... Hic !! Je vais tenter par l'exemple :
Tu fais un bloc avec dedans 2 rectangles
Sur l'un des rectangle tu crées un jeu de paramètre de rotation (par défaut Angle1)
Maintenant les propriétés du bloc en « divers » il y a Nom, Rotation, etc...
Dans « Personnalisé » il y a Angle1, Position1 X, etc...
La rotation s'effectue sur les deux rectangle alors que l'angle sur un seul
Ce matin j'ai tenté un truc du genre ...
Mais ça ne marche pas ... oups !