Aller au contenu

ajouter sommet a polyligne


Messages recommandés

Invité ingoenius
Posté(e)

je cherche a a jouter un sommer a une polylgne , par autolips,

je passe en osmode 515 je lance la commande pedit jusqu' a insere sommet, mais quand je clique a l'endroit sohuaité, il cree le sommet, mais il deplace aussi le sommet active dans cette position, est possible simplemant cliquer sur la poliligne et ajouter un sommet dans ce point preicis??

 

 

merci

 

Posté(e)

le pb c'est qu'il faut savoir entre quel sommets il faut ajouter le sommet.

 

Soit tu sélectionnes les deux sommets entre lesquels le nouveau sommet sera ajouté

Soit tu trouves les deux sommets les plus proches.

"Chacun compte pour un, et nul ne compte pour plus d'un."

Invité ingoenius
Posté(e)

je doute que ce soit facile alors,

 

j'ai trouve une routine en vlisp ici sur le forum

"addvtx"

 

mais elle demande une fois de selectionner l'objet et une deuxieme fois de selectionner l'endroit ou rajouter le sommet,

 

il y a pas une facon de lui faire selectionner une seule fois la poliligne et ensuite utilisant quelque variable detecter le dernier point quel on a cliquée a l'ecran (pour selectioner l'objet) et l'utiliser pour determiner ou rajouter le sommet??

 

Posté(e)

Alors essaie cette petite chose, dans ce cas....

;;; 1 - Ajout de sommets en sélectionnant une polyligne
(defun c:APL (/ CMDECHO ENT ENTL SSET)
    (setq cmdecho (getvar "cmdecho"))
    (setvar "cmdecho" 0)
    (cond
         ((and
                   (setq ent (entsel "\nSélectionner la polyligne : "))
                   (member (cdr (assoc 0 (entget (car ent)))) '("POLYLINE" "LWPOLYLINE"))
              )
              (setq entl (entlast) sset (ssadd))
              (command "_BREAK" (cadr ent) (cadr ent))
              (while (setq entl (entnext entl))(ssadd entl sset))
              (command "pedit" (car ent) "J" (ssname sset 0) "" "")
         )
    )
    (setvar "cmdecho" cmdecho)
    (princ)
)

;;;2- Ajout d'un sommet en sélectionnant un point sur une polyligne sans la sélectionner
(defun c:APL (/ OSMODE CMDECHO PT SEL ENTL SSET)
    (setq osmode (getvar "osmode") cmdecho (getvar "cmdecho"))
    (setvar "osmode" 515)
    (setvar "cmdecho" 0)
    (cond
         ((and
                   (setq pt (getpoint "\npointer sur le point de la polyligne à ajouter : "))
                   (setq sel (ssget pt))
                   (member (cdr (assoc 0 (entget (ssname sel 0)))) '("POLYLINE" "LWPOLYLINE"))
              )
              (setq entl (entlast) sset (ssadd))
              (command "_BREAK" pt pt)
              (while (setq entl (entnext entl))(ssadd entl sset))
              (command "pedit" (ssname sel 0) "J" (ssname sset 0) "" "")
         )
    )
    (setvar "osmode" osmode)
    (setvar "cmdecho" cmdecho)
    (princ)
)

 

Dis moi ce que tu en penses !!

Si tu n'arrives pas à comprendre dis moi et je t'expliquerai.

 

EDIT : Ajout d'une routine qui sélectionne la polyligne en sélectionnant un point de celle-ci...

 

[Edité le 12/10/2007 par Matt666]

"Chacun compte pour un, et nul ne compte pour plus d'un."

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é