继承填充
本帖最后由 adc 于 2012-8-2 19:14 编辑贱人工具箱5.7里有个继承填充的功能,可以选择指定的填充样式进行填充,不过这个有些不足,一是只能点选填充,不能选择对象填充,二是不能按照选择的填充的图层进行填充,只能在当前图层下填充,想增加这两个功能,自己水平有限,希望哪位大侠出手,谢谢
依然小小鸟 发表于 2018-9-2 15:28
贱人工具箱里面的继承填充是点选
对 就是要点选的。但贱人工具箱功能太多。有好多不用所以想要个单独的源码 单独加载就行了 xsso 发表于 2012-8-2 23:49
弱弱的发一个,点选暂时只能单选
哥 能否改为只要点选,不要框选, yoyrtweq 发表于 2018-9-2 14:34
想要个点选继承填充 没找到
贱人工具箱里面的继承填充是点选 本帖最后由 【KAIXIN】 于 2012-8-2 18:28 编辑
以您提供的样图作验证
程序执行前 +程序执行后 各一 (dwg) 程序执行前 的图形文件 (原Dwg)
程序执行后 想得到的成果图形文件 (Dwg)
本帖最后由 yjr111 于 2012-8-2 21:19 编辑
;;;;;;;;简单代码,仅供参考(defun c:jctc(/ tc_e tc_vlae tc_name tc_scle tc_ang tc_la tc_col key e p)
(while
(setq tc_e(car(entsel"\n选择填充源图案:")))
(setq tc_vlae (vlax-ename->vla-objecttc_e)
tc_name (vla-get-patternnametc_vlae)
tc_scle (vla-get-patternscale tc_vlae)
tc_ang (vla-get-patternangle tc_vlae)
tc_la (vla-get-layer tc_vlae)
tc_col (vla-get-color tc_vlae)
)
(if (= tc_col 256)(setq tc_col (cdr(assoc 62(entget(tblobjname "layer" tc_la))))))
(initget 128 "K D")
(SETQ KEY (GETKWORD"\n选择模式:[框选(K)/点选(D)]"))
(if (not key)(setq key "D"))
(cond((= KEY "K")
(prompt"\n选择填充对象:")
(setq ss(ssget))
(command "hatch" "p" tc_name tc_scle (* 180(/ tc_ang pi)) ss "" )
(vla-put-color (vlax-ename->vla-object (entlast)) tc_col)
)
((= KEY "D")
(setq p(getpoint"\n指定内部点"))
(command "boundary" "A" "o" "R" "" p "")
(IF (=(vla-get-objectname
(setq vlae(vlax-ename->vla-object(setq e(entlast)))))"AcDbRegion"
)
(progn
(command "hatch" "p" tc_name tc_scle (* 180(/ tc_ang pi)) e "")
(vla-put-color (vlax-ename->vla-object (entlast)) tc_col)
(vla-delete vlae)
)
(princ"\n无法点选填充,请选择填充...")
)
)
)
)
(princ)
)
匹配填充
xyp1964 发表于 2012-8-2 21:03 static/image/common/back.gif
匹配填充
(defun xyp-R2D (rad) (* (/ rad pi) 180.0)) 7楼已经更新