Bonjour,
Je suis un débutant en lisp, je bricole mais je ne comprends pas vraiment ce que je fais.
Je souhaite créer rapidement des multilignes de 3 traits : 1 trait d'axe et 2 traits décalés de chaque côté. (la fonction multiligne n'est pas disponible dans Autocad LT.
J'ai créé ce code qui :
- crée une polyligne
- décale une polyligne.
Le souci, c'est qu'on doit resélectionner la polyligne au milieu de la procédure. J'ai essayé d'utiliser Entlast mais ça n'a rien donné.
(defun c:ofsegs(/ ofdist ent pline normal elevat params
points side closest par bulge p1
p2 arc_data
)
(command "_pline")
(while (/= 0 (getvar "cmdactive"))
(command pause)
)
(vl-load-com)
(or *acdoc*
(setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
)
(initget 6 "Par")
(if (setq
ofdist (getdist
(strcat "\nSpécifiez la distance de décalage ou [Par] <"
(if (< (getvar "OFFSETDIST") 0)
"par"
(rtos (getvar "OFFSETDIST"))
)
">: "
)
)
)
(if (= ofdist "Par")
(setvar "OFFSETDIST" -1)
(setvar "OFFSETDIST" ofdist)
)
(setq ofdist (getvar "OFFSETDIST"))
)
(setq ent (vlax-ename->vla-object (car (entsel)))) ; Sélection de la poly
(vlax-invoke ent 'offset ofdist) ; Décalage d'un coté
(setq ofdist (- ofdist))
(vlax-invoke ent 'offset ofdist) ; Puis de l'autre
)
Est-ce que quelqu'un aurait la réponse ?
Merci d'avance,