numberOCD 发表于 2022-7-5 23:20:18

好啊
我取出了带有坐标和Z坐标的“列表”,它通过在命令栏中粘贴行直到属性窗口来工作。它仍然提示我输入属性值,这是我急需自动化的一部分。
 
它当前读取此内容
(命令“_.INSERT”“SIG2”“12,36”1 1 32“781Z”“GYR”)

David Bethel 发表于 2022-7-5 23:21:46

留下Z轴值可能会导致非常奇怪的结果。
 
 
块有2个或3个属性吗?

David Bethel 发表于 2022-7-5 23:24:17

 
 
嗯,我想毕竟存在文件命名限制
 
它只能有一个文件扩展名ie。lsp不是。lsp。shx公司
 
第个扩展名不能为。作为(load)命令的shx知道shx文件应该是什么

lrm 发表于 2022-7-5 23:27:42

您好,numberOCD,
 
回答你对我最初帖子的后续问题。
 
在选择并将A列复制到剪贴板并将其粘贴到MS Word中后,您将看到如下内容(我已打开段落标记和空格的显示):
 
https://dl.dropboxusercontent.com/u/18135203/Script3.JPG
 
使用如图所示的“查找并替换”(无空格)将@@@替换为^p。结果应该是这样的,第一个属性之外的每个属性都位于新行。确保最后一行末尾只有一个段落标记,后面没有段落标记。
https://dl.dropboxusercontent.com/u/18135203/Script4.JPG
 
在Word中保存此文件时,请使用另存为,然后选择txt格式。这将以ASCII格式保存文件。注意,您可以使用记事本编辑。scr文件,但记事本的替换功能不包括段落字符(^p)。
 
https://dl.dropboxusercontent.com/u/18135203/Script5.JPG
AutoCAD希望脚本文件具有文件扩展名。scr使用文件管理器从以下位置更改文件名:
https://dl.dropboxusercontent.com/u/18135203/Script6.JPG
收件人:
https://dl.dropboxusercontent.com/u/18135203/Script7.JPG
 
然后可以使用脚本命令输入所有块。
 
为了测试这个过程,我创建了一个名为MyBlock的简单块,它有两个属性。属性的名称并不重要,但顺序很重要。如果你有任何问题,请告诉我。
~ lrm

lrm 发表于 2022-7-5 23:31:52

下面是使用具有两个属性的简单块的MyBlockScript输出示例:
https://dl.dropboxusercontent.com/u/18135203/Script8.JPG
 
~ lrm

BIGAL 发表于 2022-7-5 23:37:16

这是可行的,不知道为什么你的不可行。
 

(command "_.insert" "labelstn" "0,0,0" 1 1 0 "10" "20" "30" "40" "50")

Tharwat 发表于 2022-7-5 23:40:12

你能上传一个带有样例图形的样例Excel文件来获得你要使用的属性块吗?
要插入多少个不同的属性块?

lrm 发表于 2022-7-5 23:42:10

谢谢比格尔的建议。我试图创建一个不使用AutoLISP的脚本,但这是解决包含Enter键问题的一种方法。它通过消除在Word中进行替换的需要来简化过程。
 
然后,这里是转换Excel数据的过程,以获取一组块的位置和方向,每个块都包含几个属性。
 
1.按照如下所示布局电子表格,将列留空。我将使用A列通过使用Excel连接函数为每个块构建AutoCAD命令。
 
https://dl.dropboxusercontent.com/u/18135203/Script10.JPG
 
2.在单元格A2中键入以下表达式,注意“和空格”。单引号用于开始和结束字符串,而双引号“”用于添加单引号。我在应该包含空格的地方放置了红点。
 
https://dl.dropboxusercontent.com/u/18135203/Script11.JPG
 
3.使用单元格A2的向下填充创建其他AutoCAD(实际上是AutoLISP)命令。
4.使用Ctrl-C将单元格A2复制到A4(或无论有多少行)到剪贴板。
5、打开记事本,将命令粘贴到记事本中。该文件应该如下所示。
 
https://dl.dropboxusercontent.com/u/18135203/Script12.JPG
 
6.将文件保存在记事本中,使其文件扩展名为。scr。
7.在包含所用块定义的AutoCAD文件中,发出脚本命令并选择。scr文件。
 
结果如下。
https://dl.dropboxusercontent.com/u/18135203/Script13.JPG
8、尽情享受!
 
我已经包括了Excel。以scr和AutoCAD文件为例。
~ lrm
区块脚本。图纸
区块数据。xlsx公司
区块脚本。可控硅

7o7 发表于 2022-7-5 23:46:46

假设您有这样一个txt文件,将其称为“D:/a.txt”:
 
MyBlock 12.34 20.5 15苹果香蕉
MyBlock 14.12 22.5 30樱桃甜甜圈
MyBlock 16.11 24.5 45个鸡蛋图
 
可以使用此lisp函数插入块:

(defun c:test()
(setq L nil
file (open "D:/A.txt" "r"))
(while (setq line (read-line file))
   (setq line (mapcar 'vl-princ-to-string (read (strcat "(" line ")")))
L (append L (list line)))
)
(close file)
(foreach line L
   (command "-insert" (car line)
   (list (atof (nth 1 line)) (atof (nth 2 line)))
   1 1 (atof (nth 3 line))
   (nth 4 line) (nth 5 line)))
)
页: 1 [2]
查看完整版本: 从列表中插入块