jjatho 发表于 2022-7-7 16:11:49

如果我有一个excel文件

我目前正在为一项新工作建立起重机索具的三维模型库。具体来说,我正在创建钢丝绳吊索(像这个3/8英寸的钢丝绳吊索),但不太强调视觉细节,更强调精确的测量。
 
为了简化这个过程,我创建了一个excel文件来输入吊索的四个基本测量值(长度、绳索厚度、眼宽和眼长),然后计算并显示制作吊索所需的所有对象的坐标和测量值(弧、线、沿这些线扫掠的圆等)
 
我现在意识到,我实际上只是在创建一个无休止的复制/粘贴任务,我正在寻找更好的方法来完成这个过程。我希望有人能为我指出正确的方向,如何使这项工作尽可能有效。
 
有没有什么方法可以让AutoCAD指向Excel文件,让它读取所有坐标和测量值以自动绘制所有内容?我还考虑在Excel中创建一行,这样可以将输出复制并粘贴到。scr,但我以前从未在CAD中使用过任何脚本,所以这对我来说是一个新领域。
 
大家对我做这件事的最佳方式有什么看法?

BIGAL 发表于 2022-7-7 16:33:32

Excel内置VBA,因此可以在Excel中编写脚本文件,基本上包括创建dwg的所有命令。另一种方法是让excel在一列中写入脚本,除非需要(空白是返回),然后将该列复制并粘贴到Autocad命令行或另存为脚本。
 
最简单的示例是在excel的3列中创建多个点,您需要=在D列中串联(A1,“,”,B1,“,”,C1)。在Autocad中键入点,然后将列粘贴到命令行。
 
另一种方法是让Autocad与excel对话,并根据需要提取单元格值。这意味着您不能在excel中进行太多更改,因为lisp将提取错误的值。在此处搜索excel Autocad示例。
 
另一个导出excel的txt文件,如果更改excel,lisp将从中读取更安全的值。
 
有几个选项只是写下要绘制的步骤,这是一个脚本。如果你喜欢excel,我会那样做。

jjatho 发表于 2022-7-7 16:45:25

谢谢实际上,我已经决定直接进入AutoLISP。到目前为止,它似乎还在工作,但我不知道如何选择对象,以便使扫描功能正常工作。

tomhamlet 发表于 2022-7-7 16:59:10

一种简单的方法是通过高亮显示excel文件中所需的单元格并点击ctrl+c来复制和粘贴,然后打开图形并点击键盘上的ctrl+v。要编辑表格,只需双击它。Excel将打开,您在此处所做的任何更改都将自动在AutoCAD中进行。

ReMark 发表于 2022-7-7 17:05:29

我不得不不同意上述观点。我会考虑使用数据链路。通过TABLES命令访问功能。

BIGAL 发表于 2022-7-7 17:22:43

重新选择对象创建对象后使用entlast将其保存到变量,当Autocad说“拾取对象”时,您就知道其对象id,只需回复变量名称即可。
 

... make new object
(command "line" 0,0 10,10 "")
(setq lastobj (entlast))
... do something else
(command "move" lastobj "" 0,0 10,0))
页: [1]
查看完整版本: 如果我有一个excel文件