lisp 任意点 曲线距离_lisp程序能求多段线上任意一点到其中一个端点的距离,,每次要量桩号很烦...哪位大侠给个..谢谢了...........

;;;可导出桩号的代码

(defun C:GM (/ cur pt fi mile)

;;自定义错误处理函数

(defun myerror (s)

(if (and (/= s "函数被取消")

(/= s "函数已取消")

(/= s "Function cancelled")

(/= s "quit / exit abort")

)

(princ (strcat "错误:" s))

)

(if fi (setq fi (close fi)))

(setq *error* olderror)

(command "UNDO" "END")

(setvar "CMDECHO" 1)

(princ)

)

;;系统变量设置

(setvar "cmdecho" 0)

(setq olderror *error*

*error* myerror

)

(while (not cur)

(princ "\n请选择曲线:")

(setq cur (car (entsel)))

(if cur (setq cur (vlax-ename->vla-object cur)))

)

(setq fi (open "D:\\桩号.txt" "w"))

(while (not pt)

(setq pt (getpoint))

(if (not pt) (exit))

(setq pt (vlax-curve-getClosestPointTo cur pt T))

(setq mile (rtos (vlax-curve-getDistAtPoint cur pt) 2))

(princ (strcat "\n桩号 = " mile))

(write-line mile fi)

(setq pt nil)

)

(iffi (setq fi (close fi)))

;;还原系统变量

(setq *error* olderror)

(setvar "CMDECHO" 1)

(princ)

)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值