Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

#1 Wed 30 January 2013 11:24

Charlotte BeTechSud
Participant occasionnel
Date d'inscription: 12 Dec 2012
Messages: 20

Modifier largeur de segment de départ sur une sélection de polylignes?

Bonjour,

Je cherche, sous Autocad 2012 à modifier la largeur de segment de départ d'une sélection de polyligne (largeur départ et fin différentes).
Mais en passant par le biais d'une sélection, je ne peux apparemment modifier que la largeur globale, et apparemment pareil en faisant un PE.

Quelqu'un connaîtrait une astuce?

Merci

Hors ligne

 

#2 Wed 30 January 2013 11:45

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4756

Re: Modifier largeur de segment de départ sur une sélection de polylignes?

Hello

Malheureusement, il faut un developpement specifique pour ce genre de manipulation !

GeoBye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

#3 Wed 30 January 2013 11:52

Charlotte BeTechSud
Participant occasionnel
Date d'inscription: 12 Dec 2012
Messages: 20

Re: Modifier largeur de segment de départ sur une sélection de polylignes?

Merci pour votre réponse!
bonne journée

Hors ligne

 

#4 Thu 31 January 2013 00:42

Zef
Participant occasionnel
Date d'inscription: 16 Apr 2007
Messages: 42

Re: Modifier largeur de segment de départ sur une sélection de polylignes?

S'il s'agit d'appliquer une largeur progressive (effilement) entre le premier vertex d'un polyligne puis le dernier de l'intégralité de la polyligne, ça n'est effectivement pas évident puisque les largeurs s'appliquent par segment. Avec du courage PEDIT, Modifier sommet, Epaisseur, Suivant, Epaisseur, Suivant, etc. Et oui cette vieille incohérence de traduction, parfois largeur parfois épaisseur, perdure depuis aussi longtemps que PEDIT existe je pense.

Sinon effectivement un petit bout de lisp.

A noter que le concurrent Bricscad propose "effiler" dans sa commande PEDIT. Si une petite boite Belge y arrive, je pense que Autodesk devrait y parvenir. Mais les marketeux Autodesk n'y voient certainement pas un argument commercial de poids.

Hors ligne

 

#5 Fri 01 February 2013 09:08

bruno v.
Participant actif
Date d'inscription: 22 Mar 2010
Messages: 89

Re: Modifier largeur de segment de départ sur une sélection de polylignes?

Si une petite boite Belge y arrive


Je ne suis pas Belge, mais je peux vous proposer ceci qui fonctionne avec des polylignes 2D anciennes ou optimisées MAIS qui ne sont pas lissées ou splinées...

Code:

