edata
发表于 2014-5-19 15:16:11
(defun c:Q1 (/ s1 pt oldcolor snap)
(dfl_var)
(setvar "cecolor" "250")
(setvar "osmode" 0)
(princ "\n默认<拾取点>方式按右键或空格切换到<选择对象>方式:")
(if(setq pt(getpoint"\n指定内部点"))
(progn
(command "BHATCH" "p" "ansi31" "6" "0")
(while pt(command pt)(setq pt(getpoint)))
(command ""))
(if(setq s1 (ssget))
(command "BHATCH" "p" "ansi31" "6" "0" "s" s1 "" ""))
)
(*error* nil)
(princ)
)
(defun dfl_var ()
(setq e_lst (mapcar (function (lambda (n) (list 'setvar n (getvar n))))
'("cecolor" "clayer""autosnap" "osmode")))
(defun *error* (msg) (if(> (getvar "CMDACTIVE") 0) (command ""))(mapcar 'eval e_lst))
)
llsheng_73
发表于 2014-5-22 03:02:37
本帖最后由 llsheng_73 于 2014-5-22 09:24 编辑
(defun c:Q1 (/ s1 pt)
(if(setq var(dfl_var'(('cecolor'clayer'osmode'autosnap)("250""0" 16384 63)))
pt(getpoint"\n右键或空格[选择对象]<内部点>"))
(progn (command "BHATCH" "p" "ansi31" "6" "0")
(while pt(command pt)(setq pt(getpoint)))
(command ""))
(if(setq s1(ssget))
(command "BHATCH" "p" "ansi31" "6" "0" "s" s1 "" "")))
(*error* nil))
(defun dfl_var(var / a)
(setq a(list(car var)(mapcar'getvar(car var))))
(mapcar'setvar(car var)(last var))a)
(defun *error*(msg)
(while(>(getvar'CMDACTIVE)0)(command ""))
(dfl_var var)
(setq var nil))
Aenda
发表于 2014-5-31 15:33:13
edata 发表于 2014-5-19 15:16 static/image/common/back.gif
大侠, 这个代码经过测试 还是不行哦 也会出现捕捉全关,...能再优化下吗?
Aenda
发表于 2014-5-31 15:37:25
llsheng_73 发表于 2014-5-22 03:02 static/image/common/back.gif
大神,提示函数错误哦 ,能优化下吗
edata
发表于 2014-5-31 20:48:11
你要确定代码完整性,如果这个代码捕捉关闭,可以按F3开启。设置不变。
(defun c:Q1 (/ s1 pt oldcolor snap)
(dfl_var)
(setvar "cecolor" "250")
(setvar "osmode" (setvar "osmode" (+ (getvar 'osmode) 16384)))
(princ "\n默认<拾取点>方式按右键或空格切换到<选择对象>方式:")
(if(setq pt(getpoint"\n指定内部点"))
(progn
(command "BHATCH" "p" "ansi31" "6" "0")
(while pt(command pt)(setq pt(getpoint)))
(command ""))
(if(setq s1 (ssget))
(command "BHATCH" "p" "ansi31" "6" "0" "s" s1 "" ""))
)
(*error* nil)
(princ)
)
(defun dfl_var ()
(setq e_lst (mapcar (function (lambda (n) (list 'setvar n (getvar n))))
'("cecolor" "clayer""autosnap" "osmode")))
(defun *error* (msg) (if(> (getvar "CMDACTIVE") 0) (command ""))(mapcar 'eval e_lst))
)