Aller au contenu

echelle des lignes de blocs


juju_30

Messages recommandés

Salut

 

"Battman" pour synchroniser les blocs déjà existant éventuellement,...

Valable pour des attributs, pas pour du graphique.

 

merci mais je voudrais pouvoir modifier l'échelle de la ligne via un programme lisp et non de la façon classique par l'éditeur de bloc

Tu vas dans la table des blocs

(setq mon_bloc (tblsearch "block" "Mon_Bloc"))

 

Pour trouver le 1er objet qui compose le bloc

(setq ent (entget (cdr (assoc -2 mon_bloc))))

 

Pour trouver le suivant

(setq ent (entnext (cdr (assoc -1 ent))))
(setq ent (entget ent))

 

@+

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

Lien vers le commentaire
Partager sur d’autres sites

bonjour patrick_35,

 

je suis ok pour la premiere partie pour trouver mon bloc mais lorsque j'utilise:

 

"Pour trouver le 1er objet qui compose le bloc

( setq ent (entget (cdr (assoc -2 mon_bloc)))) 

"

je n'arrive pas a trouver les autres entités qui compose mon bloc. j'ai essayer d'incrémenter cette derniere ligne de code pour passer aux entités suivantes mais sans résultat (ça ne doit pas être possible).

 

et dans la ligne de code

 

 (setq ent (entnext (cdr (assoc -1 ent))))
(setq ent (entget ent))

 

il n'y a pas de reference a l'échelle de la ligne dans la variable "ent"?

 

peut être il serait plus facile de faire cette manipulation en passant par une liste dans laquelle toutes les entités sont référencer pour aller les inspecter une par une?

Lien vers le commentaire
Partager sur d’autres sites

Pour trouver les objets d'un bloc

 

Le 1er

(setq ent (entget (cdr (assoc -2 mon_bloc))))

 

Le 2em

(setq ent (entnext (cdr (assoc -1 ent))))
(setq ent (entget ent))

 

Le 3em

(setq ent (entnext (cdr (assoc -1 ent))))
(setq ent (entget ent))

 

Le 4em

(setq ent (entnext (cdr (assoc -1 ent))))
(setq ent (entget ent))

 

Etc...

 

Une boucle pour faire afficher le type d'objets qui composent le bloc

(and (setq mon_bloc (tblsearch "block" "Mon_Bloc"))
    (setq ent (cdr (assoc -2 mon_bloc)))
 (while ent
   (setq ent (entget ent))
   (terpri)
   (princ (cdr (assoc 0 ent)))
   (setq ent (entnext (cdr (assoc -1 ent))))
 )
)

 

Maintenant, à toi de dire quel objet tu souhaites modifier (le 1er, 5em ou 10em)

 

ps : l'échelle de la ligne est le code dxf 48 (optionnel)

 

@+

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

Lien vers le commentaire
Partager sur d’autres sites

merci patrick

ça marche bien par contre j'ai une petite question qui merite avant une petite explication.

mon bloc est un bloc avec un parametre de visibilite. la ligne (caché) que je cherche à modifier ne fait pas partie du bloc qui s'affiche initialement. est ce que c'est pour ça que lorsque je fait défiler toutes les entités le programme ne trouve pas cette ligne???

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é