(vl-load-com)
(defun c:Effile_Poly ( / js th_start th_end n ent obj flag_close param_curve perim_curve w_end)
  (princ "\nSélectionner les polylignes: ")
  (while (not (setq js (ssget '((0 . "*POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 126) (-4 . "NOT>")))))
    (princ "\nPas d'objets valable ou sélection vide!")
  )
  (initget 5)
  (setq th_start (getdist "\nLargeur de départ: "))
  (initget 5)
  (setq th_end (getdist "\nLargeur de fin: "))
  (repeat (setq n (sslength js))
    (setq
      ent (ssname js (setq n (1- n)))
      obj (vlax-ename->vla-object ent)
    )
    (cond
      ((eq (setq flag_close (vla-Get-Closed obj)) ':vlax-true)
        (vla-Put-Closed obj ':vlax-false)
      )
    )
    (setq
      param_curve (vlax-curve-getEndParam obj)
      perim_curve (vlax-curve-getDistAtParam obj param_curve)
      w_end th_end
    )
    (vla-SetWidth
      obj
      param_curve
      w_end
      th_end
    )
    (repeat (setq nb_vtx (1- (fix param_curve)))
      (vla-SetWidth
        obj
        nb_vtx
        (setq w_start (+ th_start (* (/ (- th_end th_start) perim_curve) (vlax-curve-getDistAtParam obj nb_vtx))))
        w_end
      )
      (setq w_end w_start nb_vtx (1- nb_vtx))
    )
    (vla-SetWidth
      obj
      nb_vtx
      th_start
      w_end
    )
    (vla-Put-Closed obj flag_close)
  )
  (prin1)
)

Hors ligne

 

#6 Fri 01 February 2013 12:12

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4756

Re: Modifier largeur de segment de départ sur une sélection de polylignes?

Hello Bruno

Encore Merci pour ta Routine !

Mais sur mon MAP 2013 32 bits, ca ne fonctionne pas correctement (a mon sens)
pour les Polylignes avec PLUS de UN segment/arc !

La largeur de depart est affectee au 1er segment/arc
La largeur de fin est affectee au dernier segment/arc

mais c peut etre ce que tu voulais developper pour Charlotte !?

SVP ca serait quoi la version ou tu interviens toujours sur le 1er segment/arc ?

Merci d'avance, GeoBye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

#7 Fri 01 February 2013 14:40

bruno v.
Participant actif
Date d'inscription: 22 Mar 2010
Messages: 89

Re: Modifier largeur de segment de départ sur une sélection de polylignes?

Salut Patrice

SVP ca serait quoi la version ou tu interviens toujours sur le 1er segment/arc ?


De façon répétitive sur chaque segment, ou façon MLeader?

Alors au choix !:

Code:

(vl-load-com)
(defun c:Effile_PolyByVertex ( / js th_start th_end n ent obj flag_close param_curve)
  (princ "\nSélectionner les polylignes: ")
  (while (not (setq js (ssget '((0 . "*POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 126) (-4 . "NOT>")))))
    (princ "\nPas d'objets valable ou sélection vide!")
  )
  (initget 5)
  (setq th_start (getdist "\nLargeur de départ: "))
  (initget 5)
  (setq th_end (getdist "\nLargeur de fin: "))
  (repeat (setq n (sslength js))
    (setq
      ent (ssname js (setq n (1- n)))
      obj (vlax-ename->vla-object ent)
    )
    (cond
      ((eq (setq flag_close (vla-Get-Closed obj)) ':vlax-true)
        (vla-Put-Closed obj ':vlax-false)
      )
    )
    (setq param_curve (vlax-curve-getEndParam obj))
    (vla-SetWidth
      obj
      param_curve
      th_start
      th_end
    )
    (repeat (setq nb_vtx (1- (fix param_curve)))
      (vla-SetWidth
        obj
        nb_vtx
        th_start
        th_end
      )
      (setq nb_vtx (1- nb_vtx))
    )
    (vla-SetWidth
      obj
      nb_vtx
      th_start
      th_end
    )
    (vla-Put-Closed obj flag_close)
  )
  (prin1)
)

Code:

(vl-load-com)
(defun c:Effile_Rappel ( / js th_start th_end n ent obj)
  (princ "\nSélectionner les polylignes: ")
  (while (not (setq js (ssget '((0 . "*POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 126) (-4 . "NOT>")))))
    (princ "\nPas d'objets valable ou sélection vide!")
  )
  (initget 5)
  (setq th_start (getdist "\nLargeur de départ: "))
  (initget 5)
  (setq th_end (getdist "\nLargeur de fin: "))
  (repeat (setq n (sslength js))
    (setq
      ent (ssname js (setq n (1- n)))
      obj (vlax-ename->vla-object ent)
    )
    (vla-SetWidth
      obj
      0
      th_start
      th_end
    )
  )
  (prin1)
)

Hors ligne

 

#8 Mon 04 February 2013 18:04

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4756

Re: Modifier largeur de segment de départ sur une sélection de polylignes?

Hello Bruno

Magnifique ces 3 routines que j'ai testees avec succes sur MAP 2013 32 bits ...

Encore Merci, GeoBye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

Pied de page des forums

Powered by FluxBB