CesarA 发表于 2022-7-5 18:11:48

更改填充图案比例

我已经阅读了autocad站点中的文档,要从实体图案填充更改为其他类型的图案填充,必须弄乱2个dxf代码。70对应于固体或非固体为1或0。2确实是孵化模式。最后41是图案比例的dxf。
 
所以我试着做以下几点:
 
 
(defun c:efg ( / trama solido e o s x texto tipodepeca z y)
   (if (setq s (ssget "_:L" '((0 . "HATCH"))))
       (repeat (setq i (sslength s))
         (setq e (ssname s (setq i (1- i)))
               x (entget e)
               trama (cdr (assoc 2 x))
                          solido (cdr (assoc 70 x))
                       

         )

                (setq z (entmod (subst 0 solido x))) ;;;; change the dxf 70 from 1 (solid) to 0 (not solid)
       
               
                       
                        (if (= trama "SOLID")
                               
                                (progn
                                        (setq y (entmod (subst '(8 . "est.Trama") (assoc 8 x) z))) ;;;; Changes layer
                                       
                                        (setq w (entmod (subst '(2 . "AR-CONC") (assoc 2 x) y))) ;;;;Changes type of hatch
                                       
                                        (entmod (subst '(41 . 0.01) (assoc 41 x) w)) ;;;;Changes pattern scale (or shouldn't?)
                       
                                       
                                )
                        )
         
       )
   )

   (princ)
)

基本上,我将dxf 70从1更改为0(以便启用非实体图案填充),然后将dxf 2更改为其他图案。
 
问题是,一切正常,但比例模式没有改变。(图层和图案填充名称正确)。
 
这与我修改设置的顺序有关吗?

CesarA 发表于 2022-7-5 18:23:43

顺便说一句,我还尝试使用
翻译成(ssdel ename sslist)或类似的东西。我认为这个命令写得正确,但他没有删除图案填充。
 
编辑:删除解决方案:
(command "erase" e "")
 
模式比例问题不知怎么一直存在,有什么提示吗?

Lee Mac 发表于 2022-7-5 18:26:44

ssdel将从选择集中删除实体;使用entdel为图形数据库中的图元设置擦除标志。

CesarA 发表于 2022-7-5 18:30:13

该死的李,当我看到你回答我希望你有一个关于模式规模的提示,删除是照顾,第一个问题仍然很难。。

Lee Mac 发表于 2022-7-5 18:36:26

 
打扰一下

CesarA 发表于 2022-7-5 18:42:04

隐马尔可夫模型。。对我不是说“该死的李,麦克”,而是说“该死的,我的运气,李,麦克”。如果这就是困扰你的原因,我对你的帮助非常高兴

Lee Mac 发表于 2022-7-5 18:50:54

我不认为可以通过这种方式修改图案填充图元来正确显示图案,因为填充图案的图案填充的DXF数据包含实体图案填充不存在的单独图案数据。此外,模式名称和模式类型ActiveX属性是只读的,这表明这些对象不能相互转换。
 
我相信您需要重建图案填充以包含这些额外数据-为此,我强烈建议使用Visual LISP提供的ActiveX(COM)方法,因为嵌入图案填充实体可能会很麻烦。
 
以下是如何使用Visual LISP创建图案填充的一些示例:
 
等距阴影三角形
偏移和图案填充多段线
Visual LISP中的实体图案填充

CesarA 发表于 2022-7-5 18:59:23

你可能是对的。。无论如何,我检查了一个舱口的dxf列表,然后发生了一些奇怪的事情
 
 
((-1 . ) (0.“图案填充”)(330)(5.“5F4761”)(100.“AcDbEntity”)(67.0)(410.“Model”)(8.“est.Trama”)(100.“AcDbHatch”)(10 0.0 0 0.0)(210 0.0 0 0.0 1.0)(2.“AR-CONC”)(70.0)(71.0)(91.1)(92.3)(72.0)(73.1)(93.4)(10 3891.11-3551.41 0.0)(10 3890.86-3551.41 0.0)(10 3890.86-3551.11 0.0)(10 3891.11-3551.0).11 0.0)(97.0)(75.0)(76.1)(52.0.0)(41.0.01)(77.0)(78.13)(53 . 0.872665) (43 . 0.0) (44 . 0.0) (45 . 0.071726) (46 . -0.00627521) (79 . 2) (49 . 0.0075) (49 . -0.0825) (53 . 6.19592) (43 . 0.0) (44 . 0.0) (45 . -0.0138751) (46 . 0.0752192) (79 . 2) (49 . 0.006) (49 . -0.066) (53 . 1.75321) (43 . 0.00597717) (44 . -0.000522934) (45 . 0.0578509) (46 . 0.068944) (79 . 2) (49 . 0.00637402) (49 . -0.0701142) (53 . 0.806066) (43 . 0.0) (44 . 0.02) (45 . 0.106724) (46 . -0.0165519) (79 . 2) (49 . 0.01125) (49 . -0.12375) (53 . 1.68661) (43 . 0.00889367) (44 . 0.0186207) (45 . 0.0934662) (46 . 0.0974119) (79 . 2) (49 . 0.00956103) (49 . -0.105171) (53 . 6.12932) (43 . 0.0) (44 . 0.02) (45 . 0.0934662) (46 . 0.0974119) (79 . 2) (49 . 0.009) (49 . -0.099) (53 . 0.366519) (43 . 0.01) (44 . 0.015) (45 . 0.0596907) (46 . -0.0402619) (79 . 2) (49 . 0.0075) (49 . -0.0825) (53 . 5.68977) (43 . 0.01) (44 . 0.015) (45 . 0.0243315) (46 . 0.072515) (79 . 2) (49 . 0.006) (49 . -0.066) (53 . 1.24706) (43 . 0.0149742) (44 . 0.0116448 ) (45 . 0.0840222) (46 . 0.0322531) (79 . 2) (49 . 0.00637402) (49 . -0.0701142) (53 . 0.654498 ) (43 . 0.0) (44 . 0.0) (45 . 0.00121599) (46 . 0.0332894) (79 . 6) (49 . 0.0) (49 . -0.0652) (49 . 0.0) (49 . -0.067) (49 . 0.0) (49 . -0.06625) (53 . 0.1309) (43 . 0.0) (44 . 0.0) (45 . 0.026307) (46 . 0.0394412) (79 . 6) (49 . 0.0) (49 . -0.0382) (49 . 0.0) (49 . -0.0637) (49 . 0.0) (49 . -0.02525) (53 . 5.71595) (43 . -0.0223) (44 . 0.0) (45 . 0.0533822) (46 . -0.00225549) (79 . 6) (49 . 0.0) (49 . -0.025) (49 . 0.0) (49 . -0.078 ) (49 . 0.0) (49 . -0.1035) (53 . 5.54142) (43 . -0.0323) (44 . 0.0) (45 . 0.0583186) (46 . 0.0100105) (79 . 6) (49 . 0.0) (49 . -0.0325) (49 . 0.0) (49 . -0.0518 ) (49 . 0.0) (49 . -0.0735) (98 . 0))
 
很多代码都会重复。。每个参数不应该有一个代码组吗?有人知道为什么会这样吗?

Lee Mac 发表于 2022-7-5 19:01:02

 
对于图案填充图元的每个边定义,将有一组“图案”DXF组,因此是的,DXF组将重复(这类似于DXF组10、40、41、42和91对于LWD多段线的每个顶点重复的方式)。

CesarA 发表于 2022-7-5 19:08:05

嗯,这很有趣,这意味着我可以在图案填充的标识和坐标之外创建一个类似的列表,这样我可能会得到我想要的。谢谢李
页: [1] 2
查看完整版本: 更改填充图案比例