乐筑天下

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

[编程交流] 任何人都可以控制这个区域

[复制链接]

5

主题

15

帖子

10

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 20:21:56 | 显示全部楼层 |阅读模式
嗨,朋友们
 
 
这是一种非常有用的lsp,用于面积计算,但在我的新CAD中不起作用。有人能告诉我这个lsp出了什么问题吗?
 
 
 
(定义C:自动区域(/N SS1 NUM EN)
(如果(不是“acadapp.exp”)(xload“acadapp.exp”))
(setq N 0)
(setq SS1(ssadd))
(while(setq PT(getpoint“\n选择内部点:”))
(C:BPOLY PT)
(setq SS1(ssadd(entlast)SS1))
);虽然
(setq NUM(sslength SS1))
(命令“.a”“e”区)
;  (命令“.e”区)
(while(/=NUM N)
(setq EN(ssname SS1 N))
(命令EN)
(setq区域(getvar“区域”))
(setq区域AC(/区域4046.85))
(setq区域SF(*区域10.7639))
(普林斯
(strcat(rtos区域2 2)“m”(chr 178“\t”(rtos区域ac 2 3)“ac.”“\t”(rtos区域SF 2 0)“ft”(chr 178)
);    普林斯
(setq N(1+N))
);虽然
(命令“”)
(命令“erase”SS1“”)
(命令“redraw”)
(setq SS nil)
(命令“textscr”)
(prin1)
);结束自动区域。lsp
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 20:38:48 | 显示全部楼层
请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
 
您真的在使用“AutoCAD LT 2000之前”吗?
 
如果是这样,AutoCAD LT将无法使用LISP。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 21:03:49 | 显示全部楼层
直接从多段线获取面积
 
这一行有多个错误检查chr 1st,如果你最后得到一个微笑,那么隐藏的东西就在那里。
(strcat(rtos区域2 2)“m”(chr 178“\t”(rtos区域ac 2 3)“ac.”“\t”(rtos区域SF 2 0)“ft”(chr 178)
);
 
  1. (setq area (vlax-get-property (vlax-ename->vla-object en) 'Area))
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 21:07:19 | 显示全部楼层
请使用代码标签防止笑脸
  1. (defun C:AUTOAREA (/ N SS1 NUM EN )
  2. ;;;(if (not "acadapp.exp") (xload "acadapp.exp"))
  3. (setq N 0)
  4. (setq SS1 (ssadd))
  5. (while (setq PT (getpoint "\nSelect internal point:"))
  6. (BPOLY PT)
  7. (setq SS1 (ssadd (entlast) SS1))
  8. );while
  9. (setq NUM (sslength SS1))
  10. ;;;(command ".area" "a" "e") ;removed
  11. ; (command ".area" "e")
  12. (while (/= NUM N)
  13. (setq EN (ssname SS1 N))[color="red"]
  14. (setq area (vlax-get-property (vlax-ename->vla-object EN ) 'Area)) ;as suggested by BIGAL[/color]
  15. ;;;(command EN) ;removed
  16. ;;;(setq area (getvar "area")) ;removed
  17. (setq areaac (/ area 4046.85))
  18. (setq areasf (* area 10.7639))
  19. (princ
  20. [color="red"](strcat "\n"(rtos area 2 2) "m" (chr 178) "\t" (rtos areaac 2 3) "ac." "\t" (rtos areasf 2 0) "ft" (chr 178))[/color]
  21. ); princ
  22. (setq N (1+ N))
  23. );while
  24. ;;;(command "" "") ;removed
  25. (command "erase" SS1 "")
  26. (command "redraw")
  27. (setq SS nil)
  28. (command "textscr")
  29. (prin1)
  30. );end autoarea.lsp

 
你的习惯太老了?尝试高级
面积标签
区域到字段
回复

使用道具 举报

5

主题

15

帖子

10

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 21:25:03 | 显示全部楼层
对不起,朋友们。下次我会去掉笑容
事实上,我使用R14,但我的公司最近升级了CAD系统。许多旧的LSP在新的CAD中不能很好地工作。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 09:15 , Processed in 0.742580 second(s), 62 queries .

© 2020-2025 乐筑天下

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