点到线线性距离
对于矩形,有沿边界散射的点(输入/输出)层(1)边界
层(2)点
[见附件1]
第1步:
a/创建新层(Lyr名称:到边界的距离)
编码,然后询问用户有关点图层名称,然后对点图层中的点进行编号。
在该层中绘制向内/向外(边界外)的箭头。
d测量每个点和边界线之间的距离。
创建文本,显示每个点的距离。
创建布局视图(名称:到边界的距离)。
[见附件2]
第2步:
a/创建一个新层(Lyr名称:平行距离)。
b/计算从点到边界外500偏移的距离。
为边框外显示的每个值创建文本框。
创建布局视图(名称:平行距离)。
[见附件3]
第3步:
a/创建新层(Lyr名称:calculation)
b/使用在if语句的前面步骤中计算的每个点的距离值来计算值,例如(如果到边界的距离为150,则显示值-150)。
创建新布局视图(名称:计算)。
[见附件4]
第4步:
a/Excel导出包含以下字段的表格:
点编号、到边界的距离、输入/输出、到平行线的距离、计算。
显示消息框,说它成功了。
祝你一切顺利!
这实际上是相当容易做到的,有一个VL命令closestpoint,它可以计算出一个新的点,这是您想要的距离,同样,所有的文本标签也很容易,除了考虑象限以获得正确的左上右下等。
不要准备任何东西。还有其他一些琐事。首先,导出到excel的最简单方法是编写一个csv文件并打开它。其他人的回答可能比我快。 这是一个开始
; by BIGAL June 2015
(defun c:aaa ( / sspts len x pt closestpt)
(Princ "\nSelect all the points")
(setq sspts (ssget (list (cons 0 "Point"))))
(setq len (sslength sspts))
(setq obj (car (entsel "\nSelect object: ")))
(setq x len)
(repeat len
(setq pt (cdr (assoc 10 (entget (ssname sspts (setq x (- x 1)) )))))
(setq closestpt (vlax-curve-getclosestpointto obj pt))
(setq dist (distance closestpt pt))
(command "TEXT" pt "" "" (rtos dist 2 3))
)
)
页:
[1]