乐筑天下

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

[编程交流] 区块计数-需要意见

[复制链接]

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 20:30:05 | 显示全部楼层 |阅读模式
不久前,我创建了一个lisp例程,用于将管件块插入到图形中。块的命名代码仅表示连接类型、尺寸和配件类型(弯头、三通、异径管等)。现在,我需要设置lisp,以便能够在插入块时将材料、涂层和管道明细表信息添加到块中,以便我们可以提取BOM表。目前,每个块用于每种可能的材料、管道计划等。配件可能会出现。为每个所需的变化生成一个单独的块将使系统中存储的块的数量至少乘以10倍。
所以,我需要一些意见;我是在插入块时通过填充属性向其添加额外数据,还是在插入块时动态重命名块?我有几个lisp例程可以提取块数量,但是基于属性文本提取块数量会更容易吗?
 
警告:我充其量只是一个Lisp程序的黑客,所以我可能会在这方面寻求帮助。
回复

使用道具 举报

0

主题

39

帖子

44

银币

限制会员

铜币
-1
发表于 2022-7-5 20:40:34 | 显示全部楼层
可以使用扩展数据将数据存储在块或实体内。以下是一些功能:
 
  1. (defun Add_XData(
  2.                Ent        ; - Entity Ename
  3.                App        ; - Application name
  4.                dList        ; - XData list (list(cons group data)...)
  5.                )
  6. (regapp App)
  7. (entmod(append(entget Ent)(list(list -3(append(list App)dList)))))
  8. ); end of Add_XData
  9. ; --------------------------------------------------------------------------------------------------------------------------
  10. (defun Delete_XData(
  11.                   Ent        ; - Entity Ename
  12.                   apLst        ; - List of Applications
  13.                   / xEnt)
  14. (setq xEnt(entget Ent apLst)
  15. xEnt(vl-remove(assoc -3 xEnt)xEnt)
  16. ); end setq
  17. (entmod xEnt)
  18. ); end of Delete_XData
  19. ; --------------------------------------------------------------------------------------------------------------------------
  20. (defun Read_XData(
  21.                   Ent                ; - Entity Ename
  22.                   apName        ; - Application name
  23.                   / xEnt)
  24. (setq xEnt(entget Ent(list apName))
  25. xEnt(vl-remove apName(cadar
  26.                       (vl-remove-if
  27.                         (function
  28.                           (lambda(a)(/= -3(car a))))xEnt)))
  29. ); end setq
  30. ); end of Read_XData
  31. ; --------------------------------------------------------------------------------------------------------------------------

 
Visual LISP控制台示例:
 
  1. [color="#0000ff"]; get some entity on screen[/color]
  2. _$ (setq ent(car(entsel)))
  3. <Entity name: 7ef02390>
  4. [color="#0000ff"]; add XData for application 'My Magic App' to entity[/color]
  5. _$ (Add_XData ent "My Magic App" (list(cons 1000 "Magic Data 1")(cons 1000 "Magic Data 2")))
  6. ((-1 . <Entity name: 7ef02390>) (0 . "LINE") (330 . <Entity name: 7ef01cf8>) (5 . "1B2") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (370 . 70) (100 . "AcDbLine") (10 2183.93 319.511 0.0) (11 2637.11 1054.87 0.0) (210 0.0 0.0 1.0) (-3 ("My Magic App" (1000 . "Magic Data 1") (1000 . "Magic Data 2"))))
  7. [color="#0000ff"]; read XData foe the same application[/color]
  8. _$ (Read_XData ent "My Magic App")
  9. ((1000 . "Magic Data 1") (1000 . "Magic Data 2"))
  10. [color="#0000ff"]; delete XData for the same application[/color]
  11. _$ (Delete_XData ent (list "My Magic App"))
  12. ((-1 . <Entity name: 7ef02390>) (0 . "LINE") (330 . <Entity name: 7ef01cf8>) (5 . "1B2") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (370 . 70) (100 . "AcDbLine") (10 2183.93 319.511 0.0) (11 2637.11 1054.87 0.0) (210 0.0 0.0 1.0))
  13. _$
回复

使用道具 举报

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:45:24 | 显示全部楼层
嗨Cadapult,
 
如果你能提供给我的话,我需要你提供的这个Block counting lisp。实际上,我从事灌溉项目,需要为项目中使用的所有PVC配件编制工程量清单。
基本上,我们项目中的所有管道都在不同的层上,正如已经告诉你的那样,我们需要取下配件。如果您的lisp在这种情况下有效,请将其发送到我的电子邮件地址:vineetbabbar@gmail.com
 
谢谢和问候,
Vineet Babbar。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 20:56:37 | 显示全部楼层
葡萄园:
 
查看CADTutor论坛成员李·麦克的区块计数器程序。
 
http://lee-mac.com/blockcounter.html
回复

使用道具 举报

10

主题

30

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 21:02:27 | 显示全部楼层
 
先生
请你把代码贴出来。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 21:08:02 | 显示全部楼层
也许看不见的属性,这样你可以有很多数据,但视觉上只能看到少数。
 
由于您已经有了一个lisp,可能更容易添加到您的lisp中,可能是一个更通用的版本,可以处理各种数量的属性,因此只使用一个例程,而不是每个块类型使用一个例程。
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 21:12:44 | 显示全部楼层
抱歉,此回复花费了一些时间。直到今天我才回到主题上来。
 
 
我不采取任何附加的例行程序,这是我在这个网站上发现了很长一段时间。这有点超过了我的编程能力。我希望我能记得作者是谁,这样他们就可以为此获得荣誉,因为这本书很滑。
 
 
在图形中运行例程,它会在与图形相同的文件夹中创建Excel电子表格。
 
 
我从未为即时块重命名找到解决方案。随着我们在不久的将来转向发明者,这并不重要,但我本想解决这个问题。
BC。lsp
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 21:22:44 | 显示全部楼层
 
不用担心,现在大约三年了
回复

使用道具 举报

6

主题

249

帖子

247

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 21:28:56 | 显示全部楼层
 
本BC。如果有人可以在电子表格开头的某个地方添加图形名称,并将其添加到保存Excel精细名称中,则lsp可能更有价值。在处理多张图纸集的计划时,确实可以防止混淆。
感谢可能的补充
史蒂夫
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 21:32:35 | 显示全部楼层
 
嘿,最近一次请求使用block counting LISP是在几天前。
 
 
从现在起,我会尽量在6个月内回复。承诺:^)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 08:54 , Processed in 0.493589 second(s), 72 queries .

© 2020-2025 乐筑天下

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