乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: numberOCD

[编程交流] 从列表中插入块

[复制链接]

3

主题

12

帖子

9

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:20:18 | 显示全部楼层
好啊
我取出了带有坐标和Z坐标的“列表”,它通过在命令栏中粘贴行直到属性窗口来工作。它仍然提示我输入属性值,这是我急需自动化的一部分。
 
它当前读取此内容
(命令“_.INSERT”“SIG2”“12,36”1 1 32“781Z”“GYR”)
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 23:21:46 | 显示全部楼层
留下Z轴值可能会导致非常奇怪的结果。
 
 
块有2个或3个属性吗?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 23:24:17 | 显示全部楼层
 
 
嗯,我想毕竟存在文件命名限制
 
它只能有一个文件扩展名ie。lsp不是。lsp。shx公司
 
第个扩展名不能为。作为(load)命令的shx知道shx文件应该是什么
回复

使用道具 举报

lrm

1

主题

257

帖子

282

银币

限制会员

铜币
-13
发表于 2022-7-5 23:27:42 | 显示全部楼层
您好,numberOCD,
 
回答你对我最初帖子的后续问题。
 
在选择并将A列复制到剪贴板并将其粘贴到MS Word中后,您将看到如下内容(我已打开段落标记和空格的显示):
 

                               
登录/注册后可看大图

 
使用如图所示的“查找并替换”(无空格)将@@@替换为^p。结果应该是这样的,第一个属性之外的每个属性都位于新行。确保最后一行末尾只有一个段落标记,后面没有段落标记。

                               
登录/注册后可看大图

 
在Word中保存此文件时,请使用另存为,然后选择txt格式。这将以ASCII格式保存文件。注意,您可以使用记事本编辑。scr文件,但记事本的替换功能不包括段落字符(^p)。
 

                               
登录/注册后可看大图

AutoCAD希望脚本文件具有文件扩展名。scr使用文件管理器从以下位置更改文件名:

                               
登录/注册后可看大图

收件人:

                               
登录/注册后可看大图

 
然后可以使用脚本命令输入所有块。
 
为了测试这个过程,我创建了一个名为MyBlock的简单块,它有两个属性。属性的名称并不重要,但顺序很重要。如果你有任何问题,请告诉我。
~ lrm
回复

使用道具 举报

lrm

1

主题

257

帖子

282

银币

限制会员

铜币
-13
发表于 2022-7-5 23:31:52 | 显示全部楼层
下面是使用具有两个属性的简单块的MyBlockScript输出示例:

                               
登录/注册后可看大图

 
~ lrm
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:37:16 | 显示全部楼层
这是可行的,不知道为什么你的不可行。
 
  1. (command "_.insert" "labelstn" "0,0,0" 1 1 0 "10" "20" "30" "40" "50")
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 23:40:12 | 显示全部楼层
你能上传一个带有样例图形的样例Excel文件来获得你要使用的属性块吗?
要插入多少个不同的属性块?
回复

使用道具 举报

lrm

1

主题

257

帖子

282

银币

限制会员

铜币
-13
发表于 2022-7-5 23:42:10 | 显示全部楼层
谢谢比格尔的建议。我试图创建一个不使用AutoLISP的脚本,但这是解决包含Enter键问题的一种方法。它通过消除在Word中进行替换的需要来简化过程。
 
然后,这里是转换Excel数据的过程,以获取一组块的位置和方向,每个块都包含几个属性。
 
1.按照如下所示布局电子表格,将列留空。我将使用A列通过使用Excel连接函数为每个块构建AutoCAD命令。
 

                               
登录/注册后可看大图

 
2.在单元格A2中键入以下表达式,注意“和空格”。单引号用于开始和结束字符串,而双引号“”用于添加单引号。我在应该包含空格的地方放置了红点。
 

                               
登录/注册后可看大图

 
3.使用单元格A2的向下填充创建其他AutoCAD(实际上是AutoLISP)命令。
4.使用Ctrl-C将单元格A2复制到A4(或无论有多少行)到剪贴板。
5、打开记事本,将命令粘贴到记事本中。该文件应该如下所示。
 

                               
登录/注册后可看大图

 
6.将文件保存在记事本中,使其文件扩展名为。scr。
7.在包含所用块定义的AutoCAD文件中,发出脚本命令并选择。scr文件。
 
结果如下。

                               
登录/注册后可看大图

8、尽情享受!
 
我已经包括了Excel。以scr和AutoCAD文件为例。
~ lrm
区块脚本。图纸
区块数据。xlsx公司
区块脚本。可控硅
回复

使用道具 举报

7o7

0

主题

93

帖子

93

银币

初来乍到

Rank: 1

铜币
0
发表于 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函数插入块:
  1. (defun c:test()
  2. (setq L nil
  3. file (open "D:/A.txt" "r"))
  4. (while (setq line (read-line file))
  5.    (setq line (mapcar 'vl-princ-to-string (read (strcat "(" line ")")))
  6.   L (append L (list line)))
  7. )
  8. (close file)
  9. (foreach line L
  10.    (command "-insert" (car line)
  11.      (list (atof (nth 1 line)) (atof (nth 2 line)))
  12.      1 1 (atof (nth 3 line))
  13.      (nth 4 line) (nth 5 line)))
  14. )
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 03:37 , Processed in 0.722508 second(s), 71 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表