
(defun dtr (a)
(* pi (/ a 180.0))
)
(defun rtd (a)
(/ (* a 180.0) pi)
)
(setvar “osmode” 0)
(setvar “cmdecho” 1)
(IF (= KIS NIL) (SETQ KIS “”)
(PRINC KIS)
)
(setq off100 (getREAL “nSelect line of Distance
(IF (= off100 NIL)(SETQ off100 KIS))
(prompt “nSelect Entities to be offset “)
(setq off1 (* off100 0.5))
(SETQ a1 (SSGET))
(SETQ NUM (SSLENGTH a1))
(SETQ INDEX 0)
(REPEAT NUM
(SETQ b1 (entget (ssname a1 index)))
;; (setq b1 (entget (car (entsel))))
(setq kkke (cdr (assoc 0 b1)))
(IF (= “LINE” kkke)
(progn
(setvar “osmode” 0)
(setq c1 (assoc 10 b1))
(setq c2 (assoc 11 b1))
(setq d1 (cdr c1))
(setq d2 (cdr c2))
(setq ANG (ANGle d1 d2))
(setq p1 (polar d1 (+ ANG (dtr 90)) off1))
(setq p2 (polar d1 (- ANG (dtr 90)) off1))
(setq p3 (polar d2 (+ ANG (dtr 90)) off1))
(setq p4 (polar d2 (- ANG (dtr 90)) off1))
(command “line” p1 p3 “”)
(command “line” p2 p4 “”)
(setq index (+ index 1))
(SETQ KIS off100)
(setvar “osmode” 33)
) ;;progn
) ;;if
(if (= “ARC” kkke)
(progn
(setvar “osmode” 0)
(setq cc1 (assoc 10 b1))
(setq rr1 (assoc 40 b1))
(setq c1 (assoc 50 b1))
(setq c2 (assoc 51 b1))
(setq dd1 (cdr cc1))
(setq r1 (cdr rr1))
(setq d1 (cdr c1))
(setq ANG1 (rtd d1))
(setq d2 (cdr c2))
(setq ANG2 (rtd d2))
(setq ptt1 (+ r1 off1))
(setq ptt2 (- r1 off1))
(setq kkkk1 (strcat “@” (rtos ptt1) “<” (rtos ANG1)))
(setq kkkk2 (strcat “@” (rtos ptt1) “<” (rtos ANG2)))
(setq kkkk3 (strcat “@” (rtos ptt2) “<” (rtos ANG1)))
(setq kkkk4 (strcat “@” (rtos ptt2) “<” (rtos ANG2)))
(command “arc” “c” dd1 kkkk1 kkkk2)
(command “arc” “c” dd1 kkkk3 kkkk4)
(command “osnap” “int”)
(setq index (+ index 1))
(SETQ KIS off100)
(setvar “osmode” 33)
)
)
)
)
(defun dtr (a)
(* pi (/ a 180.0))
)
(defun rtd (a)
(/ (* a 180.0) pi)
)
(setvar “osmode” 0)
(setvar “cmdecho” 1)
(IF (= KIS NIL) (SETQ KIS “”)
(PRINC KIS)
)
(setq off100 (getREAL “nSelect line of Distance : “))
(IF (= off100 NIL)(SETQ off100 KIS))
(prompt “nSelect Entities to be offset “)
(setq off1 (* off100 0.5))
(SETQ a1 (SSGET))
(SETQ NUM (SSLENGTH a1))
(SETQ INDEX 0)
(REPEAT NUM
(SETQ b1 (entget (ssname a1 index)))
;; (setq b1 (entget (car (entsel))))
(setq kkke (cdr (assoc 0 b1)))
(IF (= “LINE” kkke)
(progn
(setvar “osmode” 0)
(setq c1 (assoc 10 b1))
(setq c2 (assoc 11 b1))
(setq d1 (cdr c1))
(setq d2 (cdr c2))
(setq ANG (ANGle d1 d2))
(setq p1 (polar d1 (+ ANG (dtr 90)) off1))
(setq p2 (polar d1 (- ANG (dtr 90)) off1))
(setq p3 (polar d2 (+ ANG (dtr 90)) off1))
(setq p4 (polar d2 (- ANG (dtr 90)) off1))
(command “line” p1 p3 “”)
(command “line” p2 p4 “”)
(setq index (+ index 1))
(SETQ KIS off100)
(setvar “osmode” 33)
) ;;progn
) ;;if
(progn
(setvar “osmode” 0)
(setq cc1 (assoc 10 b1))
(setq rr1 (assoc 40 b1))
(setq c1 (assoc 50 b1))
(setq c2 (assoc 51 b1))
(setq dd1 (cdr cc1))
(setq r1 (cdr rr1))
(setq d1 (cdr c1))
(setq ANG1 (rtd d1))
(setq d2 (cdr c2))
(setq ANG2 (rtd d2))
(setq ptt1 (+ r1 off1))
(setq ptt2 (- r1 off1))
(setq kkkk1 (strcat “@” (rtos ptt1) “<” (rtos ANG1)))
(setq kkkk2 (strcat “@” (rtos ptt1) “<” (rtos ANG2)))
(setq kkkk3 (strcat “@” (rtos ptt2) “<” (rtos ANG1)))
(setq kkkk4 (strcat “@” (rtos ptt2) “<” (rtos ANG2)))
(command “arc” “c” dd1 kkkk1 kkkk2)
(setq obj1 (vlax-ename->vla-object (entlast)))
(command “arc” “c” dd1 kkkk3 kkkk4)
(setq obj2 (vlax-ename->vla-object (entlast)))
(command “_line” (vlax-get obj1 ‘startpoint) (vlax-get obj2 ‘startpoint) “”)
(command “_line” (vlax-get obj1 ‘endpoint) (vlax-get obj2 ‘endpoint) “”)
(command “osnap” “int”)
(setq index (+ index 1))
(SETQ KIS off100)
(setvar “osmode” 33)
)
)
)
)
오~~~감사합니다…우기로기님.
저도 감사합니다.(양쪽 옵셋후 양끝점 연결)