乐筑天下

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

[编程交流] 属性提取

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:07:06 | 显示全部楼层 |阅读模式
大家好,我是这个论坛的新手,有人能在论坛上帮我吗
 
我正在制作带有项目标签的图纸,每个标签有许多部分,有时约20个部分。,每个部分都有它的属性。即-零件号、尺寸、数量和分类(即金属、木材、石头等)。现在有人可以知道一个例程(lisp),它提取图形中的所有部分并对其进行排序,然后将其放在表中的同一图形中,但根据其分类(即金属、木材、石头等)进行分组
 
非常感谢你
 
 
 
回复

使用道具 举报

41

主题

301

帖子

265

银币

后起之秀

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

铜币
209
发表于 2022-7-6 12:20:08 | 显示全部楼层
像这样的事情将是一个开始。
 
  1. (setq ss1 (ssget))
  2. (setq en (ssname ss1 0))
  3. (setq edata (entget en))
  4. (setq blockdata nil)
  5. (setq edata (entget (entnext (cdr (assoc -1 edata)))))
  6. (while (not(= (cdr (assoc 0 edata)) "SEQEND"))
  7. (setq blockdata (cons (cons (cdr (assoc 2 edata)) (cdr (assoc 1 edata))) blockdata))
  8. (setq edata (entget (entnext (cdr (assoc -1 edata)))))
  9. )
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-6 12:23:20 | 显示全部楼层
你的意思是(输入命令行并按enter键):
 
EATTEXT
 
应该这样做。。。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:29:45 | 显示全部楼层
https://www.cadtutor.net/file:///G:/sample.JPG
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:37:41 | 显示全部楼层
谢谢你的代码,太棒了!!现在我正在使用dataextraction命令并手动过滤所有atribute以获得正确的值,我可以自动化这个过程以便只需单击一次即可提取这些值吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:42:03 | 显示全部楼层
您可以制作宏:
 
  1. ^C^C-eattext;C;Y; ... etc etc

 
只需按照提示操作,看看你能做些什么
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:47:43 | 显示全部楼层
谢谢你,伙计!
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-6 12:56:03 | 显示全部楼层
 
李,我经常使用eattext。但我当然有一个问题。。。像往常一样,我似乎只有问题
首先,你提供的宏不适合我。也许我应该用另一种方式来实现我的目标,所以让我们把它留到现在吧。
 
(同时我问自己:“李会注意到这个消息吗,我应该给他发邮件吗…?)
 
为了自动化标准属性提取的过程,我想我在以前提取的基础上为其制作了一个lisproutine。(如果使用了eattext,您可以保存提取内容供以后使用,模板类似…)
 
事实上,如果rountine是这样的:
 
  1. (defun c:do_it ()
  2. (command "-eattext" "<path + name>")
  3. (princ))

 
.. 它有效。。。但不是100%。。。
 
想象一下,我会有一个新项目,比如说在一个特定的地图中有10个dwg。应处理这些图纸。如果使用eattext,我可以选择特定的图形,但我想自动化这个过程。
 
在lisp中使用-eattext时,我只能给出模板,仅此而已。当然,它会提取在创建模板时设置的dwg。
 
那么我该怎么做呢
1、基于先前保存的模板创建属性提取
2.在eattext命令中选择一个文件夹或多个dwg
3、放在桌子上
 
代替我提到的模板,我可以尝试在例程中根据需要设置变量,这样就可以忘记模板。
 
这些是变量(在学步儿童中有点解释):
-每次都应该是新的提取
-图形->不包括当前图形
-仅选择具有一个特定块名“blockname”的块
 
... 在输入这个时,我担心它会变得复杂,因为我需要每次的结果(表格)都相同。
 
我认为在“进一步做梦”之前最好先听听你的意见。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:03:31 | 显示全部楼层
你好,Marco,
 
我相信这是可以实现的,但可以通过自定义LISP函数来实现,而不是依赖EATTEXT命令,因为您可以对块进行更多控制,而且它会更健壮。
 
但这是一项相当复杂的任务,需要花费相当多的时间来完成。
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 13:11:57 | 显示全部楼层
 
看看这个帖子,它可能会给你一些想法
 
http://www.cadtutor.net/forum/showthread.php?t=42174&page=2
 
~'J'~
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 10:05 , Processed in 0.462570 second(s), 75 queries .

© 2020-2025 乐筑天下

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