乐筑天下

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

[编程交流] 如何使lisp命令

[复制链接]

96

主题

322

帖子

234

银币

后起之秀

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

铜币
474
发表于 2022-7-5 20:24:21 | 显示全部楼层 |阅读模式
如何在一个lisp命令中一个接一个地为选定的PLINE和测量命令它们??
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 20:33:25 | 显示全部楼层
为了清晰起见,您需要一个lisp例程,该例程允许用户一次选择(比如说)十行,并报告每行的长度,而不是所有十行的总长度。是这样吗?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:41:52 | 显示全部楼层

 
  1. (defun c:Test (/ o)
  2. ;;    Tharwat 07.01.2014    ;;
  3. (princ "\n Pick a Polyline or Line :")
  4. (while
  5.    (setq o (ssget "_+.:S:E" '((0 . "*POLYLINE,LINE"))))
  6.     (princ (strcat "Total length of object : < " (rtos (vlax-curve-getdistatpoint (ssname o 0) (vlax-curve-getendpoint (ssname o 0))) 2 4) " > " ))
  7. )
  8. (princ)
  9. )
回复

使用道具 举报

26

主题

210

帖子

184

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 20:42:28 | 显示全部楼层
尝试
  1. (defun c:test (/ CNT DIST ENT SS)
  2. ;m badran
  3. (setq ss (ssget '((0 . "LWPOLYLINE,POLYLINE,SPLINE,LINE,ARC"))))
  4. (setq dist (getdist "\nEnter Dist:"))
  5. (setq cnt 0)
  6. (while
  7.    (setq ent (ssname ss cnt))
  8.     (command "MEASURE" ent dist (setq cnt (+ 1 cnt)))
  9. )
  10. (princ)
  11. )
回复

使用道具 举报

96

主题

322

帖子

234

银币

后起之秀

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

铜币
474
发表于 2022-7-5 20:49:20 | 显示全部楼层
嗨,伙计们
实际上,我的问题是关于在上面放置块的测量命令。我使用lisp代码选择pline并在其上附加块。。
现在我想用lisp代码,通过ssget命令lisp在绘图中选择一些pline,并在其上放置逐块测量命令。
感谢您的帮助
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:54:56 | 显示全部楼层
与手动输入相比,请查看此行
 
  1. ;(command "MEASURE" ent dist (setq cnt (+ 1 cnt)))
  2. ;try
  3. (command "-MEASURE" ent "b" blockname rot dist)
  4. (setq cnt (+ 1 cnt)))

您需要为blockname添加行,并旋转yes或no
回复

使用道具 举报

26

主题

210

帖子

184

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 21:01:06 | 显示全部楼层
好的试试这个
HTH。
  1. (defun c:mob(/ BLOCKNAME CNT DIST ENT SS YES-NO )
  2. ;m badran
  3. (setq blockname(getstring "\nEnter block name:"))
  4.    (initget 1 "Yes No")
  5. (setq Yes-No(getkword "\nAlign block with object? [Yes/No]: "))
  6. (setq ss (ssget '((0 . "LWPOLYLINE,POLYLINE,SPLINE,LINE,ARC"))))
  7. (setq dist (getdist "\nEnter Dist:"))
  8. (setq cnt 0)
  9. (while
  10.    (setq ent (ssname ss cnt))
  11.     (command "_MEASURE" ent "b" blockname Yes-No dist)
  12. (setq cnt (+ 1 cnt))
  13. )
  14. (gc)
  15. (princ)
  16. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 21:07:57 | 显示全部楼层
不确定是否在变量名中使用/也许是否更好。
回复

使用道具 举报

26

主题

210

帖子

184

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 21:17:14 | 显示全部楼层
 
谢谢比格尔的建议,我以后会考虑的。
回复

使用道具 举报

96

主题

322

帖子

234

银币

后起之秀

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

铜币
474
发表于 2022-7-5 21:21:26 | 显示全部楼层
Thanxxxxxxxxxxxx mostafa badran和bigal以及其他人
你的日常活动是Okkkkkkkkkkkkkk
非常感谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 08:55 , Processed in 0.462697 second(s), 72 queries .

© 2020-2025 乐筑天下

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