乐筑天下

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

[编程交流] Autolisp帮助

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 06:13:18 | 显示全部楼层 |阅读模式
有人知道如何创建一个lisp来导出包含对象数据和坐标的csv文件吗?
 
实例
 
od字段1、od字段2等。。。x1、y1、z1、x2、y2、z2等。。。。
 
理想情况下,它应该能够报告所有对象数据字段,无论其数量如何。它应该报告多段线的所有xyz坐标。
 
我还需要一个lisp从上述格式导入csv文件。
 
如果你好奇,这一切都是为了解决map3d在导出形状文件时设置的4个坐标限制。。。如果有人有另一种解决方法,我洗耳恭听!
 
Dalivore公司
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 06:36:14 | 显示全部楼层
不确定某处是否已经有这样一个。我知道有很多CSV导出和导入的东西,但如果它们特定于C3D/地图实体数据,我肯定不知道。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 06:40:07 | 显示全部楼层
一个旧的解决方案称为DXF文件,包含所有对象数据和co ORD及其简单的文本文件!
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 06:54:59 | 显示全部楼层
我有一些东西埋在档案里。。。让我找到它。这是相当困难的,因为我总是命名我的代码随机当我开始。。。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 07:12:26 | 显示全部楼层
此外,如果你有一个示例dwg,我可以用。。。那太棒了。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 07:17:55 | 显示全部楼层
不完美,但。。。
 
  1. (defun c:objectDataExtract(/ coordslist count ent f fieldnames fieldstring path ss ssents strcatlst tablelist x z)
  2. (vl-load-com)
  3. (if (and (setq path (getfiled "Specify .CSV file name:"
  4.    (getvar 'dwgprefix)
  5.    "csv"
  6.    1
  7.    )
  8.   )
  9.    
  10.    (setq ss (ssget "x")); SELECT EVERYTHING
  11.    (setq ssEnts (vl-remove-if-not 'ade_odgettables (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))));Filter out only that which has a table attached to it
  12.        (progn
  13.      (setq f (open path "w"))
  14.      (foreach ent ssents
  15. (setq tablelist (ade_odgettables ent))
  16. (setq count 0)
  17. (repeat (length tablelist)
  18.   (foreach def (cdr (assoc "Columns" (ade_odtabledefn (nth count tablelist))))
  19.     (if (not (member (cdr (assoc "ColName" def)) fieldnames))
  20.       (setq fieldnames (cons (cdr (assoc "ColName" def)) fieldnames))
  21.       )
  22.     )
  23.   
  24.   )
  25. (setq strcatlst
  26.        (apply 'strcat (mapcar '(lambda (x)
  27.      (strcat x ": " (If (/= (type (setq fieldstring (ade_odgetfield ent (ade_odgettables ent) x 0))) 'STR)
  28.         (rtos fieldstring 2 2)
  29.         fieldstring) ",")) fieldnames)))
  30. (setq coordsList (apply 'strcat (mapcar '(lambda (z) (strcat (rtos z 2) ",")) (vlax-get (vlax-ename->vla-object ent) 'Coordinates))))
  31. (write-line (strcat strcatlst coordsList) f)
  32. )
  33.      (setq f (close f))
  34. )))
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:46 , Processed in 0.429957 second(s), 64 queries .

© 2020-2025 乐筑天下

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