azbk00 发表于 2015-11-14 12:12:13

为什么填充关联失败

本帖最后由 azbk00 于 2015-11-14 15:31 编辑

我写了一个简单的填充多段线的lisp,明明在内部设置了(setvar "hpassoc" 1),但是填充出来以后我拉动矩形边框,填充却不能关联,而且在执行完以后还总是提示“未知的图案名”,请问是什么问题
(defun c:h(/ ss en ent ol);多段线填充
        (setvar "cmdecho" 0)
        (setvar "hpassoc" 1);设置填充关联
        (setq OL (getvar "clayer"))
        (setq en(entsel "\n请选择要填充的对象:"))
        (setq ent (entget (car en)))
        (setq ss (ssadd))
        (ssadd (car en) ss)
        (if (= (cdr (assoc 0 ent)) "LWPOLYLINE")
                (progn
                        (YH_chlayer "hatch");自定义函数,切换到hatch图层
                        (command "hatch" "p" "ANGLE" 15 0 ss "")
                )
                (princ "\n选择的不是多段线:")
        )
        (setvar "clayer" OL)
        (setvar "cmdecho" 1)
        (princ)
)

lostbalance 发表于 2015-11-14 12:18:32

command hatch的是不是选择集?把entsel改成ssget试试?还有clayer恢复,还是不要放在if里比较好吧

azbk00 发表于 2015-11-14 15:33:04

lostbalance 发表于 2015-11-14 12:18 static/image/common/back.gif
command hatch的是不是选择集?把entsel改成ssget试试?还有clayer恢复,还是不要放在if里比较好吧

嗯,我按照你的建议把程序改动了下,可问题依旧,填充还是不关联,最后还是提示“未知的图案名”,有办法解决吗?

masterlong 发表于 2015-11-14 21:29:19

(command "bhatch" "p" "ANGLE" 15 0 "s" (car en) "" "")

lostbalance 发表于 2015-11-14 21:45:25

azbk00 发表于 2015-11-14 15:33 static/image/common/back.gif
嗯,我按照你的建议把程序改动了下,可问题依旧,填充还是不关联,最后还是提示“未知的图案名”,有办法 ...

command hatch那行改成(command "-hatch" "p" "ANGLE" 15 0 "s" ss "" "")就可以了
试了下发现hatch的参数设置很简单,就只能设置图案和边界,而-hatch的话,可以详细控制了

azbk00 发表于 2015-11-15 12:20:52

masterlong 发表于 2015-11-14 21:29 static/image/common/back.gif
(command "bhatch" "p" "ANGLE" 15 0 "s" (car en) "" "")

才知道还有bhatch,比hatch强多了,谢谢!

azbk00 发表于 2015-11-15 12:23:53

lostbalance 发表于 2015-11-14 21:45 static/image/common/back.gif
command hatch那行改成(command "-hatch" "p" "ANGLE" 15 0 "s" ss "" "")就可以了
试了下发现hatch的参 ...

嗯,我一直以为命令前加“-”只是代表在命令行显示的意思,想不到参数设置还能不一样,拖大哥的福长见识了!

mychenhan 发表于 2023-3-15 12:19:13

azbk00 发表于 2015-11-15 12:23
嗯,我一直以为命令前加“-”只是代表在命令行显示的意思,想不到参数设置还能不一样,拖大哥的福长见识 ...

我也学到了
页: [1]
查看完整版本: 为什么填充关联失败