Aller au contenu

Copie de calques pour projet


Messages recommandés

Posté(e)

Bonjour,

 

Afin de faciliter la gestion des calques projets, j'aimerai avoir une commande lisp qui me permet de :

 

1- Copier un calque existant

2- Attribuer à ce calque la couleur rouge

3- Rajouter un "-proj" à la fin

 

Exemple :

Bat-cot (calque existant)

Bat-cot-proj (Calque projet)

 

Merci d'avance

 

 

XXL

Posté(e)

Bonjour,

 

Un "truc" dans ce genre?

 

Peut s'affiner encore si cela ne va pas.

 

((lambda ( )
(while (not (setq ent (entsel "\nChoix d'un objet du calque-source: "))))
(setq nam_lay (cdr (assoc 8 (entget (car ent)))))
(if (not (tblsearch "LAYER" (strcat nam_lay "-proj")))
	(entmake
		(list
			'(0 . "LAYER")
			'(100 . "AcDbSymbolTableRecord")
			'(100 . "AcDbLayerTableRecord")
			(cons 2 (strcat nam_lay "-proj"))
			'(70 . 0)
			'(62 . 1)
			'(370 . -3)
			'(6 . "Continuous")
		)
	)
)
(setq js (ssget "_X" (list (cons 8 nam_lay))))
(cond
	(js
		(command "_.copy" js "" "_none" "*0.0,0.0,0.0" "_none" "*0.0,0.0,0.0")
		(command "_.change" "_previous" "" "_properties" "_layer" (strcat nam_lay "-proj") "")
	)
)
(prin1)
))

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Merci bonuscad pour cette première version. Je l'ai essayé et je me rends compte que copier le calque existant n'est finalement pas ce que je souhaite. En fin de compte, il faudrai pouvoir créer un nouveau calque avec l'intitulé du calque existant + -proj.

 

XXL

Posté(e)

Enlève simplement quelques ligne!

 

de (setq js (ssget ......

à (prin1) non inclu.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Encore une petite modif :) :

Sur certains calques j'ai un type de ligne spécifique et je voudrai le conserver.

et j'aimerai que le calque créer soit courant.

XXL

Posté(e)

Petit soucis en ayant enlevé les lignes :

"Choix d'un objet du calque-source: Erreur: Type de ligne non défini DuCalque

dans LayerTableRecord Tdf-anten-text-proj"

 

(Defun C:cap ( )

(while (not (setq ent (entsel "\nChoix d'un objet du calque-source: "))))

(setq nam_lay (cdr (assoc 8 (entget (car ent)))))

(if (not (tblsearch "LAYER" (strcat nam_lay "-proj")))

(entmake

(list

'(0 . "LAYER")

'(100 . "AcDbSymbolTableRecord")

'(100 . "AcDbLayerTableRecord")

(cons 2 (strcat nam_lay "-proj"))

'(70 . 0)

'(62 . 1)

'(370 . -3)

'(6 . "DuCalque")

)

)

)

(prin1)

);Fin de cap

;

;

;

(princ "\n\tcommande cap chargée")

(princ)

XXL

Posté(e)

Ceci devrait aller mieux, ;)

 

(Defun C:cap ( / ent nam_lay)
(while (not (setq ent (entsel "\nChoix d'un objet du calque-source: "))))
(setq nam_lay (cdr (assoc 8 (entget (car ent)))))
(if (not (tblsearch "LAYER" (strcat nam_lay "-proj")))
	(entmake
		(list
			'(0 . "LAYER")
			'(100 . "AcDbSymbolTableRecord")
			'(100 . "AcDbLayerTableRecord")
			(cons 2 (strcat nam_lay "-proj"))
			'(70 . 0)
			'(62 . 1)
			(assoc 6 (tblsearch "LAYER" nam_lay))
			'(370 . -3)
		)
	)
)
(setvar "CLAYER" (strcat nam_lay "-proj"))
(prin1)
);Fin de cap
;
;
;
(princ "\n\tcommande cap chargée")
(princ)

 

[Edité le 12/12/2005 par bonuscad]

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Merci Bonuscad de ton efficacité et rapidité.

 

Petit récapitulatif pour ce qui ça interresse.

 

Commande CAlque Projet

Création d'un calque projet à partir d'un existant en conservant le type de ligne.

Le calque projet passe en rouge et un "-proj" et rajouté à la fin.

 

Exemple :

Bat-cot (calque existant)

Bat-cot-proj (Calque projet)

 

 

 

XXL

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é