- A+
经过几天的折腾,求点的偏移坐标,说起偏移,首选我们先看看系统偏移的原理是什么,CAD自身的偏移是偏移图形,单独的偏移一个点,那是不现实的,所有说,要想偏移点,必须要使用图形,比如两条直线的交点,这个交点上面就有5个信息,两条直线的起始点和终点,分别得出先的角度,和交点,,使用这几条信息,在利用三角函数即可求出偏移点的长度,知道偏移长度,在以交点作为圆心,和两条线的夹角平分角,用函数polar,即可得到一个点,这个点就是偏移的点,
这里我写的了一函数,使用方法, 点的形式为3角形,点P2为三角形的顶点,p1 ,p2为三角形的起始和终点,pj为,偏移距离。
这里只粘贴计算夹角为尖角的三角线形,要是为圆弧到角后的偏移,需要计算圆心在以圆心计算偏移点,
;求直线夹角偏移点
(defun line1-py1-bk(q1 q2 q3 pj / a1 a2 ang angr bbj)
(setq A1 (angle q2 q1);弧度
A2 (angle q2 q3))
(cond
((> A1 A2)(setq ang(+ A2 (- (* 2 pi) A1))))
((< A1 A2)(setq ang(- A2 A1)) )
(T nil)
)
(setq ang (/(*(/ ang pi)180)2);角度值
angr(+ a1 (*(/ pi 180.0) ang));弧度值
bbj (/ pj(sin (*(/ pi 180.0) ang)));r
ang(polar q2 angr bbj);点
)
ang
)
复制
要是报错,请留言,测试为顺时针图形,偏移为负数时,偏移往外,正数往里。
要是想批量计算,思路是先把图形变成多段线,在依次循环读取坐标,在批量循环计算偏移坐标函数即可,
圆弧偏移坐标,其实上面代码可以直接提取出来。