Aller au contenu

Cherche routine sur les type de lignes


Messages recommandés

Posté(e)

Bonjour,

 

J'ai fais un petite recherche sur le site mais je n'ai pas trouvé ce dont j'avais besoin.

Je suis à la recherche d'une routine qui passerai systématiquement "le type de ligne" des entités dans "le type de ligne" du calque à laquelle elle appartient.

 

Par exemple si un calque est en AXES, je voudrais que le type de ligne des entités de ce calque passent toutes en AXES

 

Merci d'avance,

Bye

Posté(e)

Bonjour,

 

La routine proposée par Didier attribue le type de ligne "Ducalque" à tous les objets.

Si j'ai bien compris, tu veux en quelque sorte faire l'inverse, et que chaque objet au final ait son type de ligne forcé ?

Si j'ai bon, je te propose ceci :

 

(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)

Posté(e)

Merci bryce, c'est exactement ce que je cherchais ! En plus ce la à l'air de fonctionner aussi pour les blocs c'est vraiment nickel !

Pour répondre à Didier, je pense que mon explication était plutôt claire, et oui cela peut sembler bizarre. En fait, j'utilise cela pour nettoyer les fonds de plans architectes, afin "d'aplatir" tout le plan sur un seul calque sans perdre les types de lignes ;) !

 

Merci à vous

Posté(e)

coucou

 

au temps pour moi :mellow:

je n'aimerais pas passer derrière quelqu'un qui travaille ainsi,

mais si ça te fait du bien, ça ne me fait pas de mal...

 

toutefois, je suis curieux,

donc si l'entité est en axe

si le calque de l'entité est en cache

tu veux que les lignes soient forcées en cache

c'est ça ?

 

amicalement

Posté(e)

toutefois, je suis curieux,

donc si l'entité est en axe

si le calque de l'entité est en cache

tu veux que les lignes soient forcées en cache

c'est ça ?

 

:rolleyes: Non, je ne suis pas aussi tordu.

 

Ce n'est pas une routine que je vais utiliser tous les jours, mais parfois je recois des plans d'Archi ou béton où les type de ligne sont gérés par calques. Par exemple toutes leurs lignes représentant l'isolation est sur un calque isolation dont le type de ligne est isolation. Lorsque "j’aplatis" tous les calque sur un calque ARCHI je pers c'est info et cela m'oblige à pas mal de boulot à la main.

 

Concernant les Xrefs, je ne les utilisent quasiment plus car quand tu envois ton plan il faut bien penser à les joindre avec le plan (ce qui est parfaitement gérable), mais quand tu as affaire à quelqu'un qui ne pige rien à Autocad (car ce n'est pas son métier) et qu'il t'appelle pour te dire que le fond de plan n'est pas présent, qu'il est à la bourre, qu'il doit faire une sortie pour sa prochaine réunion qui a déjà commencé depuis 1/4 d'heure, c'est la loose... Et si par malheur tu as fait un eTransmit tu peux quasiment être sûr qu'il va essayer d'ouvrir le plan depuis le ZIP résultat --> pas de fond de plan archi (Quand il essaye pas de l'ouvrir directement depuis OUTLOOK).

Et même sur les gros chantiers, lorsque il y a une armoire à plans on te demande souvent à ce que tous les xrefs soient détachés...

 

C'est pourquoi lorsque je transmet mes plans à mes clients je n'ai qu'un seul fichier avec le fond de plan en bloc sur un calque archi et mes installations sur mes différents calques.

 

D'ailleurs je ne comprends pas pourquoi Autodesk n'a pas fait une fonction Aplatir, qui écraserait toutes les entités sur un calque dans l'état où elles apparaissent à l'écran (un peu comme le Aplatir de photoshop). Il y a bien la fonction Normes CAO, mais je n'ai jamais réussi à la configurer pour remplir correctement cet objectif.

 

Un petit lisp pour cela ? :P

 

Bye

Posté(e)
Concernant les Xrefs, je ne les utilisent quasiment plus car quand tu envois ton plan il faut bien penser à les joindre avec le plan (ce qui est parfaitement gérable), mais quand tu as affaire à quelqu'un qui ne pige rien à Autocad (car ce n'est pas son métier) et qu'il t'appelle pour te dire que le fond de plan n'est pas présent, qu'il est à la bourre, qu'il doit faire une sortie

 

haaaaa!!!!!

fichier/Etransmit

ça crée un zip avec les xref, les plumes (on les oublies souvent, mais si tu veux faire une sortie et que tu n'a pas les plumes c'est moche) bref, tout ce qu'il faut...

au pire, mais c'est plus contraignant, clic droit sur l'xref (dans le gestionnaire de ref) et tu fait "attacher" ça la transforme en objet.

 

mais tu faire suer à "l'applatir" à la main.... c'est super bof

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é