我可以创建一个例程,请求两条线的选择并检索其中一条线的角度,然后可能使用“while”命令,LISP可以连续绘制垂直于其中一条线的线(以用户定义的预定间距)。
然后,使用“onseg”设置为“nil”(假设直线无限)的“inters”函数,可以检索垂直直线和另一条选定直线之间的交点。然后,可以使用两点之间的“距离”函数轻松计算垂直距离。
然而,我遇到的问题是如何从LISP中提取计算出的距离,并将其保存到文本/excel文件中。
但我希望其他人能够处理这个问题(我希望ASMI知道一两件事) 谢谢你的努力,
这是一项相当艰巨的任务。这个例程听起来很可靠,如果ASMI赢不了,那么也许我们可以将文本放入文本表中的AutoCad中?
让我们从阿斯米那里等到这里,我相信他在附近。
谢谢
bsimpson公司 在这里搜索batters&vba,一切都完成了,你需要稍微修改一下,但它完全可以实现你想要的垂直于两条不同多段线的直线。
找到它“Batter ticks” 嗨,比格尔,
我在我的电脑上尝试了这些程序。
其中大约有5个进化。我只设法让一个部分工作,它通过例行程序,并正确地要求选择两行,然后输入步骤。唉,输出是*取消*我不知道Y。
bsimpson公司 嗨,李,
我发现下面的例程将坐标发送到txt文件,也许我们可以获取代码并使用它来解决您的问题;
“然而,我遇到的问题是如何从LISP中提取计算出的距离,并将其保存到文本/excel文件中”。
;将旧式多段线顶点坐标导出到文本文件
; mfuccaro@hotmail.com
(defun c:pl2tx(/en ask i a file)
(while(不问)
(setq en(car(entsel)))
(如果en(setq ask(=“POLYLINE”(cdr(assoc 0(entget en 107;)а)))))
)
(setq文件(打开)(GetField“输出文件”)
(strcat(getvar“dwgprefix”)
(substr(getvar“DWGNAME”)1(-strlen(getvar“DWGNAME”))4)
“txt”;文件类型
1) “w”))
(setq i 0 sep“;”);sep=分离器
(while(或(zerop i)a)
(setq a(mapcar的RTO(cdr(assoc 10(entget)(setq en(entnext en \107;)а)а))))
(如果是(写入行(strcat(car a)sep(cadr a)sep(caddr a))文件))
(setq i(1+i))
)
(关闭文件)
(princ(strcat“\n”(itoa(1-i))“导出点”))
(普林斯)
)
bsimpson公司 没有技巧文件输出。使用以下子项。
请注意,列表必须包含字符串!!!
您必须转换以下内容:
SV距离
'(0 12.5
10 12.25
20 12.8
30 12.05
30.125 12.00)
为此:
'("0 12.5"
"10 12.25"
"20 12.8"
"30 12.05"
"30.125 12.00")
(defun FileWrite (fn lst / fd)
(if (setq fd (open fn "w"))
(progn
(foreach itm (layoutlist)
(write-line itm fd)
)
(close fd)
)
)
) 嗨,CAB,
谢谢你的评论,不过我需要整个程序。
bsimpson公司
页:
1
[2]