乐筑天下

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

[编程交流] 将属性导出到txt(litle

[复制链接]

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-6 06:15:19 | 显示全部楼层 |阅读模式
我在论坛上找到了这个代码lisp
 
  1. (defun c:att2file ()
  2. (setq File1 (getfiled "File name" "" "txt" 1))
  3. (setq Fopen (open File1 "w"))
  4. (princ "\nSelect blocks to write att coords: ")
  5. (setq BlockSet (ssget '((0 . "INSERT") (66 . 1))))
  6. (setq Ecount 0)
  7. (repeat (sslength BlockSet)
  8.     (setq Bname (ssname BlockSet Ecount))
  9.     (setq Blabel (cdr (assoc 2 (entget Bname))))
  10.     (setq AttName (entnext Bname))
  11.     (setq AttData (entget AttName))
  12.     (setq TxtIns (cdr (assoc 10 AttData)))
  13.     (setq Xtxt (rtos (car TxtIns) 2 4))
  14.     (setq ytxt (rtos (cadr TxtIns) 2 4))
  15.     (setq XY_Txt (strcat Blabel " " xtxt "," ytxt))
  16.     (write-line XY_Txt Fopen)
  17.     (setq Ecount (1+ Ecount))
  18. )
  19. (close Fopen)
  20. (princ)
  21. )

 
当我导出坐标时,会得到这样的txt文件
 
 
问题是我需要一个文件
 
 
这是我的街区。
 
这可能吗?
 
谢谢
指向图纸
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 06:21:08 | 显示全部楼层
如果您对例程感到满意,只需从例程中删除突出显示的代码。
 
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-6 06:24:29 | 显示全部楼层
我把它们去掉,但现在结果不是P,X,Y,只有X,Y。我需要P,X,Y。
 
  1. (defun c:att2file ()
  2. (setq File1 (getfiled "File name" "" "txt" 1))
  3. (setq Fopen (open File1 "w"))
  4. (princ "\nSelect blocks to write att coords: ")
  5. (setq BlockSet (ssget '((0 . "INSERT") (66 . 1))))
  6. (setq Ecount 0)
  7. (repeat (sslength BlockSet)
  8.     (setq Bname (ssname BlockSet Ecount))
  9.     (setq AttName (entnext Bname))
  10.     (setq AttData (entget AttName))
  11.     (setq TxtIns (cdr (assoc 10 AttData)))
  12.     (setq Xtxt (rtos (car TxtIns) 2 4))
  13.     (setq ytxt (rtos (cadr TxtIns) 2 4))
  14.     (setq XY_Txt (strcat " " xtxt "," ytxt))
  15.     (write-line XY_Txt Fopen)
  16.     (setq Ecount (1+ Ecount))
  17. )
  18. (close Fopen)
  19. (princ)
  20. )

 
我发现,坐标不正确!!有什么想法吗
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 06:25:59 | 显示全部楼层
你说的P,X,Y是什么意思?
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-6 06:29:07 | 显示全部楼层
P、 点的个数,1,2,3,k1,s1,t1任意
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-6 06:32:54 | 显示全部楼层
这是我观点的一个例子。
 
我最好将导出更新为
 
P、 X,Y,Z
 
1, 58.262 ,191.538 ,100
.
.
.
S1,80.776194.665,99.23
.
.
.
测试。图纸
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 06:36:42 | 显示全部楼层
试试这个新的程序。。
 
  1. (defun c:Test (/ f ss o i n sn pt e p)
  2. ;;     Tharwat 11.08.2013    ;;
  3. (if (and (setq f (getfiled "File name" "" "txt" 1))
  4.           (setq ss (ssget '((0 . "INSERT") (66 . 1))))
  5.           (setq o (open f "w"))
  6.      )
  7.    (progn
  8.      (repeat (setq i (sslength ss))
  9.        (setq n  (entnext (setq sn (ssname ss (setq i (1- i)))))
  10.              pt (cdr (assoc 10 (entget sn)))
  11.        )
  12.        (while (not (eq (cdr (assoc 0 (setq e (entget n)))) "SEQEND"))
  13.          (if (and (eq (cdr (assoc 0 e)) "ATTRIB")
  14.                   (eq (strcase (cdr (assoc 2 e))) "POINT")
  15.              )
  16.            (setq p (cdr (assoc 1 e)))
  17.          )
  18.          (setq n (entnext n))
  19.        )
  20.        (if p
  21.          (write-line
  22.            (strcat p
  23.                    ","
  24.                    (rtos (car pt) 2)
  25.                    ","
  26.                    (rtos (cadr pt) 2)
  27.                    ","
  28.                    (rtos (caddr pt) 2)
  29.            )
  30.            o
  31.          )
  32.        )
  33.      )
  34.      (close o)
  35.    )
  36. )
  37. (princ)
  38. )
回复

使用道具 举报

1

主题

19

帖子

18

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 06:39:32 | 显示全部楼层
塔尔****,
 
您可以为带有描述的导出制作一个类似但不同的Lisp,并让它使用点#、北距(Y)、东距(X)、高程(Z)和描述吗?[P,N,E,Z,D]
 
谢谢
预计起飞时间
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 06:41:44 | 显示全部楼层
 
为什么?
回复

使用道具 举报

1

主题

19

帖子

18

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 06:45:01 | 显示全部楼层
我不知道为什么会这样?我把你的全名打成了塔瓦。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:31 , Processed in 0.361488 second(s), 72 queries .

© 2020-2025 乐筑天下

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