如何找到一条多段线上与给定点jdpt(在多段线上)距离最近的顶点坐标

请教个问题,我想找到一条多段线上与给定点jdpt(在多段线上)距离最近的顶点坐标,怎么处理?用lisp。大概有个程序段(while(setqsub_list(carent... 请教个问题,我想找到一条多段线上与给定点jdpt(在多段线上)距离最近的顶点坐标,怎么处理?用lisp。大概有个程序段(while (setq sub_list (car ent_list))(if (= (setq p_code (car sub_list)) 10)(progn(setq p_list (cdr sub_list))( if (> (cadr p_list) (cadr jdpt))(setq delta1 (- (cadr p_list) (cadr jdpt)))( if (< delta1 delta2 ) (setq delta2 (min delta1 delta2 )) (setq mypt p_list) ))))(setq ent_list (cdr ent_list)) ) 展开
 我来答
朱06CAD
推荐于2016-08-28 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18069
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
(defun c:007 ( / pt sl pd ds )
 (if (null vlax-dump-object) (vl-load-com) )  ;;加载vlax扩展函数
 (setq pt (getpoint "\n选择点:"))
 (if (/= pt nil) (setq sl (entsel "\n选择对象")));如果有点
 (if (/= sl nil)
  (progn
   (setq sl (car sl))
   (setq sl (vlax-ename->vla-object sl))  ;;转换为vla对象
   (setq pd (vlax-curve-getclosestpointto sl pt))  ;;求出对象距选择点最近的点
   (command "_.line" pt pd "") ;绘制出最短的距离线
   (setq ds (distance pt pd)) ;求出两点距离
   (princ (strcat "\n点到该直线的最短距离是: < " (rtos ds) " >"));输出最短距离
 )
)
 (princ)  ;;静默退出
);;复制到记事本,以(007.lsp)命名,加载到AutoCAD,就可以绘制点到对象最短的直线

这个程序选择的对象可以是直线,圆,多段线及其它曲线,如果要修改你的程序,每句话给出说明。pd点就是你要的坐标

来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式