Aller au contenu

Polyligne et multilignes


Messages recommandés

Posté(e)

Bonjours à tous,

 

je recherche une manière de créer des polylignes avec une largeur donnée et représentée par deux traits parralèles (type multilignes).

 

Les multilignes ne convenant pas car inexploitables par covadis (métré, listing ...)

 

quelqu'un a-til une solution ? Merci de vos idées..

Posté(e)

En effet, pour le rendu à l'écran cela conviendrai.

mais le décalage demande 2 manip supplémentaires (décaler à gauche, décaler à droite par rapport à l'axe déssiné en polyligne puis changement de calque pour differencier l'axe de construction et les lignes décalées)

et cela sur un trés grand nombre de polylignes.

 

je cherche donc à automatiser tout ca pour n'avoir qu'un objet à dessiner et pour exploiter ses propriétés rapidement.

 

Posté(e)

J'y avais pensé mais

je ne sais pas comment faire un type de ligne qui comporte 2 traits parrallèles et

de plus, le type de ligne ne poura pas être lier à la largeur de la polyligne.

Voila donc l'étendu de mon problème. c'est pour dessiner des réseaux Assainissement avec leur largeur réelle (exemple largeur de la polyligne = 0.8 avec un dessin en metre pour un Ø800 mm)

Posté(e)

Salut,

 

Je ne suis pas sûr d'avoir compris si tu veux un double décalage de chaque polyligne ou une polyligne d'une largeur constante.

 

Donc, voici 2 petits LISP.

 

Le premier décale les polylignes sélectionnées de chaque côté de la moitié de la largeur spécifiée.

Les polylignes sont créées sur le calque courant.

 

(defun c:dble_dec (/ larg ss pline)
 (vl-load-com)
 (initget 3)
 (setq larg (/ (getdist "\nSpécifiez la largeur totale: ") 2.0))
 (if (setq ss (ssget '((0 . "LWPOLYLINE"))))
   (progn
     (vla-StartUndoMark
(vla-get-ActiveDocument (vlax-get-acad-object))
     )
     (foreach pl
       (mapcar 'vlax-ename->vla-object
	       (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
       )
(setq pline (car (vlax-invoke pl 'Offset larg)))
(vla-put-Layer pline (getvar "CLAYER"))
(setq pline (car (vlax-invoke pl 'Offset (- larg))))
(vla-put-Layer pline (getvar "CLAYER"))
     )
     (vla-EndUndoMark
(vla-get-ActiveDocument (vlax-get-acad-object))
     )
   )
 )
 (princ)
)

 

Celui-ci crée une nouvelle polyligne de la largeur constante spécifiée sur le calque courant

 

(defun c:larg_pl (/ larg ss pline)
 (vl-load-com)
 (initget 1)
 (setq larg (getdist "\nSpécifiez la largeur totale: "))
 (if (setq ss (ssget '((0 . "LWPOLYLINE"))))
   (progn
     (vla-StartUndoMark
(vla-get-ActiveDocument (vlax-get-acad-object))
     )
     (foreach pl
       (mapcar 'vlax-ename->vla-object
	       (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
       )
(setq pline (vla-Copy pl))
(vla-put-ConstantWidth pline larg)
(vla-put-Layer pline (getvar "CLAYER"))
     )
     (vla-EndUndoMark
(vla-get-ActiveDocument (vlax-get-acad-object))
     )
   )
 )
 (princ)
) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Voila donc l'étendu de mon problème. c'est pour dessiner des réseaux Assainissement avec leur largeur réelle (exemple largeur de la polyligne = 0.8 avec un dessin en metre pour un Ø800 mm
:casstet:

 

Bin oui, mais justement Covadis gère cela très bien :D

 

Tu dessines tes poly dans le calque TUYO_Assainiss (par exemple)

avec des largeurs suivant les diamètres

et avec la commande "Métrés des réseaux"

tu obtiens un listing avec la longueur totale des poly par Ø (= largeur que tu as appliqué à tes poly)

 

[Edité le 20/10/2006 par kallain]

Posté(e)

Merci Kallain pour le tuyo :cool:

mais il me semblais que Covadis ne dessiné que des filaires

et si je met une largeur j'obtiens un trait épais alors que je souhaite deux traits parrallèles.

 

A+

 

 

Posté(e)

et si je met une largeur j'obtiens un trait épais alors que je souhaite deux traits parrallèles.

 

Ouais, mais là t'est dur.... mais c'est vrai un Ø 1000 au 200 ça crache ;)

 

Encore que j'ai déjà vu (et je crois lu sur CadXP) des polys avec largeur vides (comme les textes avec textfill) mais là c'est un bug.[Edité le 20/10/2006 par kallain]

 

[Edité le 20/10/2006 par kallain]

Posté(e)

j'obtiens un trait épais

 

Si cela ne te dérange pas pour les autres objets de ton dessin, tu peux mettre la variable "FILLMODE" à 0 , comme ca tu verras tes traits de bords sans que cela cache d'autres objet éventuels.

 

Faire un "Regen" pour voir la modif.

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

Posté(e)

Encore que j'ai déjà vu (et je crois lu sur CadXP) des polys avec largeur vides (comme les textes avec textfill) [surligneur] mais là c'est un bug[/surligneur]

 

Qu'est-ce qu'on peux raconter comme co......... :P :calim: :P

 

Mais bon sang mais c'est bien sûr ............Fillmode

Merci qui : Merci Bonuscad ;)

 

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é