楼主,请有空时帮看一看以下lsp那里出错了,多谢!!!!
defun dtr (a)
(* pi (/ a 180.00))
)
(defun p_circle ( ang1 ang pt)
(repeat n
(setq new_ang (+ ang1 ang))
(setq ang1 new_ang)
(setq new_pt (polar pt new_ang rad))
(setq pt_list (append pt_list (list new_pt)))
)
)
(defun C:dtl (/ pt_list a)
(setvar "cmdecho" 0)
(setq ltsc (getvar "ltscale"))
(command "ltscale" 0.05)
(command "regen")
(setq n 45)
(setq pt (getpoint "\n中心点: "))
(prompt "\n输入半径: ")
(command "circle" pt pause)
(setq prop1 (entget (entlast))
rad (cdr (assoc 40 prop1))
ang (dtr 8)
ang1 0
pt1 (polar pt ang1 rad))
(setq ent1 (entlast))
(p_circle ang1 ang pt)
(prompt "\n偏移的第二点: ")
(command "copy" "cp" pt1 (foreach p pt_list (command p)) "" pt pause)
(setq pt_list nil)
(setq pt (getvar "lastpoint")
ang1 0
ang (dtr 8)
pt1 (polar pt ang1 rad))
(p_circle ang1 ang pt)
(command "move" "cp" pt1 (foreach p pt_list (command p)"") "" pt1 pt1)
(setq rad (+ rad (* 0.05 (getvar "dimscale")))
ang1 0
ang (dtr 12)
n 30
pt1 (polar pt ang1 rad)
pt_list nil
)
(p_circle ang1 ang pt)
(command "trim" "p" "" "f" pt1 (foreach p pt_list (command p) "") "")
(setq pt_list nil
sf (getreal "\n输入比例因子:")
)
(if (or(= sf nil)(= sf ""))
(setq sf 1)
)
(command "scale" "p" "" pt sf)
(command "text" (getvar "viewctr") (* 0.18 sf) "" (strcat "Scale " (rtos sf 2 1) ":1"))
(prompt "\n捕捉文本到点......: ")
(command "move" (entlast) "" (getvar "viewctr") pause)
(command "erase" ent1 "")
(setvar "ltscale" ltsc)
(command "regen")
(princ)
)
(defun C:fd( / e oce lts p k r n n1 ep)
( setq oce (getvar "osmode")
lts (getvar "ltscale"))
(setvar "osmode" 0)
(command "ucs" "w")
( princ " \n选择所要缩放的范围:")
(setq e (car (entsel))
pc (cdr(assoc 10 (entget e)))
p (getpoint "\n输入插入点:")
k (getreal "\n输入缩放比例:")
r (cdr (assoc 40 (entget e)))
)
(command "copy" "cp")
(setq n 0)
(repeat 180
(command (polar pc (/ (* 2 n pi) 180 ) r ))
(setq n (+ 1 n))
)
(command "" "" pc p)
(setq n 0)
(setvar "PICKBOX" 5)
(setvar "ltscale" (* 0.01 lts))
(command "zoom" "c" p (* 3 r))
(command "circle" p r)
(setq ep (entlast))
(command "trim" ep "")
(repeat 180
(command "f" (polar p (/ (* 2 n pi) 180) (* r 1.01)))
(command (polar p (/ (* 2 (+ 1.5 n) pi) 180) (* r 1.01)) )
(command (polar p (/ (* 2 n pi) 180) (* r 1.2)))
(command (polar p (/ (* 2 (+ 1.5 n) pi) 180) (* r 1.2)) "" )
(setq n (+ 1 n))
)
(command "" "zoom" "p")
(command "scale" "c" (list (- (car p) r )(- (cadr p) r)) (list (+ (car p) r) (+ (cadr p) r )) "" p k)
(command "erase" ep "")
(setvar "ltscale" lts)
(command "redraw")
(setvar "osmode" oce)
(princ)
)