明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1005|回复: 8

[提问] 【求助】 自行调整面积

[复制链接]
发表于 2023-11-26 15:08:10 | 显示全部楼层 |阅读模式
跟各位大佬请教一下,如果我任意画了一个闭合的多边形,假设查看其面积为8653.31。我想输入一个指定的面积,并选择一个指定的顶点让该顶点自行调整,使得调整后的多边形面积与输入的面积相等。想达到这样的效果该往哪方面考虑呢?
发表于 2023-11-26 19:31:06 | 显示全部楼层
调整顶点在高线 上的位置即可
发表于 2023-11-26 20:34:06 | 显示全部楼层
我也想实现这个功能,但是不知道如何实现
发表于 2023-11-26 22:26:41 | 显示全部楼层
一个边还可以平移,一个点怎么调整啊?原则是什么
发表于 2023-11-27 07:39:36 | 显示全部楼层
1.用entsel点取指定顶点,获取多段线同时获取指定顶点坐标(离点取点最近的点);
2.获取多段线面积,如果输入面积大于多段线面积则多段线外扩否则内收;
3.外扩或内收的一个思路是可以先获取多段线质量中点,连接质量中点和指定顶点生成一直线,则不管外扩或者内收后的新顶点都在这条直线上,然后循环在这条直线上每次步进一个值,生成新顶点,不断测试新的多段线面积是否满足要求,满足要求则退出循环(适合比较规则的多段线,如果是复杂多段线质心不在多段线内部的就不行);
4,理论上来说只要输入的步进值足够小,是可以得出一条很接近输入面积的多段线,但是步进值越小程序运行时间会越长,另外一个思路是输入一个允许容差值,当新生成多段线面积与输入面积之间的差值小于等于容差值时则认为满足要求。
发表于 2023-11-27 09:18:20 | 显示全部楼层
1、取得多边开面积M;2、求多边形面积与设定面积的比例K;3、确定基准P;4、以P为基准点按K值缩放多边形。

评分

参与人数 1明经币 +1 收起 理由
xyp1964 + 1 赞一个!

查看全部评分

发表于 2023-11-27 10:08:11 | 显示全部楼层
发表于 2023-11-27 16:25:27 | 显示全部楼层
以该点的两相邻点的距离为底(三角形底边),调整该点到底的距离,使三角形的面积变化正好等于目标面积与原多边形的面积差。
发表于 2023-11-27 19:25:32 | 显示全部楼层
  1. ;|
  2. (abc (setq s1 (car (entsel "\n选择多段线: ")))
  3.      (setq p0 (getpoint "\n缩放基点<退出>: "))
  4.      2000000
  5. )
  6. |;
  7. (defun abc (pl pt aa / a0 ob sc)
  8.   "多段线缩放到指定面积"
  9.   (setq a0 (vla-Get-area (setq ob (vlax-ename->vla-object pl)))
  10.         sc (sqrt (/ aa a0 1.))
  11.   )
  12.   (command "Scale" pl "" "non" pt sc)
  13. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-27 17:31 , Processed in 0.150899 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表