cq4920 发表于 2020-11-5 10:08:30

是哪个系统变量对插件造成的影响啊?


;;;全局填充归层--立面填充
(defun C:ggh ( / #g k1 kw1)
        (setvar "cmdecho" 0)
        (setvar "blipmode" 0)
        (if (setq kw1 (ssget "x" '((0 . "HATCH"))));
                (progn
                        (while
                                (setq k1 (ssname kw1 0))
                                (setq kw1 (ssdel k1 kw1))
                                (command "-HATCHEDIT" k1 "di"));解除关联
                        (princ"\n填充图案解除关联成功!")
                (if (setq kw1 (ssget "x" '((0 . "HATCH")(8 . "0"))))                               
                (progn
    (setq n "E-立面填充" b 250 C "CONTINUOUS")
    (mc:newlayer n b C)                                                     
                        (mc:ggtc kw1 "E-立面填充")
                        (princ"\n填充图案图层修改成功!")
                )
                )       
                )
                (princ"\n当前空间没有填充图案,请切换空间后尝试!")
        )
        (princ)
)


这个是我之前用的插件,最近整理插件和CAD的时候,不知道是什么原因,不能够正确执行了!

一个问题是选不到图元 需要把ssname kw1 0中的 0改成 1
另一个问题是在布局空间执行的时候会选到模型空间的填充图元从而不能正常退出!

lijiao 发表于 2020-11-5 11:47:11

把(ssget "x" '((0 . "HATCH"))) 改成(ssget "x" (list '(0 . "HATCH") (cons 410 (getvar "ctab"))))
把(ssget "x" '((0 . "HATCH")(8 . "0"))) 改成(ssget "x" (list '(0 . "HATCH") '(8 . "0") (cons 410 (getvar "ctab"))))

然后你再试试

cq4920 发表于 2020-11-5 14:37:59

lijiao 发表于 2020-11-5 11:47
把(ssget "x" '((0 . "HATCH"))) 改成(ssget "x" (list '(0 . "HATCH") (cons 410 (getvar "ctab"))))
把( ...

我白了你的意图

其实我本意是希望能够全局修改!
只是 解除关联似乎只能对当前空间填充图案有效
(command "-HATCHEDIT" k1 "di"));解除关联

有没有什么替换DXF的方式来修改呢?

lijiao 发表于 2020-11-5 15:43:29

本帖最后由 lijiao 于 2020-11-5 16:10 编辑

可以把AssociativeHatch属性设置为:vlax-false,也可以把71组码设置为0,尽量不使用command

cq4920 发表于 2020-11-5 18:02:06

lijiao 发表于 2020-11-5 15:43
可以把AssociativeHatch属性设置为:vlax-false,也可以把71组码设置为0,尽量不使用command

最初使用的程序,那时候还不懂那么多呢!已经好了

999999 发表于 2020-11-6 08:18:59

cq4920 发表于 2020-11-5 18:02
最初使用的程序,那时候还不懂那么多呢!已经好了

谢谢大神的解答,也谢谢楼主的分享,楼主您可以帮忙上传一下修改后的代码吗?
页: [1]
查看完整版本: 是哪个系统变量对插件造成的影响啊?