Aller au contenu

[Résolu]Comment éviter ce genre de "bug" sur une polyligne fermée


Dilack33

Messages recommandés

Bonjour @Dilak33 au 10ème post une solution est apportée :

https://forums.autodesk.com/t5/autocad-tous-produits-francais/polylignes-a-angles-vifs/td-p/2649428

Mais...

J'ai testé et malheureusement tu n'obtiendra pas ce que tu souhaites avec des courbes.

Je penses que ce n'est pas possible d'ailleurs (à confirmer par la communauté)

Pour m'être intéressé aux méthodes de rendu d'Autocad, je te suggère d'abandonner le travail des largeurs de segments au profit des épaisseurs de lignes d'Autocad.

Je t'invite aussi à te pencher sur le concept de .ctb du gestionnaire d'impression pour maitriser graphiquement la sortie de tes épaisseurs de traits et bien sûr utiliser la commande LWDISPLAY pour afficher/masquer les épaisseurs de ton dessin en cours de création.

Ci-joint des gabarits .ctb issus des éditeurs américains de l'excellent plugin LandFX destiné aux paysagistes.

https://www.landfx.com/docs/cad-basics/plotting.html

Cordialement,

Sébastien.

LFX Pens.pdf How to install.txt LFX.ctb LFX-25percent.ctb LFX-50percent.ctb LFX-75percent.ctb LFX Pens.dwg

Sébastien / Dezign-UP

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Pourquoi des CTB ?! 

Il est préférable de gérer les épaisseurs directement via les CALQUES !

Pour moi les CTB nous ramène très loin au début d'AutoCAD où l'on faisait la relation COULEUR = Epaisseur de plume à l'impression.

Depuis on est passé au mode STB... mais on peut s'en passer aussi !

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

Alors , je ne vais pas donner une solution, mais un contournement.

sur les versions recentes de Covadis (à partir de la v18 je crois) il existe une commande recréant les polylignes "de bords" d'une polyligne avec largeur

image.png.fc6481b1141b5104f9dff60bff3c8608.png

avec cette commande tu obtiendras les deux polylignes violettes ci dessous

image.png.55bd98a5233b3756136deeb3b87ed9bf.png

Donc si ce n'est que pour faire du joli plan , tu rajoutes les deux extrémités et une bonne hachure dedans...

voila , esperant que cela te serve.

Thierry Garré

 

Géorail-Covadis-Autopiste-Autocad-Autocad Map-Infraworks 360- Navisworks -Recap

Lien vers le commentaire
Partager sur d’autres sites

Effectivement vu le défaut, le plus simple est de donner une épaisseur au calque et de laisser la LARGEUR de la polyligne à 0 !

L'épaisseur MAX pour un calque est de 2,11, mais on peut, à l'impression aller au delà. Mais 2,11 c'est déjà pas mal !

Après si la LARGEUR de la polyligne correspond à une largeur de BORDURE ce sera compliqué à gérer de cette manière.

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

Hello @Dilack33

 

Voici une routine "PLWO" VLisp de Kent qui dessine les 2 Polylignes "gauche-droite" de N LWPOLYLINEs

(avec segment et/ou arc) ayant une Largeur globale NON NULLE

 

ATTENTION 1 : la routine PLWO supprime les N LWPOLYLINEs originales ...

DONC il faut travailler sur une copie des N LWPOLYLINEs ... Copiees en Ortho a 1000/2000m ...

 

ATTENTION 2 : Et aussi elle cree les nouvelles LWPOLYLINEs sur le calque origine des LWPOLYLINEs selectionnees et non pas sur le calque courant !

 

Bon dimanche, Bye, lecrabe

 

 
;; 
;; http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/convert-polylines-into-double-lines-with-hatch/m-p/5844082#M335741
;; 

;;  PLWtoOutline.lsp [command name: PLWO]
;;
;;  To convert lightweight PolyLines with global Width to closed outlining Polylines
;;    without width, tracing the edges of the selected Polylines and closing their ends.
;;
;;  For closed Polylines, results in two Polylines tracing edges of original (does not
;;    connect their ends, and, of course, cannot join them together).
;;
;;  Ignores non-Polylines, those with zero or varying width, and those on locked layers.
;;  Works with Polylines in different Coordinate Systems.
;; 
;;  Kent Cooper, last edited 1 October 2015
;;
 
(defun C:PLWO (/ *error* doc osm plset pl pldata ucschanged offs pljoin plobj)
 
  (defun *error* (errmsg)
    (if (wcmatch errmsg "Function cancelled,quit / exit abort,console break") (princ (strcat "\nError: " errmsg)))
    (if ucschanged (command "_.ucs" "_prev")); don't go back unless routine changed UCS but didn't change it back yet
    (setvar 'osmode osm)
    (setvar 'cmdecho cmde)
    (vla-endundomark doc)
  ); defun - *error*
 
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark doc)
  (setq osm (getvar 'osmode) cmde (getvar 'cmdecho))
  (setvar 'cmdecho 0)
  (setvar 'osmode 0)

  (prompt "\nTo change PLines with global Width to outline PLines tracing their edges,")

  (setq plset (ssget "_:L" '((0 . "LWPOLYLINE")))); [(ssget) provides its own Select objects: prompt] 

  (while (> (sslength plset) 0); as long as there's still something in the set
    (setq
      pl (ssname plset 0); get the first item
      pldata (entget pl); and its entity data
    ); setq
    (if (> (cdr (assoc 43 pldata)) 0.0); it has a non-zero global width
      (progn ; then - process this Polyline
        (command "_.ucs" "_new" "_object" pl) ; set UCS to match object
        (setq
          ucschanged T ; for use in *error* function if UCS does not get reset
          offs (/ (cdr (assoc 43 pldata)) 2); half of Pline's global width
          pljoin (ssadd); start initially empty set of items to join together
          plobj (vlax-ename->vla-object pl)
        ); setq 

        (vla-put-ConstantWidth plobj 0.0) 
        (vla-offset plobj offs)
        (ssadd (entlast) pljoin)
        (vla-offset plobj (- offs))

        (ssadd (entlast) pljoin) 

        (entdel pl) ;; eliminate original 

        (if (not (vlax-curve-isClosed (entlast))); open-ended - close ends & join
          (progn 

           (setvar 'clayer (cdr (assoc 8 pldata))) 

            (command
              "_.line"
                (trans (vlax-curve-getStartPoint (ssname pljoin 0)) 0 1)
                (trans (vlax-curve-getStartPoint (ssname pljoin 1)) 0 1)
                ""
            ); command
            (ssadd (entlast) pljoin)
            (command
              "_.line"
                (trans (vlax-curve-getEndPoint (ssname pljoin 0)) 0 1)
                (trans (vlax-curve-getEndPoint (ssname pljoin 1)) 0 1)
                ""
            ); command
            (ssadd (entlast) pljoin) 
            (command  "_.pedit" (ssname pljoin 0) "_join" pljoin "" ""      "_.layerp"  ) ; command
          ); progn

        ); if
        (command "_.ucs" "_prev"); reset UCS
        (setq ucschanged nil); eliminate reset in *error* function
      ); progn 

    ); if 
    (ssdel pl plset) ;; remove from set, and... 
  ); while - ...go back and do next one if appropriate

  (setvar 'osmode osm)
  (setvar 'cmdecho cmde)
  (vla-endundomark doc)
  (princ)
); defun

(vl-load-com) 

(prompt "\nType PLWO to change PLines with Global Width to Outlines tracing their edges ") 
 

 

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é