乐筑天下

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

[编程交流] 将数据点导出到excel fil

[复制链接]

4

主题

10

帖子

6

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 20:17:14 | 显示全部楼层 |阅读模式
需要帮助
如何使用LISP将CAD的数据点XY导出到excel文件中,例如XY。xls公司
并放置在特定的电池板中,例如X=Y=电池c2 d2
 
非常感谢。
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 20:26:15 | 显示全部楼层
 
最简单的方法是
另存为*。csv逗号分隔格式
然后用excel打开
例子:
  1. ;V1.1:  04/12/2014
  2. ;PXYZ test.csv saved to dwgprefix
  3. ;add numbering PXYZ format
  4. ;index i 1+ incremental
  5. ;notified by alert
  6. ;optional: add Text numbering
  7. ;optional: open notepad
  8. ;optional: open directory
  9. (vl-load-com)
  10. (defun c:P2F ( / *error* p i ss fn pt )
  11. ;hanhphuc 2014
  12.   (defun *error* (msg)
  13.    
  14.     (if        (not (wcmatch (strcase msg) "*CANCEL*,*EXIT*"))
  15.       
  16.       (princ (strcat "\nError: " msg))
  17.       
  18.     )
  19.    
  20.     (if        p
  21.       
  22.       (close p)
  23.       
  24.     )
  25.     (princ)
  26.    
  27.   )
  28.   
  29.   (if
  30.     (and
  31.       (setq i  0
  32.             
  33.             ss (ssget ":L" '((0 . "POINT")))
  34.             
  35.            )
  36.       
  37.            (setq fn
  38.                   (strcat (getvar "dwgprefix")
  39.                           "PXYZ test.csv") ; rename you file
  40.                  )
  41.       
  42.            (setq p (open fn "w"))
  43.       
  44.       )
  45.    
  46.     (progn
  47.                                         ;(setq i 0)
  48.       (repeat
  49.         (sslength ss)
  50.        
  51.         (
  52.          (lambda (str)
  53.           
  54.            (foreach x
  55.                     (setq pt
  56.                            (vlax-get
  57.                              
  58.                                  (vlax-ename->vla-object (ssname ss i))
  59.                                  
  60.                                  'coordinates
  61.                                  
  62.                                )
  63.                           
  64.                       )
  65.              
  66.              (setq str (strcat str (rtos x 2) ","))
  67.              
  68.            )
  69.           
  70.            (write-line
  71.       
  72.        (strcat (itoa (setq i (1+ i))) "," str)
  73.       
  74.        p)
  75.           
  76.          )
  77.           
  78.           ""
  79.           
  80.         )
  81.        
  82.         (entmakex
  83.           (list
  84.                     '(0 . "TEXT")
  85.                
  86.                      (cons 1 (itoa i))
  87.                
  88.                 (cons 10 pt)
  89.                
  90.                 (8 . "EXPORTED")
  91.                
  92.                 (cons 40 (getvar 'TEXTSIZE))
  93.                
  94.             )
  95.           
  96.         )
  97.        
  98.       )
  99.       
  100.       (if p
  101.        
  102.         (close p)
  103.        
  104.       )
  105.       
  106.       (alert
  107.        
  108.         (strcat
  109.           
  110.           "\nSyabas! Saved in ""
  111.           
  112.           fn
  113.           ;""\nOK -> "PXYZ test.csv" -> Right-Click -> Open With -> EXCEL"
  114.         )
  115.       )
  116.       
  117. ;;;(command "_SHELL" (strcat "explorer "" (getvar "dwgprefix") """)) ;<-- optional
  118.       
  119.       (vl-cmdf "_START" (strcat "EXCEL "" fn """))
  120.       
  121.       (startapp "notepad" fn)
  122.       
  123.       ;; <--optional open as notepad preview
  124.     )
  125.    
  126.     (alert "\n:-( knp xde POINT ?! ")
  127.    
  128.   )
  129.   (princ)
  130. )

 
将文件保存在DWG的目录中
回复

使用道具 举报

6

主题

249

帖子

247

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 20:30:56 | 显示全部楼层
该例程查找Autocad“点”,如果它们实际上是LDD点,则可能无法工作,如上所述,LDD需要不同的代码。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:36:03 | 显示全部楼层
 
只需单击,它将存储XY值,而不必是几何空间点。
回复

使用道具 举报

6

主题

249

帖子

247

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 20:41:36 | 显示全部楼层
 
试试这个节目,让我知道。
 
  1. (DEFUN C:Exportpnt (/       FILE    FILENAME               ANS     CNT
  2.                PT      X       Y       Z       LINE    DESC
  3.                LINECOUNTER     LINEDATA               LEN     OSM
  4.               )
  5. (SETQ OSM (GETVAR "OSMODE"))
  6. (COMMAND "OSMODE" 0)
  7. ;;
  8. ;; THIS WILL SET THE FILE NAME WE ARE WRITTING TO AS WELL AS CHECK
  9. ;; TO MAKE SURE THAT WE ARE WRITTING AT THE END OF THE FILE
  10. ;;
  11. (SETQ LINECOUNTER 0)
  12. (SETQ FILE (GETSTRING "\nNAME OF POINTS FILE TO OPEN:..."))
  13. (SETQ FILENAME (OPEN FILE "A"))
  14. (CLOSE FILENAME)
  15. (SETQ FILENAME (OPEN FILE "R"))
  16. (WHILE
  17.    (SETQ LINEDATA (READ-LINE FILENAME))
  18.     (SETQ LEN (STRLEN LINEDATA))
  19.     (SETQ LINECOUNTER (+ 1 LINECOUNTER))
  20. )
  21. (CLOSE FILENAME)
  22. (SETQ FILENAME (OPEN FILE "A"))
  23. (INITGET "Yy Nn")
  24. (SETQ
  25.    ANS        (GETKWORD "\n ADD DESCRIPTIONS? Yes OR No ?:...")
  26.    CNT        (GETINT "\nENTER NUMBER OF POINTS TO EXPORT:...")
  27.    PT        (GETPOINT "\nSELECT POINT TO EXTRACT:....")
  28. )
  29. ;;
  30. ;; THIS BEGINS THE REPEAT LOOP TO EXTRACT THE POINT INFORMATION
  31. ;;
  32. (REPEAT CNT
  33.    (IF
  34.      ( = ANS "Yy")
  35.       (SETQ DESC (GETSTRING "\nENTER DESCRIPTION:..."))
  36.    )
  37.    (SETQ
  38.      X                  (RTOS (CAR PT))
  39.      Y                  (RTOS (CADR PT))
  40.      Z                  (RTOS (CADDR PT))
  41.      LINECOUNTER (+ 1 LINECOUNTER)
  42.    )
  43.    (IF        (= ANS "Yy")
  44.      (SETQ LINE (STRCAT (ITOA LINECOUNTER) "," Y "," X "," Z "," DESC))
  45.      (SETQ LINE (STRCAT (ITOA LINECOUNTER) "," Y "," X "," Z))
  46.    )
  47.    (WRITE-LINE LINE FILENAME)
  48.    (SETQ PT (GETPOINT "\nSELECT NEXT POINT TO EXTRACT:..."))
  49. )                                        ;END OF REPEAT LOOP
  50. (CLOSE FILENAME)
  51. ;; RESET THE OSNAP MODE
  52. (COMMAND "OSMODE" OSM)
  53. (PRINC)
  54. )
回复

使用道具 举报

3

主题

18

帖子

15

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 20:45:43 | 显示全部楼层
感谢Tharwat、BIGAL、JSYoung81、stevesfr的协助,非常感谢。
我昨晚睡得很早
 
很抱歉post#2中更新的缺失(vl load com)代码
注意:此代码仅导出acad AcDbPoint,而不导出AECC point!
 
 
我偶然发现了你的旧线索
AECC\u坐标几何点应为LDD和C3D的不同方法属性
 
嗨,我们又见面了
是的,你的代码可以工作,因为它只是创建了新的增量点

VVA公司
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:52:36 | 显示全部楼层
 
 
 
 
塔瓦特

                               
登录/注册后可看大图

可以更改此代码,以便自动输入我们之前必须制作的excel文件?
回复

使用道具 举报

3

主题

18

帖子

15

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 21:00:17 | 显示全部楼层
两个月后,我对那些试图免费帮助你的人没有任何尊重。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 21:02:53 | 显示全部楼层
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 21:06:56 | 显示全部楼层
Thanks Tharwat,BIGAL,JSYoung81,stevesfr for assisting thread very appreciated.
i slept early last night
 
sorry. missing (vl-load-com) code updated in post#2
note: this code only Exports acad AcDbPoint, NOT AECC point!
 
 
i came across your old thread
AECC_COGO_POINT , should be different method property for LDD & C3D
 
hi JSYoung81 we meet again  
yes your code works because it just creates new incremental points, here are similar threads by
Lee
VVA
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 09:27 , Processed in 0.461967 second(s), 72 queries .

© 2020-2025 乐筑天下

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