Aller au contenu

je l ai retrouvé le lisp dyn-offset.lsp


Messages recommandés

Posté(e)

je l ai retrouvé le lisp dyn-offset.lsp

bien pratique

a+

 

(defun draw_pt (pt / pt1 pt2 pt3 pt4)

(setq

rap (/ (getvar "viewsize") 50)

pt1 (list (+ (car pt) rap) (+ (cadr pt) rap))

pt2 (list (+ (car pt) rap) (- (cadr pt) rap))

pt3 (list (- (car pt) rap) (- (cadr pt) rap))

pt4 (list (- (car pt) rap) (+ (cadr pt) rap))

)

(grdraw pt pt1 -1)

(grdraw pt pt2 -1)

(grdraw pt pt3 -1)

(grdraw pt pt4 -1)

)

(defun c:dyn_offset ( / sel_ent pt_sel e_sel dxf_ent e_mark e_borne loop sav_osm dis_off key pt)

(while (null (setq sel_ent (entsel "\nChoix de l'objet à décaler: "))))

(setq

pt_sel (osnap (cadr sel_ent) "_near")

e_sel (car sel_ent)

dxf_ent (entget e_sel)

e_mark e_sel

e_borne (entlast)

loop T

sav_osm (getvar "osmode")

)

(cond

((and

(member (cdr (assoc 0 dxf_ent)) '("LWPOLYLINE" "POLYLINE" "LINE" "XLINE" "RAY" "ARC" "CIRCLE" "ELLIPSE" "SPLINE"))

(if (cdr (assoc 70 dxf_ent))

(< (rem (cdr (assoc 70 dxf_ent)) 128) 8)

T

)

)

(if (< (getvar "offsetdist") 0.0) (initget 7) (initget 6))

(setq dis_off (getdist (strcat "\nDistance de décalage<" (rtos (getvar "offsetdist")) ">: ")))

(if (not dis_off) (setq dis_off (getvar "offsetdist")) (setvar "offsetdist" dis_off))

(setvar "cmdecho" 0)

(setvar "osmode" 0)

(while (and (setq key (grread T 4 0)) (/= (car key) 3) loop)

(cond

((eq (car key) 5)

(setq pt (cadr key))

(draw_pt pt_sel)

(cond

((>= (distance pt_sel pt) dis_off)

(command "_.offset" "" e_sel pt "")

(if (not (eq (entlast) e_sel))

(setq

e_sel (entlast)

dis_off (+ dis_off (getvar "offsetdist"))

)

)

)

((and

(< (distance pt_sel pt) (- dis_off (getvar "offsetdist")))

(> (distance pt_sel pt) 0.0)

(not (eq e_mark e_sel))

)

(entdel e_sel)

(if (eq e_borne (entlast))

(setq e_sel (car sel_ent))

(setq e_sel (entlast))

)

(setq dis_off (- dis_off (getvar "offsetdist")))

)

)

)

((or (member key '((2 13) (2 32))) (eq (car key) 25)) (setq loop nil))

)

)

(redraw)

(setvar "osmode" sav_osm)

(setvar "cmdecho" 1)

)

(T (princ "\nL'objet ne peut pas être décalé."))

)

(prin1)

)

Posté(e)

Merci d'utiliser un seul fil de discussion pour le même sujet... :casstet:

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é