 - ;;;加粗线程序
- ;(princ "\欢迎您使用加粗线程序!该程序命令名是jl。")
- (defun c:jll(/ op oc p1 ss sn en n2 p2 kuan)
- ;(setq oer *error* *error* myerr)
- (setq op (getvar "plinewid") oc (getvar "clayer"))
- (setvar "cmdecho" 0)
- (command "undo" "g")
- (graphscr)
- (if (= kuan nil) (setq kuan 60))
- (princ "\n线宽<") (princ kuan)
- (setq x (getint ">:") kuan (if x x kuan))
- (while
- (progn
- (initget "W")
- (setq sn (entsel (strcat "\n(线宽为" (itoa kuan) ") 改线宽W/选择要加粗的
- 线:")))
- )
- (if (eq "W" sn)
- (progn
- (princ "\n线宽<") (princ kuan)
- (setq x (getint ">:") kuan (if x x kuan))
- (setq sn (entsel "\n选择要加粗的线:"))
- )
- )
- (setq n2 (* kuan 0.5) sn (car sn))
- (setvar "osmode" 0)
- (setq p2 (getpoint "\n哪一侧(请在加粗的一侧点取一点)<双侧加粗>:"))
- (if p2 (progn
- (command "offset" n2 sn p2 "")
- (setq sn (entlast))
- ))
- (if (= (tblsearch "LAYER" "jl") nil) (command "layer" "n" "jl" ""))
- (setq nam (cdr (assoc 0 (entget sn))))
- (cond
- ((or (= "LINE" nam) (= "ARC" nam))
- (command "_.pedit" sn "y" "w" kuan "")
- )
- ((= nam "LWPOLYLINE")
- (command "_.pedit" sn "w" kuan "")
- )
- (t
- (princ "\n>>>对象类型应为:LINE / ARC / LWPOLYLINE")
- )
- )
- ;;(command "chprop" "l" "" "la" "jl" "")
- )
- (setvar "clayer" oc)
- (setvar "plinewid" op)
- (command "undo" "e")
- (setq *error* oer)(princ)
- )
程序执行到“哪一侧(请在加粗的一侧点取一点)<双侧加粗>”这里时,“出现错误: 函数被取消”这时程序需要重新设置线宽才能完成加粗的任务。请高手完善一下
|