同时也希望对大家有所启发和帮助!!!!!
(defun C:T_PT_CIRCLE (/ HOLDOSMODE ENT ENT1 ENT2 ENT3 PTARC PT R SS N)
(defun DO_IT (FLAG)
(if SS
(progn
(setq N 0)
(repeat (sslength SS)
(vla-put-visible
(vlax-ename->vla-object (ssname SS N))
FLAG
)
(setq N (1+ N))
)
)
)
)
(setq ENT (car (setq ENT1 (entsel "\n选择直线或圆弧..."))))
(setq PTARC (cdr (assoc 10 (entget ENT))))
(setq HOLDOSMODE (getvar "OSMODE"))
(setvar "OSMODE" 0)
(setq PT (getpoint "\n输入通过点: "))
(setq R (getdist PT "\n输入半径: "))
(setq SS (ssget "C" PT PT))
(DO_IT :vlax-false)
(command "_.CIRCLE" PT 1E-50)
(setq ENT2 (entlast))
(command "_.CIRCLE" "T" PT (cadr ENT1) R)
(entdel ENT2)
(DO_IT :vlax-true)
(setvar "OSMODE" HOLDOSMODE)
(princ)
) |