Aller au contenu

Changer une polylygne en double trait ?


Koalu

Messages recommandés

Bonjour à tous !

J'ai un petit soucis :

J'ai fais plein de polylygne avec une epaisseur et j'ai besoin de les transformer en polylygne avec 2 trait aux extrémités...

Je sais pas si je m'explique bien. En gros j'ai représenté des murs avec une polylygne d'ep 30 et j'ai besoin graphiquement de mettre 2 traits fins à la place. mon problème c'est que j'en ai un tas immense à faire et tous redessiner serait assez fastidieux.

 

Merci pour votre aide.

 

Bonne journée à tous.

 

[Edité le 24/6/2009 par Koalu]

Lien vers le commentaire
Partager sur d’autres sites

salut,

 

Une idée comme ça...(en premier jet)

 

Je ne sais pas si sa va te servir et si ca va correspondre à ce que tu veux faire.

Mais tu peux modifier la variable fillmode et la passer à 0 afin que tes polylignes perdent leurs remplissages. Mais ce n'est qu'un rendu visuel, et cela ne transforme en aucun cas tes polylignes en lignes.

 

A+

 

Imposer sa volonté aux autres, c'est force. Se l'imposer à soi-même, c'est force supérieure.

Lao-Tseu

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Cela donne exactement le rendu que je veux pour mes polylignes concernées mais le problême c'est que ça retire mes hachures sur tout mon fichier.

 

Peut on effectuer cette opération uniquement sur une zone sélectionnée ou objets sélectionnes ?

 

Merci farfar. ;)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Essayes ce code écrit rapidement.

 

(vl-load-com)
(defun c:plwidth2dbl_offset ( / js n ent vla_obj e_width)
(princ "\nSélectionner les polylignes à transformer")
 (setq js (ssget '((0 . "*POLYLINE"))))
 (cond
	(js
		(repeat (setq n (sslength js))
			(setq
				ent (ssname js (setq n (1- n)))
				vla_obj (vlax-ename->vla-object ent)
				e_width (vlax-get vla_obj 'ConstantWidth)
			)
			(if (not (zerop e_width))
				(progn
					(vla-Offset vla_obj (* 0.5 e_width))
					(vlax-put (vlax-ename->vla-object (entlast)) 'ConstantWidth 0.0)
					(vla-Offset vla_obj (- (* 0.5 e_width)))
					(vlax-put (vlax-ename->vla-object (entlast)) 'ConstantWidth 0.0)
					(entdel ent)
				)
			)
		)
	)
	(T (princ "\nSélection vide"))
)
(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

Aucun effet chez moi !

 

Alors c'est que la/les polylignes n'ont pas de largeur CONSTANTE.

 

Ne fonctionne pas avec des largeur définies par segment. (largeur de début/fin)

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

Merci beaucoup pour vos réponses.

 

Cependant je suis un gros débutant sur les lisp prog et tout.

 

avec ce code je le copie colle dans un txt que je renomme en .lsp et charge dans l'éditeur lisp ?

 

j'ai fait ca et quand je lance la commande "js" : ça ne marche pas .

 

heureusement mes polylignes concernées ont une largeur constante.

 

encore merci.

 

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é