对区域进行填充,填充后的图案的颜色自动变成指定的颜色,用lisp程序完成
对区域进行填充,可以自动指定到已经定义的填充图案类型,比如是ansi31 (command "-BHATCH" "p" "ansi31" "3" "0"
填充完后,填充后的图案的颜色自动变成指定的颜色(注:不是指定的图层)
用lisp程序完成
比如颜色是252 接着你的代码写
(setq hat (entlast))
(setq hatobj (vlax-ename->vla-object hat))
;;(vlax-get hatobj 'color)
(vlax-put hatobj 'color 1);红色 完整程序是这样吗?我试了,程序有问题,运行不正常
(defun c:555()(comm?and "-BHATCH" "p" "ansi31" "3" "0")
(setq hat (entlast))
(setq hatobj (vlax-ename->vla-object hat))
;;(vlax-get hatobj 'color)
(vlax-put hatobj 'color 1));红色
完整程序是这样吗?我试了,程序有问题,运行不正常
(defun c:555()(command "-BHATCH" "p" "ansi31" "3" "0")
(setq hat (entlast))
(setq hatobj (vlax-ename->vla-object hat))
;;(vlax-get hatobj 'color)
(vlax-put hatobj 'color 1));红色 本帖最后由 kwok 于 2014-1-8 15:49 编辑
李青松 发表于 2014-1-8 14:34 static/image/common/back.gif
完整程序是这样吗?我试了,程序有问题,运行不正常
(defun c:555()(command "-BHATCH" "p" "ansi31" "3" ...
下面2个填充改色我测试都通过OK.
试试这个:
(defun c:555()
(command "-BHATCH" "co" "252" "." "p" "ansi31" "3" "0")
(princ)
)
也可以这样:
(defun c:555()
(command "-BHATCH" "p" "ansi31" "3" "0")
(while (> (getvar "CMDACTIVE") 0) (vl-cmdf PAUSE))
(setq hat (entlast))
(setq hatobj (vlax-ename->vla-object hat))
;;(vlax-get hatobj 'color)
(vlax-put hatobj 'color 1);红色
) 不行,颜色没变, (defun c:tt ()
(vl-load-com)
(command "_.-BHATCH" "p" "ansi31" "3" "0" pause "")
(setq hat (entlast))
(setq hatobj (vlax-ename->vla-object hat))
(vlax-put hatobj 'color 1) ;0~256
) ;_ end of defun
edata的程序非常好,块准狠,要的就是这个效果,多谢 edata的程序再改成另1种方式,就是点区域点的时候可以点多个点,不要点1下就结束命令