Aller au contenu

Copier un bloc depuis la table des blocs


LUDWIG

Messages recommandés

Bonjour,

 

Savez-vous comment [surligneur] copier un bloc de la table des blocs [/surligneur]et l'ajouter dans cette table des blocs (en changeant juste le nom) et sans forcement l'insérer dans le dessin ?

 

En gros, j'ai un dessin et des blocs (A, B, C) définis (mais pas forcement insérés).

Je souhaite définir les blocs A2, B2 et C2 (qui sont les copies de respectivement A, B et C) dans le dessin, sans les y insérer.

Le résultat devrait être une table des blocs contenant (A, A2, B, B2, C, C2).

Autocad 2021 - Revit 2022 - Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Je pense que c'est queque chose dans ce style

 

(setq a (tblsearch "block" "MON_BLOC"))
(entmake (list (cons 0 "block")(cons 2 "MON_BLOC2")(assoc 70 a)(assoc 10 a)))
(setq b (cdr (assoc -2 a)))
(while b
 (setq c (entget b))
 (setq c (vl-remove (assoc  -1 c) c))
 (setq c (vl-remove (assoc   5 c) c))
 (setq c (vl-remove (assoc 330 c) c))
 (entmake c)
 (setq b (entnext b))
)
(entmake '((0 . "endblk")))
(princ)

 

@+

 

[Edité le 5/4/2005 par Patrick_35]

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

zebulon : oui, il me faut garder l'ancien et le nouveau bloc, donc un rename ne me convient pas...

 

Patrick_35 : [surligneur] entmake[/surligneur], c'est ça qu'il me fallait ! Faut que j'apprenne à m'en servir via ton exemple, mais ça devrait aller. Merci !

Autocad 2021 - Revit 2022 - Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Ca marche nickel ! Pourrais-tu me commenter un peu le prog, car je ne comprends pas tout :

 

 

(setq a (tblsearch "block" "MON_BLOC"))  [b] --> recherche du bloc "mon bloc"[/b]

(entmake (list (cons 0 "block")(cons 2 "MON_BLOC2")(assoc 70 a)(assoc 10 a)))  [b] --> création du bloc "mon bloc2" à partir de du type de bloc et du point d'insertion de "mon bloc" (QUESTION : puisqu'on regarde dans la table des blocs, le point d'insertion n'est-il pas FORCEMENT 0,0,0 ?)[/b]

(setq b (cdr (assoc -2 a)))  [b] --> nom d'entité (QUESTION : c'est quoi par rapport au code -1, c'est le premier objet contenu dans le bloc ou l'ensemble des objets du bloc ?)[/b]

(while b
(setq c (entget b))  [b] --> sélectionne l'entité du bloc[/b]

(setq c (vl-remove (assoc -1 c) c)) 
(setq c (vl-remove (assoc 5 c) c))
(setq c (vl-remove (assoc 330 c) c))  [b] --> crée une liste comme b mais sans les codes -1, 5 et 330 (??? seront-ils regénérés tous seuls ?)[/b]

(entmake c)  [b] --> créée le nouvel objet[/b] je ne comprends pas comment les nouveaux objets sont mis dans le nouveau bloc ?

(setq b (entnext b))  [b] -->objet suivant[/b]

)
(entmake '((0 . "endblk")))  [b] -->identificateur de fin de bloc[/b]

(princ)

Autocad 2021 - Revit 2022 - Windows 10

Lien vers le commentaire
Partager sur d’autres sites

La plupart des questions ont des réponses dans l'aide d'AutoCAD (référence DXF)

les paires -1,5 et 330 ne sont pas à mettre car ce sont des ename unique que SEUL autoCAd sait gérer.

 

Le point 0,0,0 n'est pas forcément le point d'insertion du bloc j'en ai fais la douloureuse expérience (même dans la table des blocs)

 

"entmake c" crée un objet et non pas mets des objets c'est un problème de compréhension de entmake tu devrait voir dans l'aide d'AutoCAD

c est une liste de paires pointées qui référence entre autre la liste des enames des éléments formant le bloc.

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

AutoCAD, Revit, GstarCAD, Fisa-CAD, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Lien vers le commentaire
Partager sur d’autres sites

J'irai même plus loin en disant que ce sont des identificateurs, ce qui par définition est unique

Pour le point d'insertion, même réponse de Maximilien

et pour le (cdr (assoc -2 a)), c'est ce qui est retourné depuis la table des block, pas de -1

 

@+

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

Je suis comblé :cool:

 

Dans ce message, je cherchais un moyen....

 

....mais là j'apprends davantage encore.

(de temps en temps, faut prendre le temps de lire tranquillement les posts).

 

Seulement, j'apprends des manips qu'on m'avait justement indiquées comme parfaitement inutiles :casstet:

 

[Edité le 9/4/2005 par Tramber]

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
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é