图形坐标偏移计算,三角形坐标偏移,一键夹角计算lisp代码,直线偏移点

  • A+
所属分类:CAD二次开发

经过几天的折腾,求点的偏移坐标,说起偏移,首选我们先看看系统偏移的原理是什么,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
)

复制

 

要是报错,请留言,测试为顺时针图形,偏移为负数时,偏移往外,正数往里。

要是想批量计算,思路是先把图形变成多段线,在依次循环读取坐标,在批量循环计算偏移坐标函数即可,

圆弧偏移坐标,其实上面代码可以直接提取出来。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: