Aller au contenu

frozen layer


Invité ingoenius

Messages recommandés

Invité ingoenius

comment construire une routine qui selectionne tous les calques qui sont etaint et qui le passe aussi en frozen (gele) ?

 

 

Lien vers le commentaire
Partager sur d’autres sites

Monté très rapidement, sans beaucoup de test (juste dans l'espace objet)

 

((lambda ( / def_lay bit_lay flag)
(setq flag T lst_lay "")
(setvar "cmdecho" 0)
(while (setq def_lay (tblnext "LAYER" flag))
	(setq flag nil)
	(if (< (cdr (assoc 62 def_lay)) 0)
		(command "_.-layer" "_freeze" (cdr (assoc 2 def_lay)) "")
	)
)
(setvar "cmdecho" 1)
(prin1)
))

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

Lien vers le commentaire
Partager sur d’autres sites

Invité ingoenius

grande , merci pour la rapidié et la qualité du code

ici mes premiere rajout pour créér la nouvelle commande "lc"

 

(defun c:lc ();lc per ligne cachés ovvero linee nascoste 
  ((lambda ( / def_lay bit_lay flag)

(setvar "dispsilh" 1);variabile per display silhouette
(setvar "facetres" 2.0);variabile per facet resolution

(setq flag T lst_lay "")
(setvar "cmdecho" 0)
(while (setq def_lay (tblnext "LAYER" flag))
(setq flag nil)
(if (< (cdr (assoc 62 def_lay)) 0)
(command "_.-layer" "_freeze" (cdr (assoc 2 def_lay)) "")
)
)
     
(setvar "cmdecho" 1)
(command "cache")
     (prin1)
))
 ) 

 

ps un rajout a faire ca serais d'avoir une sortie automatique un pdf de la vue cache, en passante avvant l'epaisseur de toute les lignes a zero, c'est possible selon vous??

 

 

 

 

 

[Edité le 20/3/2006 par ingoenius]

Lien vers le commentaire
Partager sur d’autres sites

PS:

 

J'ai utilisé ((lambda)) pour créer une fonction anonyme qui ne reste pas en mémoire (je le fais souvent pour tester)

 

C'est à dire que tu copie-colle directement en ligne de commande pour éxecuter le code.

Si tu veux le réexecuter il faut de nouveau charger le code en mémoire.

 

Tu peux transformer cette fonction anonyme en une fonction persistante.

Tu remplaces ((lambda ( / def_lay bit_lay flag) par (defun c:lc ( / def_lay bit_lay flag)

 

NB: Ne pas oublier d'enlever dans ce cas la paranthèse supplémentaire en fin de code de lambda

 

Mais tu peux aussi le laisser sous la forme que tu as présenté si tu ne veux pas réutiliser les variables en dehors de la fonction (lambda)

 

Je tenais à le préciser ;)

 

L'utilisation de (lambda) est utile quand on sait que la fonction ne sera executé qu'une seule fois dans le code, ça évite d'encombrer la mémoire avec du code qui ne sert qu'une fois.

 

Personnellement j'ai mis du temps à comprendre l'interêt de cette fonction :P

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

Lien vers le commentaire
Partager sur d’autres sites

Invité ingoenius

merci de la precisation sur labda, moi enfait je pas encore ou besoi de l'utiliser, mais je comprende quelle este trés utile, en fait j'ai cree beaucoup de script lisp pour ameliorer l'utilisation du 3d en autocad evac des commandes plus rapides, pour ce depalcer dans les vue, pour faire les operations de base en 3d ,

masi aprés je passe beaucoup de temp sans rien programmer, donc qua ji revien j'ai oublier beaucoup de choses, mais heureusement les forum sont la ;-)

et le gens disponibles ausisi

 

 

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é