SSA 发表于 2022-7-6 14:31:51

带有多个

你好
我是AutoCAD新手(大约一个星期了),想请你帮个忙。
 
我必须在IntelliCAD中绘制大量的圆。
有人知道如何使用autolisp实现自动化吗?这样我就可以在文本文件中写入并自动加载它。
 
我有每个圆的坐标和半径。每个圆将绘制在不同的层中(每个圆应该有自己的层,以便可以关闭和打开以进行打印)
 
现在我在使用这个命令:
(命令“_.circle”“20,10”“1”)到目前为止,它仍然有效,但需要很长时间。
 
提前感谢您的时间和帮助!!
 
 
SSA公司

Lee Mac 发表于 2022-7-6 14:36:26

文本文件中的信息是什么格式的,即它是如何布局的?

SSA 发表于 2022-7-6 14:40:56

李,你好,
 
我在excel文件中有坐标和半径。我想如果我能在文本文件中输入所有坐标和半径,无论格式是什么?
 
我发现这个示例使用autolisp从日常autoCAD网站生成了一个圆,但它给了我一个错误:null函数
 
(失效C:make_circle(/v1);首先构建实体列表
(setq v1(列表)
(cons 0“圆”);实体名称
(cons 8“TAL_线”);其层的名称
(cons 10’(5.0 10.0);圆的中心点
(cons 40(2.5));圆的半径
) ; 实体列表结束
)
(entmake v1);创建圆
)
 
请告知
谢谢

Lee Mac 发表于 2022-7-6 14:43:59

对不起,我的意思是:信息的顺序是什么?
 

 
坐标,半径
 
半径,坐标
 
您能提供一个如何存储信息的示例吗?这应该可以很容易地完成。
 
对于另一个函数,(list)没有参数,。

SSA 发表于 2022-7-6 14:45:17

是坐标,半径

Lee Mac 发表于 2022-7-6 14:49:14

我不确定坐标的显示方式,因此这需要做一些假设:
 
[列表]
[*]数据从TXT文件中读取
[*]坐标和半径由空格分隔
[*]坐标以逗号分隔。
[/列表]

(defun c:CirMake (/ file nl)
(vl-load-com)
(if (setq file (getfiled "Select Text File to Read" "" "txt" )
   (progn
   (setq file (open file "r"))
   (while (setq nl (read-line file))      
       (command "_.circle" "_non"
                (substr nl 1 (vl-string-position 32 nl))
                (substr nl (+ (vl-string-position 32 nl) 2))))
   (close file))
   (princ "\n<!> No File Selected <!>"))
(princ))

SSA 发表于 2022-7-6 14:53:03

对不起,我的意思是我在excel中有坐标和半径。
我正在尝试编写包含所有这些坐标和半径的lisp,这样我就可以自动生成圆(尽量避免逐个输入圆命令)。每个圆都有其on层。
 
例如,在excel中,我有
x y r
10'    10'    1'
20'    20'    2'
30'    30'    3'

 
这就是我的想法,你对这个问题还有其他建议吗?

Lee Mac 发表于 2022-7-6 14:55:41

从Excel中读取有点困难-你能不能把内容复制粘贴到txt文件中?

Lee Mac 发表于 2022-7-6 14:57:20

或者,将Excel文件另存为CSV文件

SSA 发表于 2022-7-6 15:01:05

 
是的,我只是把它保存在文本中
你介意解释一下你写的Lisp程序吗?可能有“;”在每行的末尾:wink:对不起,我不熟悉。
 
我试着运行lisp,它返回了error null函数
也许我错过了什么?
谢谢
页: [1] 2
查看完整版本: 带有多个