找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1769|回复: 6

[曲线] 两圆公切线

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2018-11-18 19:22:39 | 显示全部楼层 |阅读模式
  • 插件名称 : 两圆公切
  • 作  者 : Lispboy
  • 运行环境 :XDRX API 晓东工具箱 
  • 发布时间 :2018-11-18
  • 命令名称 :xdtb_cir2tan
  • 插件介绍 :两圆公切线
  • 备  注 : (点击图片可以放大)
(点击图片可以放大)

晓东温馨提示 1、运行环境为 晓东工具箱XDRX API 的插件,请下载最新版本的 晓东工具箱XDRX API开发环境 一键安装
2、在ACAD中如何加载插件,请看 论坛插件使用方法
3、如果您有要求需要定制插件,请到 编程申请 论坛发帖求助

插件详细内容

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

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

×
  1. (defun c:xdtb_cir2tan (/           ss         c1    c2    cen1  cen2         dir   dir1  dir2
  2.              p1           p2         g1    g2    pa1   pa2         pa-1  pa-2  gl1
  3.              gl2   sp1         ep1   sp2   ep2   arc1         arc2
  4.             )
  5.   (if (and (xdrx_initssget "\n选择两个圆<退出>:")
  6.            (setq ss (xdrx_ssget '((0 . "circle"))))
  7.            (= (sslength ss) 2)
  8.       )
  9.     (progn
  10.       (xdrx_begin)
  11.       (setq c1         (ssname ss 0)
  12.             c2         (ssname ss 1)
  13.             cen1 (xdrx_getpropertyvalue c1 "center")
  14.             cen2 (xdrx_getpropertyvalue c2 "center")
  15.             int1 (xdrx_get_inters c1 (list cen1 cen2) 3)
  16.             int2 (xdrx_get_inters c2 (list cen1 cen2) 3)
  17.             int3 (mapcar 'car
  18.                          (xdrx_points_sortoncurve
  19.                            (list cen1 cen2)
  20.                            (append int1 int2)
  21.                          )
  22.                  )
  23.             dir         (xdrx_vector_normalize (mapcar '- cen1 cen2))
  24.             dir1 (xdrx_vector_perpvector dir)
  25.             dir2 (xdrx_vector_negate dir1)
  26.             p1         (xdrx_get_inters c1 (list cen1 (mapcar '+ cen1 dir1)) 3)
  27.             p2         (xdrx_get_inters c2 (list cen2 (mapcar '+ cen2 dir1)) 3)
  28.             p1         (mapcar 'car
  29.                          (xdrx_points_sortoncurve
  30.                            (list cen1 (mapcar '+ cen1 dir1))
  31.                            p1
  32.                          )
  33.                  )
  34.             p2         (mapcar 'car
  35.                          (xdrx_points_sortoncurve
  36.                            (list cen2 (mapcar '+ cen2 dir1))
  37.                            p2
  38.                          )
  39.                  )
  40.             g1         (xdge::constructor c1)
  41.             g2         (xdge::constructor c2)
  42.             pa1         (xdge::getpropertyvalue g1 "paramof" (car p1))
  43.             pa2         (xdge::getpropertyvalue g1 "paramof" (cadr p1))
  44.             pa-1 (xdge::getpropertyvalue g2 "paramof" (car p2))
  45.             pa-2 (xdge::getpropertyvalue g2 "paramof" (cadr p2))
  46.             gl1         (xdge::constructor "klineseg3d")
  47.             gl2         (xdge::constructor "klineseg3d")
  48.       )
  49.       (if (and (xdge::setpropertyvalue gl1 "set" g1 g2 pa1 pa-1)
  50.                (xdge::setpropertyvalue gl2 "set" g1 g2 pa2 pa-2)
  51.           )
  52.         (progn
  53.           (mapcar 'set
  54.                   '(sP1 eP1)
  55.                   (xdge::getpropertyvalue gl1 "startpoint" "endpoint")
  56.           )
  57.           (mapcar 'set
  58.                   '(sP2 eP2)
  59.                   (xdge::getpropertyvalue gl2 "startpoint" "endpoint")
  60.           )
  61.           (setq
  62.             arc1 (xdge::constructor "kCircArc3d" sp1 (car int3) sp2)
  63.           )
  64.           (setq
  65.             arc2 (xdge::constructor "kCircArc3d" ep1 (last int3) ep2)
  66.           )
  67.           (xdrx_curve_join (xdge::entity:make gl1 gl2 arc1 arc2))
  68.           (xdrx_entity_matchprop c1 (entlast))
  69.           (xdrx_entity_delete ss)
  70.         )
  71.         (xdrx_prompt "\n >>两圆没有公切线.")
  72.       )
  73.       (xdrx_end)
  74.     )
  75.     (xdrx_prompt "\n >>没有选择到两个圆.")
  76.   )
  77.   (princ)
  78. )


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

已领礼包: 5295个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 6434个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 6056个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 263个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 381个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 3534个

财富等级: 富可敌国

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 19:22 , Processed in 0.479796 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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