乐筑天下

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

[编程交流] 图层线宽提取

[复制链接]

8

主题

52

帖子

44

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 10:06:29 | 显示全部楼层 |阅读模式
你好我正在尝试将额外的图层数据(包括线宽)添加到excel格式中。我将线宽信息添加到lisp例程中,但我肯定做错了什么,因为它继续给我带来错误。提前谢谢!
 
以下是修改为包含线宽的例程。。
 
  1. (defun c:LA2EXCEL (/ nm lnm llnm nam name opf ln lname color ltype lna lnamea colora ltypea,line_wt,description)
  2. ;
  3. ;I added line_wt in the line above
  4. ;
  5. (setq nm (getvar "dwgname"))
  6. (setq lnm (strlen nm))
  7. (setq llnm (- lnm 3))
  8. ;(setq lay_alst (entget (tblobjname "LAYER" "LAYER-NAME")))
  9. ;(setq line_wt (cdr (assoc 370 lay_alst)))
  10. (setq lay_alst (entget (tblobjname "LAYER" "LAYER-NAME")))
  11. ;
  12. ;I added this line below
  13. (setq line_wt (cdr (assoc 370 lay_alst)))
  14. ;I added this line above
  15. ;
  16. (setq nam (substr nm 1 llnm))
  17. (setq name (strcat nam "csv"))
  18. (setq opf (open name "w"))
  19. (setq ln (tblnext "layer" T))
  20. (setq lname (cdr (assoc 2 ln)))
  21. (setq color (cdr (assoc 62 ln)))
  22. (setq ltype (cdr (assoc 6 ln)))
  23. (setq stat (cdr (assoc 70 ln)))
  24. (cond
  25. ((= stat 1)(setq state "FROZEN"))
  26. ((= stat 2)(setq state "FROZEN IN NEW VPORT"))
  27. ((= stat 4)(setq state "LOCKED"))
  28. ((< color 0)(setq state "OFF"))
  29. ((>= color 0)(setq state "ON"))
  30. )
  31. (write-line "Layer Name,Color,Linetype,Condition,Line_wt,Description" opf)
  32. (write-line (strcat lname "," (rtos (abs color) 2 0) "," ltype "," state) opf)
  33. (while
  34. (setq lna (tblnext "layer"))
  35. (setq lnamea (cdr (assoc 2 lna)))
  36. (setq colora (cdr (assoc 62 lna)))
  37. (setq ltypea (cdr (assoc 6 lna)))
  38. (setq stata (cdr (assoc 70 lna)))
  39. (cond
  40. ((= stata 1)(setq statea "FROZEN"))
  41. ((= stata 2)(setq statea "FROZEN IN NEW VPORT"))
  42. ((= stata 4)(setq statea "LOCKED"))
  43. ((< colora 0)(setq statea "OFF"))
  44. ((>= colora 0)(setq statea "ON"))
  45. )
  46. (write-line (strcat lnamea "," (rtos (abs colora) 2 0) "," ltypea "," statea) opf)
  47. )
  48. (close opf)
  49. (alert (strcat "File " name " created in current folder"))
  50. (princ)
  51. )

 
汉克斯!
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:18:20 | 显示全部楼层
kam1967,
 
欢迎来到论坛。你能编辑你的帖子并使用代码标签吗。
 
请参见此处:http://www.cadtutor.net/forum/showthread.php?9184-代码发布指南
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:26:19 | 显示全部楼层
很快就被砍掉了,但应该可以:
 
[code](defun c:LayerInfo(/GetLayerState dxf f l w);;©Lee Mac 2010(defun GetLayerState(bit colour)((lambda(s)(setq s(strcat s)(应用“strcat(mapcar)”(lambda(b s)(if(=b(logand bit b))s“”))”(1 2 4)“(冻结“冻结在新VPORT中;”“锁定;”))(substr s 1(1-(strlen s)))(if(minusp colour)“关”“ON;”)(setq dxf(lambda(x l)(cdr(assoc x l)))(if(setq f(open(strcat(getvar'DWGPREFIX))).csv”)“a”)(progn(write line“Layer Name,Color,Linetype,Lineweight,Status”f)(while(setq l(tblnext“Layer”(null l))(setq l(entget(tblobjname“Layer”(dxf 2 l)))))))(write line(strcat(dxf 2 l)”,“(itoa(abs(dxf 62 l))“,“(dxf 6 l)”,“(if(minusp(setq w(/(dxf 370 l)100))“DEFAULT”(rtos w 2 2)),“(GetLayerState(dxf 70 l)(dxf 62 l)))f))(close f)(princ”\n-->写入的层信息
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:29:35 | 显示全部楼层
你可能也对此感兴趣。
回复

使用道具 举报

8

主题

52

帖子

44

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 10:39:36 | 显示全部楼层
谢谢李的快速回复。在测试您刚才提供的例程时,它似乎已经生成了4个不同的层。例如,如果我有15层,它会生成60层。前45行的线宽为“默认”。只有最后15个图层具有线宽信息。这可能不是问题,但当您有500层或更多层时,可能很难跟踪。
 
无论如何,我需要扩展这个程序以包括其他层信息(请参阅layer info needed.jpg文件)。这是我需要帮助的。。。
 
1) 当前程序不会提取线宽和图层描述。如果有的话,我希望能够提取出整个层信息-包括vp层信息(见附件)
 
2) 如果您知道有一个程序或例程将所有这些信息导入到Autocad中,那就太棒了!
 
我知道有很多问题要问,你可能真的很忙。希望你能在本周完成第一部分。事实上,我很乐意完成#1。再次感谢李!
 
[附件]24881
110632d2x67ihe6ux4f7sh.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:47:49 | 显示全部楼层
 
使用“代码”按钮设置代码格式,“报价”按钮引用帖子
回复

使用道具 举报

8

主题

52

帖子

44

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 10:55:36 | 显示全部楼层
李-我想知道你是否能阅读最后一篇帖子。我还想提取层描述。如果你能帮忙,那就太好了。再次感谢。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:05:39 | 显示全部楼层
 
行-我今天晚些时候有空的时候看看能做些什么
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:13:53 | 显示全部楼层
您好,Kam1967,
 
这个计划应该适合你的需要
http://www.cadtutor.net/forum/showthread.php?54830-层提取器
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 21:23 , Processed in 0.626157 second(s), 72 queries .

© 2020-2025 乐筑天下

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