找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1800|回复: 5

[研讨] API应用 Pline中直线与弧段倒角算法

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-12-13 01:25:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 st788796 于 2013-12-13 07:08 编辑

首先本程序是基于图示Pline方向, r = 6.0 倒角成立的基础上,仅提供算法上的参考,不作为通用程序
由此也可以判断是否存在指定的倒角,
1 切点分别不超出直线段和弧线段
2 中间三角形成立
不知道Autodesk为什么不加入 Fillet!
  1. (defun c:tt (/ e e1 r pl arcseg lnseg dis d p p1 p2 p3 pcen sp ep)
  2.   (if (and (setq e (entsel "\n选择弧线段: "))
  3.            (setq e1 (entsel "\n选择直线段: "))
  4.            (setq r (getdist "\n半径: "))
  5.       )
  6.     (progn
  7.       (setq pl            (car e)
  8.             arcseg  (fix (apply 'xdrx_curve_getparamatpoint e))
  9.             lnseg   (fix (apply 'xdrx_curve_getparamatpoint e1))
  10.             arcinfo (xdrx_polyline_getarcsegat pl arcSeg) ;_(逆顺时针 圆心 半径 起始角 终止角)
  11.             lninfo  (xdrx_polyline_getlinesegat pl lnseg) ;_(起点 终点)
  12.             pcen    (cadr arcinfo)
  13.             sp            (car lninfo)
  14.             ep            (cadr lninfo)
  15.             an (angle sp ep)
  16.             dis            (abs (xdrx_point_dist2line pcen sp ep))
  17.             d            (sqrt (- (expt (+ (caddr arcinfo) r) 2) (expt (- dis r) 2)))
  18.             p            (inters
  19.                       pcen
  20.                       (polar pcen (+ an (* pi 0.5)) r)
  21.                       sp
  22.                       ep
  23.                       nil
  24.                     );_圆心在直线上投影点
  25.             p1            (polar p (+ an pi) d);_直线段切点
  26.             p2            (polar p1 (- an (* 0.5 pi)) r);_center
  27.             p3            (xdrx_curve_getinters (list p1 pcen) pl);_弧上起点
  28.       )
  29.       (xdrx_circle_make p2 r)
  30.     )
  31.   )
  32.   (princ)
  33. )
plfillet.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-12-13 01:42:19 | 显示全部楼层
本帖最后由 st788796 于 2013-12-13 01:45 编辑

另外一种情况
fillet2.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-12-13 08:18:59 | 显示全部楼层
外尖角处弧与直线关系,直线和端点与圆心连线夹角小于 90 度时就产生自相交
plarc.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-12-13 14:30:29 | 显示全部楼层
这是想干嘛啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-12-13 15:19:46 来自手机 | 显示全部楼层
看来没人对这个感兴趣
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-12-13 21:27:48 | 显示全部楼层
看了会,没有怎么看懂!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-27 19:00 , Processed in 0.439918 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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