乐筑天下

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

[编程交流] 将文本从acad导出到excel

[复制链接]

9

主题

30

帖子

21

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 06:35:30 | 显示全部楼层 |阅读模式
我需要一个lisp打开一个cad文件,并将文本从特定区域复制到excel表,然后用cad文件的名称保存excel文件,然后转到下一个acad文件。这些文本位于所有acad文件中的固定区域。在excel中保持行和列的顺序很重要。事实上,这些acad文件是从pdms导出的等轴测图形,我需要excel中每个图纸的bom表。
 
非常感谢
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 07:11:42 | 显示全部楼层
干得好
  1. ;;----------------------------TOXL.LSP-------------------------------;;
  2. ;; fixo ()2013 * all rights released
  3. ;; 03/11/13
  4. ;; edited 5/13/13
  5. (defun c:TOXL(/ *error* as col cp data elist en fname gkw newpath nextaddress
  6.          p1 p2 path rad row rownum setcelltext sheetname sset tmp
  7.         xlapp xlbook xlbooks xlcell xlcells xlrange xlsheet xlsheets)
  8. (vl-load-com)
  9. (defun *error* (msg)
  10. (if
  11.    (vl-position
  12.      msg
  13.      '("console break"
  14. "Function cancelled"
  15. "quit / exit abort"
  16.       )
  17.    )
  18.     (princ "Error!")
  19.     (princ msg)
  20. )
  21. (princ)
  22. )
  23. (defun setcelltext(cells row column value)
  24. (vl-catch-all-apply
  25.    'vlax-put-property
  26.    (list cells 'Item row column
  27. (vlax-make-variant
  28.    (vl-princ-to-string value) ))
  29. )
  30. (if (and (setq p1 (getpoint "\nPick lower left point of area: "))
  31. (setq p2 (getcorner p1"\nOpposite corner: "))
  32. (setq sset (ssget "_W" p1 p2 (list (cons 0 "text");|(cons 8 "ANNO-TEXT")|)))
  33.    (while (setq en (ssname sset 0))
  34.      (setq elist (entget en))
  35.      (setq cp (cdr (assoc 10 elist)))
  36.      (setq txt (cdr (assoc 1 elist)))
  37.      (setq tmp (list txt (rtos (cadr cp)3 2) (rtos (cadr cp) 3 2)  ))
  38.      (setq data (cons tmp data))
  39.      (ssdel en sset)))
  40. (setq sheetname (getstring T "\nEnter the label of an area (like Area#1) : "))
  41. ;;; main part
  42. (if data
  43. (progn
  44. (setq data (append (list (list "Text" "X" "Y")) (reverse data)))
  45. (alert "Wait...")
  46. (setq xlapp    (vlax-get-or-create-object "Excel.Application")
  47. xlbooks  (vlax-get-property xlapp 'Workbooks)
  48. xlbook    (vlax-invoke-method xlbooks 'Add)
  49. xlsheets (vlax-get-property xlbook 'Sheets)
  50. xlsheet    (vlax-get-property xlsheets 'Item 1)
  51. xlcells    (vlax-get-property xlsheet 'Cells)
  52. )
  53. (vlax-put-property xlsheet "Name" sheetname)
  54. (vla-put-visible xlapp :vlax-true)
  55. (setq row 1)
  56. (foreach dim data
  57. (setq col 1)
  58. (foreach i dim
  59. (setcelltext xlcells row col (vl-princ-to-string i))
  60. (setq col (1+ col)
  61.      )
  62. )
  63. (setq row (1+ row)
  64.      )
  65. )
  66. (vlax-invoke-method
  67.   (vlax-get-property xlsheet 'Columns)
  68.   'AutoFit)
  69. (setq fname (strcat (getvar "dwgprefix")(vl-filename-base (getvar "dwgname"))".xls"))
  70. (vlax-invoke-method
  71.    xlbook
  72.    'SaveAs
  73.    fname
  74.    nil
  75.    nil
  76.    nil
  77.    :vlax-false
  78.    :vlax-false
  79.    1
  80.    2
  81. )
  82. (vlax-invoke-method
  83.    xlbook 'Close)
  84. (gc)
  85. (vlax-invoke-method
  86.    xlapp 'Quit)
  87. (mapcar '(lambda (x)
  88.      (vl-catch-all-apply
  89.        '(lambda ()
  90.    (vlax-release-object x)
  91. )
  92.      )
  93.    )
  94.   (list xlcells xlsheet xlsheets xlbook xlbooks xlapp)
  95. )
  96. (setq  xlapp nil)
  97. (gc)(gc)
  98. (alert (strcat "File saved as:\n" fname))
  99. )
  100. )
  101. (*error* nil)
  102. (princ)
  103. )
  104. (prompt "\n\t\t---\tStart command with TOXL\t---\n")
  105. (prin1)
  106. (or (vl-load-com)
  107.    (princ))
回复

使用道具 举报

9

主题

30

帖子

21

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 07:19:44 | 显示全部楼层
非常感谢,这个lisp很好,但它改变了行和列的顺序,在excel文件中保留上面的格式对我来说非常重要。如果你能再次编辑你的Lisp程序,我真的很感激。再次感谢你
图纸1.dwg
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 07:53:30 | 显示全部楼层
对不起,我能帮上更多的忙,太难解决了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-16 01:17 , Processed in 3.314163 second(s), 61 queries .

© 2020-2025 乐筑天下

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