乐筑天下

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

[编程交流] 向下取整多边形区域并添加

[复制链接]

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:43:32 | 显示全部楼层 |阅读模式
你好
我对lisp例程一无所知,一直在努力学习。我希望这里的人能乐意帮我写一篇。
首先,我为勘测员工作,必须计算地层平面图的单位面积。我们总是将面积向下舍入,因此内部面积为28.8的单元将被称为28+阳台7.2(称为7)+车位13.6(13),(因此28+7+13)
我使用多边形创建区域,并始终添加一个字段供测量员检查。
我想要的是一个lisp例程,在这里我可以为每个地块拾取和添加多边形,为我拾取的每个多边形向下舍入区域。
 
我在Acad讨论中找到了下面的代码,我认为这应该是一个很好的起点,但我从此迷失了方向
 
(定义C:AA()
(setq对象(car(entsel“\n选择区域多段线:”))
(if(equal(vlax curve getStartPoint AoObject)(vlax curve getEndPoint AoObject)1e-
(编程;然后
(命令“area”“e”A对象)
(setq Tarea(rtos(/(getvar“area”)1000000.0)2 0)
(setq总面积(strcat Tarea“sqm”))
(警报总面积)
); 结束程序
(警告“多段线未闭合。”);其他的
); 如果结束
(普林斯)
); 结束defun
{code}
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:01:14 | 显示全部楼层
只需使用fix将其转换为整数。
如。
  1. (fix <Real>)

 
哦,是的,还有:代码张贴礼仪
回复

使用道具 举报

44

主题

542

帖子

502

银币

后起之秀

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

铜币
220
发表于 2022-7-6 10:08:52 | 显示全部楼层
为什么你要把28.8的面积缩小到28???我理解土地管理不应该按话算四舍五入,尽管为什么不改为28.5?
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 10:20:54 | 显示全部楼层
可能需要
  1. ;;Rounding By John W. Anstaett
  2. ;;use (rounding mynumber roundto offset)
  3. ;;mynumber this is the number you need to round off
  4. ;;Roundto is the number to roundto
  5. ;;offset set to 0 will roundto to next lower number
  6. ;;offset set to 1 will next higher number
  7. ;;offset set to 0.5 will be to nerest number
  8. ;;exp (rounding 12.1 5 1)  return 15
  9. ;;exp (rounding 12.1 5 0) return 10
  10. ;;exp (rounding 12.49 5 0.5) reutne 10
  11. ;;exp (rounding 12.5 5 0.5) return 15
  12. ;; exp (rounding 0.68 0.25 0.5) return 0.75
  13. (defun rounding  (mynumber roundto offset)
  14. (setq temp
  15. (*(fix  (+ (/ mynumber roundto) offset )) roundto)
  16. )
  17. )

使用
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:25:38 | 显示全部楼层
这些可能有助于:
 
http://lee-mac.com/totallengthandarea.html
 
关于舍入:
 
示例:
 
  1. _$ (LM:Round 2.6)
  2. 3
  3. _$ (LM:Round 2.4)
  4. 2
  5. _$ (LM:Roundto 2.62571 1)
  6. 2.6
  7. _$ (LM:Roundto 2.62571 2)
  8. 2.63
  9. _$ (LM:Roundto 2.62571 3)
  10. 2.626
  11. _$ (LM:Roundto 2.62571 4)
  12. 2.6257
  13. _$ (LM:Roundto 2.62571 5)
  14. 2.62571

 
或者,要获得小于面积的最大整数,请按照Alan的建议使用fix。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:35:04 | 显示全部楼层
此外,如果需要实数而不是整数,则可以浮动LM:Round例程的返回值。
 

 
  1. 4
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:44:57 | 显示全部楼层
谢谢你的回复。将有一个发挥,并希望得到一些工作
 
至于取整,我们只使用整数。我们四舍五入,主要是因为人们使用我们的计划来出售公寓,最好告诉别人他们购买28平方米的内部公寓,让他们得到更多,然后说你购买了29平方米&实际上更少。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 23:13 , Processed in 0.814143 second(s), 77 queries .

© 2020-2025 乐筑天下

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