Hello
Si ton probleme est bien : tout ou une partie du graphisme de mon bloc n'est pas sur le calque ZERO
et je veux que TOUT soit sur le calque ZERO alors un petit programme Lisp/VLisp fera tres bien le boulot !
Sinon c un BEDIT sur chaque bloc fera aussi le boulot ...
Donc que veux tu faire ou avoir ?
Patrice BRAUD
Bonjour,
La premiere solution me parait très bien ! Mais comment faire ? ^^'
Merci encore !
Hello
OK donc voici une excellente routine "RB_Calque" en VLisp de P35 qui remettra TOUTES les entites des blocs sur le calque ZERO
Cette version de la routine ne touche aux couleurs, types de lignes, epaisseurs de ligne, eventuellement forcees sur les entites ...
Chargement par : APPLOAD <Entree>
Puis execution par la commande : RB_Calque <Entree>
Est ce OK ?
Patrice BRAUD
Ca ne marche pas.
Il me dit toujours dans les propriétés de l'éditeur d'attributs étendu que le bloc est dans le calque dit "1" 😕
Hello
Desole mais je viens de faire un bloc XXXX avec le graphique sur le calque "B1" et 2 attributs sur le calque "B2"
puis d'inserer ces Blocs sur le calque "VERT" donc :
- le graphique du bloc est toujours sur le calque "B1"
- les attributs sont toujours sur le calque "B2"
Bien que le Bloc soit insere sur le calque "VERT" ...
APPLOAD <Entree>
Parcourir et CLIC CLIC sur le fichier "RB_Calque.lsp" - Charger / Fermer
RB_Calque <Entree>
Selectionner le/les blocs concernes ...
et HOP TOUT le graphisme et TOUS les attributs passent sur la calque ZERO dans la definition du Bloc XXXX
et donc tout se dessine sur le calque "VERT" !
Patrice BRAUD
Bonjour,
Pour remetre sur le calque 0 un attribut dont la propriété à été forcée grâce à la commande battman, essaye ce petit lisp vite fait.
(defun c:prop_at (/ ss ent n) (setq ss (ssget "_X" '((0 . "INSERT") (66 . 1))) n 0) (repeat (sslength ss) (setq ent (entnext (ssname ss n)) n (1+ n)) (while (/= (cdr (assoc 0 (entget ent))) "SEQEND") (if (and (= (cdr (assoc 0 (entget ent))) "ATTRIB") (/= (cdr (assoc 8 (entget ent))) "0") ) (entmod (subst '(8 . "0") (assoc 8 (entget ent)) (entget ent))) ) (setq ent (entnext ent)) ) ) )
Olivier
Hello Olivier
MERCI pour cet excellent petit programme Lisp !
SVP quelle serait la variante qui permetrait de selectionner des Blocs DEJA insereres
afin de ne traiter QUE CES Blocs et non pas TOUS les Blocs du DWG ?
Merci d'avance
Patrice BRAUD
Hello Patrice,
Il suffit de supprimer les caractères "_X" après le ssget.
Olivier
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.