线条宽度的Lisp
嗨,李先生,我需要一个lisp文件来测量两条多段线之间的垂直宽度。原则多段线必须从10个单位的增量测量宽度(很高兴将其作为输入)。
测量宽度的输出最好发送到ascii文件,否则文本屏幕很酷。
如果主多段线可以选择左侧或右侧或两者来确定其他多段线之间的空间宽度,则为Neat。可能是用于测量垂直宽度的多段线的选择选项。
这将节省大量时间。 您需要一个lisp例程来执行此操作,因为。。。。?我不确定你想要完成什么。你能详细说明一下吗?非常感谢。 真的不确定你在追求什么,可能是这个?
两条多段线之间的距离?
嗨,李,
是的,没错,
我有大量的迭代,这被证明是耗时的。正如你所指出的,我正在用手工方法测量,但这需要改进。
需要lisp文件来测量两条多段线之间的垂直距离。
这两条多段线的方向不同,因此垂直测量在其中一条主线段上。
原理线标为10个单位,比如说,并进行另一次距离测量,以此类推。。。。
理想情况下,可以选择单位间距和ascii文件输出。
希望这能澄清问题所在。
bsimpson公司 您好,备注,
我正在使用一个名为Civildesigner的独立设计程序来设计道路。我们的主要设计工作是对十字路口进行升级,拓宽道路边缘。
这意味着,每次我沿道路协调中心线时,我必须使用输入Civildesigner的宽度标注拾取道路边缘,以生成道路加宽的相关数量和表示。
我希望我能够得到这个lisp文件,因为这将节省我无数次测量道路边缘。我需要缩短设计时间。
当做
bsimpson公司 您好,bsimpson,
我很快键入了这个LISP,但我不确定它是否完全适合你的需要,但还是试一试。
它将根据第一条线的选择来标注一组线的尺寸,并且始终将这些线标注到一侧。
如果有任何帮助,请告诉我。
(defun c:ldist (/ l1 l2 pt1s pt1e pt1 pt2s pt2e pt2)
(setvar "cmdecho" 0)
(if
(setq l1 (car (entsel "\nSelect First Line: ")))
(progn
(while
(setq l2 (car (entsel "\nSelect Second Line: ")))
(setq pt1s (cdr (assoc 10 (entget l1))))
(setq pt1e (cdr (assoc 11 (entget l1))))
(if
(> (car pt1s)(car pt1e))
(setq pt1 (cdr (assoc 10 (entget l1))))
(setq pt1 (cdr (assoc 11 (entget l1))))
) ; end if
(setq pt2s
(cdr (assoc 10 (entget l2)))
) ; end setq
(setq pt2e
(cdr (assoc 11 (entget l2)))
) ; end setq
(if
(> (car pt2s)(car pt2e))
(setq pt2 (cdr (assoc 10 (entget l2))))
(setq pt2 (cdr (assoc 11 (entget l2))))
) ; end if
(command "_dimlinear"
pt1
pt2
pause
) ; end dim
) ; end while
) ; end progn
(alert "No Line Selected")
) ; end if
(setvar "cmdecho" 1)
(princ "\nFunction Complete.")
(princ)
) ; end function 嗨,李,
我看了一下lisp例程,发现它在正确的轨道上,但我需要更多的东西。
该例程允许选择正确的第一行和第二行,但输出不正确。
该例程需要在例如10个单位的垂直距离上进行垂直距离测量,最好输入“沿第一条线的间距是多少”到第二条线。
结果不需要绘制尺寸线,而是在文本屏幕或ascii文件中进行最佳输出。通常有两列,如下所示;
SV距离
0 12.5
10 12.25
2012.8
3012.05
30.12512.00
SV=桩值(沿第一条线的间距)
dist=从第一条线到第二条线的垂直距离
从第一条线到第二条线的距离在垂直于第一条线的位置测量,然后在第二条线的交点处测量。
我预计这一常规可以改进。
bsimpson公司 啊。。。。我现在明白了,谢谢。
我看看我能做什么
“我预计这一常规可以改进。”
的确你真体贴。 没错,你已经理解了这个问题。我期待着你能做什么。
页:
[1]
2