spring8801 发表于 2017-8-16 18:01:00

求多段线上任意间距点至别一条多段线的垂直距离,并将距离输出至记事本或excel中

如图所示,以A线为基准线,求B线任意间距点(手动输入间距)至A线的距离,B线上的点在A线右侧为正值,左侧为负值。并将距离按照顺序输出记事本或excel中。



**** Hidden Message *****

jpg102329 发表于 2017-8-17 07:55:00

大师您好,我看您还有5个乐筑天下币,我忽然有个想法。今天天气真好,要是能捡到5个乐筑天下币就好了,或许就能写出一些代码了

spring8801 发表于 2017-8-17 08:12:00


在哪设置乐筑天下币?5个乐筑天下币没有问题啊

spring8801 发表于 2017-8-17 08:40:00


重新发布悬赏帖子了,这帖子如何删除?

jpg102329 发表于 2017-8-17 08:44:00




(defun c:tt(/ +- A B CAN DIST ET INT LST PTA PTLST X)
(setq a(car(jc-entsel'((0 . "*polyline"))"点选A线")))
(setq b(jc-entsel'((0 . "*polyline"))"点选B线"))
(setq can(if(>(* 0.5 (jc-len(car b)))(vlax-curve-getDistAtPoint (car b)(apply'vlax-curve-getclosestpointto b)))""))
(initget 3)
(setq dist(getdist"间距:"))
(setq ptlst(jc-定距等分坐标表 (car b) dist can))
(setq int 0)
(setq lst
(mapcar'(lambda(x)
      (setq pta(vlax-curve-getclosestpointto a x))
      (setq dist(distance pta x))
      (setq +-(if(>(car pta)(car x))"+""-"))
      (list
      (rtos(setq int(1+ int))2 0)
      (strcat +- (rtos dist))
      )
      )ptlst))
(jc-line ptlst (mapcar '(lambda(x)(vlax-curve-getclosestpointto a x)) ptlst))
    (if(not(or(setq et(vlax-get-or-create-object"ket.application"))(setq et(vlax-get-or-create-object"et.application"))(setq et(vlax-get-or-create-object"excel.application"))))
(progn(alert"未找到WPS或MSexcel")(exit)))
(vla-put-visible et 1)
(vlax-invoke(vlax-get-property ET 'WorkBooks)'Add);建工作薄
(JC-EXCEL-PASE et "A1"lst)
(prompt"***大懒猪荣誉出品***")
(princ)
)

jpg102329 发表于 2017-8-17 08:54:00


我设置了附件收费2个乐筑天下币,你可以去下载了

wdjy808 发表于 2018-3-9 11:23:00

函数错误7,是怎么了
页: [1]
查看完整版本: 求多段线上任意间距点至别一条多段线的垂直距离,并将距离输出至记事本或excel中