jake77777 发表于 2022-7-6 10:25:33

请帮忙!Ansi 31的Lisp

我确实会在发布任何内容之前至少一个小时寻找这些问题的答案。我知道我今天已经3到4岁了。但你们这些代码天才。。再次感谢您的帮助。。将不胜感激!(你能怪我吗……我今天才发现lisps和这个网站!)
 
但我希望你们能帮我的是一个lisp选择一个边界,然后创建一个ansi 31图案填充,角度180,比例18,然后删除边界。所有内容都将逐层打开,或者如果需要选择一个层,则将使用STR-TXT。下面是我发现的最接近的内容。。由于某种原因,它将图层的颜色更改为青色,它确实提供了删除边界的选项,但还没有想出如何使其工作。。。。而且规模要小得多。谢谢你的建议!
 
 
(定义c:QH(/cla)
(命令“_.-layer”“\N”“STR-TXT”“\u M”“STR-TXT”“\u C”“\u T”“0179179”“STR-TXT”“”)
(命令“_-color”“bylayer”)
 
;(setvar“cmdecho”0)
;(命令“hpgaptol”05)
;(命令“HPNAME”“solid”)
;(图表)
(命令“-hatch”s“pause”)
(setvar“cmdecho”1)
(普林斯)
)

Ahankhah 发表于 2022-7-6 10:49:02

jake77777,
 
我不明白你的目的,但想通知你代码中的一个错误。实际上,PAUSE是一个变量,用于向autocad的命令提示符发送反斜杠(在VuisualLISP中为:“\\”),因此调用“HATCH”命令时,必须将代码更改为:
(command "-hatch" "s" pause "")
 
梅尔达德
http://www.irancad.com

BlackBox 发表于 2022-7-6 11:03:05

这应该可以帮助你开始。。。
 

(defun c:QH(/ eName)
(if (and (setq eName (car (entsel "\n>>Select Polyline Boundary: ")))
          (wcmatch (cadr (assoc 0 (entget eName))) "*POLYLINE"))
   (progn
   ;; ...Add You Code Here
   (command "._erase" eName "")
   )
(princ))

jake77777 发表于 2022-7-6 11:11:11

谢谢你的帮助阿汉卡和伦德曼。。我想我会尝试走一条不同的路线,用多线制作舱口。。再次感谢!

jake77777 发表于 2022-7-6 11:29:29

https://www.cadtutor.net/forum/images/editor/smilie.png。。也许不是通过mlines
页: [1]
查看完整版本: 请帮忙!Ansi 31的Lisp