李青松 发表于 2014-1-6 10:17:38

对区域进行填充,填充后的图案的颜色自动变成指定的颜色,用lisp程序完成

对区域进行填充,可以自动指定到已经定义的填充图案类型,
比如是ansi31                (command "-BHATCH" "p" "ansi31" "3" "0"
填充完后,填充后的图案的颜色自动变成指定的颜色(注:不是指定的图层)
用lisp程序完成

李青松 发表于 2014-1-6 10:18:54

比如颜色是252

自贡黄明儒 发表于 2014-1-6 13:11:29

接着你的代码写
(setq hat (entlast))
(setq hatobj (vlax-ename->vla-object hat))
;;(vlax-get hatobj 'color)
(vlax-put hatobj 'color 1);红色

李青松 发表于 2014-1-8 14:33:13

完整程序是这样吗?我试了,程序有问题,运行不正常
(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));红色

李青松 发表于 2014-1-8 14:34:15


完整程序是这样吗?我试了,程序有问题,运行不正常
(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:10:36

本帖最后由 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);红色
)

李青松 发表于 2014-1-8 15:35:08

不行,颜色没变,

edata 发表于 2014-1-8 16:44:24

(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

李青松 发表于 2014-1-8 17:34:13

edata的程序非常好,块准狠,要的就是这个效果,多谢

李青松 发表于 2014-1-8 17:46:52

edata的程序再改成另1种方式,就是点区域点的时候可以点多个点,不要点1下就结束命令
页: [1] 2 3
查看完整版本: 对区域进行填充,填充后的图案的颜色自动变成指定的颜色,用lisp程序完成