找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1570|回复: 4

[曲线] 【曲线】查找两条曲线最短距离并标记

[复制链接]

已领礼包: 20个

财富等级: 恭喜发财

发表于 2020-6-15 04:04:56 | 显示全部楼层 |阅读模式
  • 插件名称 : 最短距离
  • 作  者 : marting
  • 运行环境 :XDRX API 晓东工具箱 
  • 发布时间 :2020-06-15
  • 命令名称 :xdtb_crvsmall
  • 插件介绍 :查找两条曲线的最短距离位置,并标记
  • 备  注 : (点击图片可以放大)
(点击图片可以放大)

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

插件详细内容

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

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

×
  1. (defun c:xdtb_crvsmall (/ dist e1 e2 h p1 pmid pnt tbox txt v xdir)
  2.   (defun _callback (dynpt)
  3.     (redraw)
  4.     (xdrx-grdraw 2 -1 pnt)
  5.     (xdrx-grdraw 2 -1 (car pnt) 3 4)
  6.     (xdrx-grdraw 2 -1 (cadr pnt) 3 4)
  7.     (setq h (xd::doc:getpickboxheight))
  8.     (xdrx-setpropertyvalue
  9.       txt
  10.       "textstring"
  11.       (rtos (abs dist) 2 1)
  12.       "textheight"
  13.       h
  14.     )
  15.     (setq tbox (xdrx-getpropertyvalue txt "textbox")
  16.           tbox (xd::pnts:close tbox)
  17.           tbox (xdrx-points-offset (/ h 3.0) tbox)
  18.           pmid (xd::geom:get9pt tbox 2)
  19.           v    (xdrx-vector-normalize (mapcar '- (cadr tbox) (car tbox)))
  20.     )
  21.     (xdrx-entity-align
  22.       txt
  23.       pmid
  24.       v
  25.       (mapcar '+
  26.               (xdrx-line-midp (car pnt) (cadr pnt))
  27.               (xdrx-vector-product
  28.                 (xdrx-vector-perpvector xdir)
  29.                 (/ h 3.0)
  30.               )
  31.       )
  32.       xdir
  33.     )
  34.     (xd::text:adjust txt)
  35.     (setq tbox (xdrx-getpropertyvalue txt "textbox")
  36.           tbox (xd::pnts:close tbox)
  37.           tbox (xdrx-points-offset (/ h 3.0) tbox)
  38.           tbox (xd::pnts:close tbox)
  39.     )
  40.     (xdrx-grdraw 8 -1 tbox)
  41.     (xdrx-grdraw 2 1 txt)
  42.   )
  43.   (if (and (setq e1 (car (xdrx-entsel
  44.                            "\n拾取第一条曲线<退出>:"
  45.                            '((0 . "*line,arc,ellipse,circle"))
  46.                          )
  47.                     )
  48.            )
  49.            (setq e2 (car (xdrx-entsel
  50.                            "\n拾取第一条曲线<退出>:"
  51.                            '((0 . "*line,arc,ellipse,circle"))
  52.                          )
  53.                     )
  54.            )
  55.            (setq pnt (xdrx-getpropertyvalue e1 "getclosestpointto" e2))
  56.       )
  57.     (progn (xdrx-begin)
  58.            (xdrx-sysvar-push '("osmode" 0 "dimzin" 0))
  59.            (xdrx-pointmonitor "_callback")
  60.            (setq txt (xdrx-text-make))
  61.            (setq
  62.              xdir (xdrx-vector-normalize (mapcar '- (cadr pnt) (car pnt)))
  63.            )
  64.            (if (< (car xdir) 0.0)
  65.              (setq xdir (xdrx-vector-negate xdir))
  66.            )
  67.            (xdrx-setpropertyvalue
  68.              txt
  69.              "textstring"
  70.              (rtos (setq dist (apply 'distance pnt)) 2 1)
  71.            )
  72.            (xdrx-document-zoomcenter
  73.              (xdrx-line-midp (car pnt) (cadr pnt))
  74.              (* 5 dist)
  75.            )
  76.            (xdrx-prompt "\n两条曲线最近点距离:" dist)
  77.            (if (setq p1 (getpoint "\n>>左键绘制标记,回车退出查看:"))
  78.              (progn (xdrx-sysvar-push '("pdmode" 35))
  79.                     (xdrx-point-make pnt)
  80.                     (xdrx-line-make pnt)
  81.              )
  82.            )           (redraw)
  83.            (xdrx-pointmonitor)
  84.            (xdrx-sysvar-pop)
  85.            (xdrx-end)
  86.     )
  87.   )
  88.   (princ)
  89. )



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

已领礼包: 408个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 148个

财富等级: 日进斗金

发表于 2020-6-15 08:06:53 | 显示全部楼层

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

使用道具 举报

已领礼包: 2230个

财富等级: 金玉满堂

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

使用道具 举报

已领礼包: 166个

财富等级: 日进斗金

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 13:09 , Processed in 0.219877 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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