726613 发表于 2013-5-22 15:15 
那程序应如何编写。谢谢
很简单啊,改了下,试试:
 - (DEFUN C:ZX ()
- (setvar "cmdecho" 0)
- (princ "\n-->请选取要画交叉线的圆.....")
- (setq cl_ent (ssget":s" '((-4 . "<or")
- (0 . "circle") (0 . "arc") (-4 . "or>"))) i 0)
- (if cl_ent
- (repeat (sslength cl_ent)
- (setq cl_dat (entget (ssname cl_ent i))
- cl_lay (cdr (assoc 8 cl_dat))
- cl_pt (trans (cdr (assoc 10 cl_dat)) 0 1)
- cl_rad (cdr (assoc 40 cl_dat)) i (+ 1 i))
- (setq old_osm (getvar "osmode"))
- (setvar "osmode" 0)
- (command "line" (list (+ (* 1.0 cl_rad) (car cl_pt)) (cadr cl_pt))
- (list (- (car cl_pt) (* 1.0 cl_rad)) (cadr cl_pt)) "")
- (command "chprop" (entlast) "" "c" "" "lt" "CENTERX2" "la" cl_lay "" )
- (command "rotate" (entlast) "" cl_pt "45")
- (command "line" (list (car cl_pt) (+ (* 1.0 cl_rad) (cadr cl_pt)))
- (list (car cl_pt) (- (cadr cl_pt) (* 1.0 cl_rad))) "")
- (command "chprop" (entlast) "" "c" "" "lt" "CENTERX2" "la" cl_lay "" )
- (command "rotate" (entlast) "" cl_pt "45")
- (setvar "osmode" old_osm)))
- (PRINC)
- )
|