Haggbakk 发表于 2022-7-6 10:33:49

编辑多个图案填充-强制

大家好!
 
设法创建一个lisp,通过“-hatchedit”更改填充图案。在一个图案填充上测试时效果很好,但在同一模型的多个图案填充上测试lisp时,出现了问题。似乎Hatchedit命令一次只能在一个图案填充上工作。
 
有人知道如何通过单击编辑多个填充图案吗?

lpseifert 发表于 2022-7-6 10:44:35

您可以选择一组图案填充,并在其中循环使用“-hatchedit”。

Haggbakk 发表于 2022-7-6 10:53:31

我的想法也朝着那个方向发展,但我不知道该怎么做。我在谷歌上搜索了一下,没有找到任何好的答案。如何创建循环?

lpseifert 发表于 2022-7-6 11:01:10

看看这里
http://www.afralisp.net/autolisp/tutorials/selection-sets.php

Haggbakk 发表于 2022-7-6 11:09:10

啊,谢谢你。今天早些时候访问了该页面,很近但没有雪茄。。。我试了一下。

abugintheground 发表于 2022-7-6 11:17:24

我刚刚遇到了一个类似的问题,发现最简单的方法是编辑一个的属性,然后使用MATCHPROP将这些设置复制到其他设置。这就是你想做的吗?

Tharwat 发表于 2022-7-6 11:19:49

 
这是一个选择集循环,你可以开始,你应该完成其余的。。。

(defun c:example (/ ss a ent ents)
(if (setq ss (ssget '((0 . "HATCH"))))
   (progn
   (setq a -1)
   (while (setq ent (ssname ss (setq a (1+ a))))
       (setq ents (entget ent))
      (vl-cmdf "_.-hatchedit" ents .............)
   )
   (princ)
)
)
(princ)
)

 
希望这一点给你一个开始。
 
顺致敬意,
 
塔瓦特

Haggbakk 发表于 2022-7-6 11:31:48

 
好主意,但是你在lisp中使用了MATCHPROP吗?对我来说,它跳出命令行并要求我从视图中选择。。。

Lt Dan's l 发表于 2022-7-6 11:40:39

尝试matchprop=MA的别名
 
也许你可以修改这个
(defun c:test (/ ent)
(while
   (not
   (and
       (setq ent (car (entsel "\nSpecify hatch patern: ")))
       (setq ent (entget ent))
       (eq "HATCH" (cdr (assoc 0 ent)))
   )
   )
   (prompt "\nPlease Select a hatch")
)
(entmod (subst (cons 2 "AR-SAND")(assoc 2 ent) ent))
(princ)
)
页: [1]
查看完整版本: 编辑多个图案填充-强制