乐筑天下

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

[编程交流] Excel到Autocad帮助我

[复制链接]

11

主题

40

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 10:46:13 | 显示全部楼层 |阅读模式
我是否可以使用Autolisp与Excel中的给定名称协调进行导入,并在Autocad中生成一个块,分别用名称标识并放置在坐标处?
谢谢你的帮助。
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 10:51:04 | 显示全部楼层
从你请求的声音中。。。对尽管你必须对你要做的事情有更多的描述。
回复

使用道具 举报

11

主题

40

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 10:55:06 | 显示全部楼层
在excel中,我有一个列表,一列中有一个名称,另两列中有x和y坐标。我的Autocad 2007是最基本的。在我的办公室,这个版本将在2010年被取代。我想要的是一个lisp例程,它将从excel文件中读取数据,并将每个点的autocad位置坐标放置在给定的块中,其名称(与excel第一列中的名称相同)位于图形中块的上方或下方。
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 10:57:22 | 显示全部楼层
 
看看它将如何工作:
 
[code](vl负载com);;本地defun(defun read\u excel\u range(FilePath ShtNum Address/ExcelApp ExcData Sht UsdRange Wbk)(setq ExcelApp(vlax get or create object“excel.Application”)(vla put visible ExcelApp:vlax true)(vlax put property ExcelApp“DisplayAlerts:vlax true)(setq Wbk(vl catch all apply”vla open(list(vlax get property ExcelApp“WorkBooks”)FilePath))(setq Sht(vl catch all apply“vlax get property(list(vlax get property Wbk“Sheets”)“Item”ShtNum))(vlax invoke method Sht“Activate”)(setq UsdRange(vlax get property(vlax get property Sht“Cells)”Range“Address)ExcData(vlax safearray->list(vlax variant value(vlax get property UsdRange”Value2))(setq ExcData(函数(lambda(x)(mapcar‘vlax variant value x)))ExcData(setq ExcData(vl remove if(function(lambda(x)(member nil x)))ExcData(vl catch all apply‘vlax invoke method(list Wbk“Close”))(vl catch all apply‘vlax invoke method(list ExcelApp“Quit”))(mapcar(function(lambda(x)(vl catch all apply(function(lambda())(progn(if(not(vlax-object-released-p x))(progn(vlax release object x)(setq x nil)))(list UsdRange Sht Wbk ExcelApp))(gc)(gc)(gc)ExcData);;主程序(defun C:XB(/acsp address data\u list fname sheetnum)(setq fname(getfield“Select Excel File:”(getvar“dwgprefix”)“XLS”4)sheetnum“Sheet1”address“A:C”)(setq data\u list(read\u Excel\u range fname sheetnum address));;从列表中删除标题(setq data_list(vl remove if(function(lambda)(not(numberp(cadr a)Ю)Ю)data_list))(if data_list(progn(setq acsp(vla get block(vla get activelayout)(vla get activedocument(vlax get acad object)Ю)))(foreach item data_list(vlax invoke method acsp’InsertBlock(vlax-3d-point(list(cadr item)(caddr item)0))(car item)1 1 1 0)))(princ))(提示“\n\t\t>>\t键入XB从Excel插入块\t
回复

使用道具 举报

6

主题

249

帖子

247

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 11:01:06 | 显示全部楼层
 
修正:
不知道为什么,但是这个xb。如果块已在dwg中,则lsp仅适用于在Excel文件中列出的坐标处插入块。
不知道为什么xb。lsp最初没有找到acad路径中的块。
S
回复

使用道具 举报

11

主题

40

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 11:03:00 | 显示全部楼层
它打开excel,但不执行任何操作。我不知道我是否必须在Excel中创建一个由3列组成的范围,以及是否必须为工作表命名。另一方面,我不知道是否必须在autocad中创建块,以及应该给这个块取什么名称。
谢谢你的快速回复,因为我真的需要这个程序。
顺致敬意,
回复

使用道具 举报

11

主题

40

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 11:07:45 | 显示全部楼层
它打开excel,但不执行任何操作。我不知道我是否必须在Excel中创建一个由3列组成的范围,以及是否必须为工作表命名。另一方面,我不知道是否必须在autocad中创建块,以及应该给这个块取什么名称。
谢谢你的快速回复,因为我真的需要这个程序。
顺致敬意,
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 11:09:03 | 显示全部楼层
 
你好
这个Lisp程序从2005年到2009年为我工作了很多年
拜维奇有很多可能的原因,这对你来说不起作用
在此处上传示例图纸,并附上解释,以便更好地理解您的问题
 
~'J'~
回复

使用道具 举报

11

主题

40

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 11:14:41 | 显示全部楼层
我给你发了一张图纸,上面有一个叫做PA的块(里面有一个三角形的圆)。同时向您发送包含坐标的xls文件。我需要的是例程读取excel文件的所有行,并将设计放在每个块坐标中,PA以每个块的名称写下,作为dwg,显示在xls文件第三行的样本点中。
 
注意:出现的错误消息是:
 
; 错误:错误的参数类型:VLA-OBJECT#
 
请原谅我的英语不好
 
当做
测验拉链
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 11:16:34 | 显示全部楼层
 
我现在帮不了你,这里有我自己的工作
我一会回来
 
~'J'~
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 17:10 , Processed in 0.437691 second(s), 72 queries .

© 2020-2025 乐筑天下

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