乐筑天下

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

[编程交流] Lisp用于导出文本和l

[复制链接]

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:34:14 | 显示全部楼层 |阅读模式
大家好,
我无法将行的长度添加到csv。
183419fvuscfrqmuzuvfu8.jpg
我想这样提取:
K5172,60/60720
 
 
有人能帮我处理这个代码吗?
 
  1. (defun c:rp2 (/ ent1 ent2 ent3 len fh fname)
  2. (setq fname (strcat (getvar "dwgprefix") (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4 )) ".csv")
  3.           fh (open fname "a")
  4. )
  5. (command "_-LAYER" "_M" "SELECTED" "_C" 2 "" "")
  6. (while (setq en1 (car (entsel "\nPick Text: ")))
  7.    (setq ent1  (entget en1)
  8.          ent1  (subst (cons 8 "SELECTED") (assoc 8 ent1) ent1)
  9.    )
  10.    (entmod ent1)
  11.    (setq en2 (car (entsel "\nPick another text: ")))
  12.    (setq ent2  (entget en2)
  13.          ent2  (subst (cons 8 "SELECTED") (assoc 8 ent2) ent2)
  14.    )   
  15.    (entmod ent2)
  16. (setq en3 (car (entsel "\nPick the line: ")))
  17.    (setq ent3  (entget en3)
  18. len (distance
  19. (cdr (assoc 10 ent3)) (cdr (assoc 11 ent3)) )
  20. )
  21.    
  22.    (write-line (strcat (cdr (assoc 1 ent1)) ", "  (cdr (assoc 1 ent2))) fh)
  23. )
  24. (princ (strcat "\nFile: " fname " Created."))                                               
  25. (close fh)
  26. )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:46:12 | 显示全部楼层
添加此部分:
  1. (write-line (strcat (cdr (assoc 1 ent1)) ", "  (cdr (assoc 1 ent2)) [color="blue"]", " (rtos len 2 4)[/color]) fh)
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:51:22 | 显示全部楼层
谢谢它起作用了
 
如何定义多段线的长度和面积?
 
我只想单击一条多段线,它会将其长度和面积导出为csv。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:59:39 | 显示全部楼层
不客气。
 
 
请尝试以下操作,并希望您能够将其添加到代码中:
 
  1. (if (and (setq s (car (entsel "\nSelect Polyline :")))
  2.         (= (cdr (assoc 0 (entget s))) "LWPOLYLINE")
  3.         )
  4.    (setq lgth (vlax-curve-getdistatparam s (vlax-curve-getendparam s))
  5.          area (vlax-curve-getarea s)
  6.          )
  7. (princ "\nNull selection or object is not a LWpolyline !")
  8. )
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:01:40 | 显示全部楼层
它给出了一个错误。
  1. Pick Text:
  2. Pick another text:
  3. Pick the line:
  4. Select Polyline :; error: no function definition: [color="blue"]VLAX-CURVE-GETENDPOINT[/color]

 
我不需要“if循环”,因为我所有的多段线都是闭合的。(如图所示) 183421lba7wwuq1a7e1nqw.jpg
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:09:46 | 显示全部楼层
只需添加以下函数即可在例程的顶部或末尾加载VL*函数库。
  1. (vl-load-com)
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:20:52 | 显示全部楼层
 
感谢您的关注。除了长度外,它都有效。它给出了闭合多段线的长度0.0000。
我需要闭合多段线的长度代码
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:21:42 | 显示全部楼层
抱歉,我修改了代码,请重试。
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:33:05 | 显示全部楼层
谢谢
 
你是个很棒的程序员
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:40:50 | 显示全部楼层
 
非常欢迎你。
 
你这么说真是太好了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-19 05:07 , Processed in 2.516432 second(s), 76 queries .

© 2020-2025 乐筑天下

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