Aller au contenu

Selection, Type de Ligne DuCalque->Type de Ligne


stugeol

Messages recommandés

Bonjour,

Si la valeurs du type de ligne du calque 0 est "Type1", et qu'un objet du calque 0 a comme valeurs de type de ligne "DuCalque", la valeurs exporté est "DuCalque".

Je suis à le recherche d'une routine qui remplace la valeur du type de ligne de l'objet ("DuCalque"), par la valeur du type de ligne du calque ("Type1").

Le but est de ne plus avoir de valeur "DuCalque" pour le type de ligne lors de l'extraction de données.

Voici comment je compte exploité cette routine :

 

1) Séléction des objets qui ont pour type de ligne DuCalque

2) Exécution de la routine

3) extraction des données

 

Je vous remercie par avance de votre aide.

Cordialement.

Petit à petit on devient moins petit

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Pour l'exemple

(defun stugeol (calque typeligne / i ent ss)
 (repeat (setq i (sslength (setq ss (ssget "_X" (list (cons 8 calque))))))
   (if (not (assoc 6 (setq ent (entget (ssname ss (setq i (1- i)))))))
     (entmod (cons (cons 6 typeligne) ent))
   )
 )
)

 

Pour tester

(stugeol "0" "Type1")

 

Ps: Le type de ligne doit préalablement être chargé dans le dessin.

 

A+

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Voici un petit Lisp que j'ai écrit il y a quelques temps, sans doute en réponse à une précédente demande sur CADxp :

 

(defun c:FORCETP (/ acdoc *error* lay ss obj layobj i counter)
; Attribue à chaque objet sélectionné le type de ligne du calque de l'objet.

(vl-load-com)

(setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)))

(defun *error* (msg)
(and msg
	(or
		(member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON"))
		(princ (strcat "\nErreur : " msg))
	)
)
(vla-endundomark acdoc)
(princ)
)

(vla-startundomark acdoc)

(if (or
		(setq ss (cadr (ssgetfirst)))
		(setq ss (ssget))
	)
(progn
	(setq i 0)
	(setq counter 0)
	(repeat (sslength ss)
		(setq obj (vlax-ename->vla-object (ssname ss i)))
		(setq layobj (vla-item (vla-get-Layers acdoc) (vla-get-layer obj)))
		(if (= (vla-get-lock layobj) :vlax-false)
			(progn
				(vla-put-linetype obj (vla-get-linetype layobj))
				(setq counter (1+ counter))
			)
		)
		(setq i (1+ i))
	)
	(princ (strcat "\n" (itoa counter) " objets modifiés !"))
	(princ)
)
);if selection

(*error* nil)
)

(princ "\nCommande à utiliser: FORCETP")
(princ)

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é