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))
)
页: 1 2 3 [4]
查看完整版本: 请求大侠帮修改下,想有两种选择填充方式,一种是直接吸取内框填充另一种选择矩行填充