Costinbos77 发表于 2022-7-6 06:46:28

偏移问题或几何形状

当做
 
有人知道如何在知道坐标P1、P2、P3、P4和距离d1、d2、d3的情况下计算点O1、O2、O3、O4吗?
 

它实际上是一段直径不同的管道。
 
提前感谢

MSasu 发表于 2022-7-6 06:53:17

请记住,您必须通过移动垂直于原始对象的点来计算偏移。
 
参考下图:如果您知道点P1a和P2a,则可以计算直线的角度-参见角度函数;接下来,使用极性函数分别计算P1b、P2b、偏移距离和计算出的角度,将向其中添加90度。对另一侧执行相同操作(注意偏移的一侧)。
 
 
要获得两个偏移的交点,请检查INTERS函数并使用刚刚计算的四个点。
 
请检查草图上的点O1不能通过偏移直接获得,这将需要一些额外的约束。

Costinbos77 发表于 2022-7-6 06:57:22

谢谢你的回复。
 
我对O2特别感兴趣,
因为它位于两个不同的距离之间:d1和d2。

MSasu 发表于 2022-7-6 07:02:58

计算两条偏移线后,使用INTERS函数获得O2点。

MSasu 发表于 2022-7-6 07:06:01

也许这会让事情变得更清楚:
(setq dist1st 5.0
   dist2nd 7.5)

(setq pointP1 (getpoint)
   pointP2 (getpoint)
   pointP3 (getpoint))

(setq angle1st (angle pointP1 pointP2)
   angle2nd (angle pointP2 pointP3))

(setq pointO1(polar pointP1 (+ angle1st (* 0.5 pi)) dist1st)
   pointO2a (polar pointP2 (+ angle1st (* 0.5 pi)) dist1st)
   pointO2b (polar pointP2 (+ angle2nd (* 0.5 pi)) dist2nd)
   pointO3(polar pointP3 (+ angle2nd (* 0.5 pi)) dist2nd))

(setq pointO2 (inters pointO1 pointO2a pointO2b pointO3 nil))

(command "_LINE" "non" pointO1 "non" pointO2 "non" pointO3 "")

Costinbos77 发表于 2022-7-6 07:12:06

谢谢MSasu,我完成了主题#1。
 
提出的想法有点费劲,因为我有几个点类型O2,O3,但很好。

BIGAL 发表于 2022-7-6 07:15:29

查看绘制墙。lsp或多行。lsp您可以在没有inters的情况下计算平行线。
 
我会粘贴代码,但它是复制的。它绘制了2或4条线。

Costinbos77 发表于 2022-7-6 07:19:01

我找到了一些你说的,谢谢你的想法。

Lee Mac 发表于 2022-7-6 07:24:48

我在多段线大纲程序中使用inters功能(如上面MSasu所述)执行此任务,您可能会发现它很有用。

Costinbos77 发表于 2022-7-6 07:28:52

非常感谢李。
页: [1] 2
查看完整版本: 偏移问题或几何形状