hello , friend
for help some , i come in theswamp
although i studied lisp , it is difficult to me
blelow routine :
1. to get lines( lw , polyline , arc ,,,, )'s start and end point
2. shorten some distance
3. break middle distance . then create 2 obj
4. first obj -> + 20 offset , second obj -> -20 offset
problem
if you see my routine , that is problme and must add some routine
(defun c:arpts()
(vl-load-com)
(setvar "osmode" 0 )
(setq ent (car (entsel "\nSelect : ")))
(setq ed (entget ent))
(setq db0 (cdr (assoc 0 ed)))
(setq D (getdist "\nEnter setback distance (negative to shorten): "))
(SETQ D ( * D -1))
(cond
( (= db0 "LINE")
(setq start (cdr (assoc 10 ed)))
(setq end (cdr (assoc 11 ed)))
(command "._lengthen" ent "de" D start end "")
(setq new-ent (entlast))
; NEED ROUTINE THAT ; BREAK OBJ'S MIDDLE
)
( (= db0 "LWPOLYLINE")
(setq Start (assoc 10 ed))
(setq End (assoc 10 (reverse ed)))
(command "._lengthen" ent "de" D start end "")
(setq new-ent (entlast))
; NEED ROUTINE THAT ; BREAK OBJ'S MIDDLE
)
( (= db0 "POLYLINE")
(setq OBJ (vlax-ename->vla-object ent ))
(setq objtype (vla-get-objectname obj))
(setq Start (vlax-get objtype "startpoint"))
(setq End (vlax-get objtype "endpoint") )
(command "._lengthen" ent "de" D start end "")
(setq new-ent (entlast))
; NEED ROUTINE THAT ; BREAK OBJ'S MIDDLE
)
( (= db0 "ARC")
(setq OBJ (vlax-ename->vla-object ent ))
(setq objtype (vla-get-objectname obj))
(setq Start (vlax-get objtype "startpoint"))
(setq End (vlax-get objtype "endpoint") )
(command "._lengthen" ent "de" D start end "")
(setq new-ent (entlast))
; NEED ROUTINE THAT ; BREAK OBJ'S MIDDLE
( (= db0 "CIRCLE")
)
);cond end