帮助lisp理顺路线
我设计了一条穿过有尖角的田地的路。现在,我想理顺这条路,但我不知道如何理顺。我过去经常手工做以下事情:我画矩形,然后剪切矩形;删除交叉点(十字)并放在一起。请帮我写一个lisp,我把那条线弄直。
非常感谢。
附言:默认走廊道路为100m。我被线的两边偏移了100米。
图像附件:
DWG文件:
XDM L474。图纸
我们开始了
(defun c:Test (/ s o _p lst lng st)
;; Tharwat 22.7.2015 ;;
(princ "\nPick on LWpolyline to draw Rectangles between coordinates")
(if (and (setq s (ssget "_+.:S:E" '((0 . "LWPOLYLINE"))))
(setq _p (getpoint "\nSpecify point to redraw the LWpolyline with Rectangles:"))
)
(progn
(setq o (ssname s 0)
lst (mapcar 'cdr (vl-remove-if-not '(lambda (p) (eq (car p) 10)) (entget o)))
st(car lst)
)
(mapcar '(lambda (l)
(setq lng (cons (distance st l) lng)
stl
)
)
(cdr lst)
)
(entmake
(append
(list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity")
'(100 . "AcDbPolyline") '(90 . 2) '(70 . 0)
)
(vl-remove-if-not '(lambda (x) (member (car x) '(62 6 370))) (entget o) )
(list (cons 10 _p) (cons 10 (polar _p 0. (vlax-curve-getdistatpoint o (vlax-curve-getendpoint o)))))
)
)
(mapcar
'(lambda (d)
(entmake (append
(list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(90 . 4) '(70 . 1))
(mapcar '(lambda (a p) (cons 10 (polar p a 100.)))
(list (* pi 0.5) (* pi 0.5) (* pi 1.5) (* pi 1.5))
(list _p (polar _p 0. d) (polar _p 0. d) _p)
)
)
)
(setq _p (polar _p 0. d))
)
(reverse lng)
)
)
)
(princ)
) (vl-load-com)
亲爱的Tharwat,
非常感谢你。但是,您可以帮助我执行步骤04(查看文件附加)。写入步骤03(不是帧中的对象)。
非常感谢塔瓦!
我想要同样的结果:
不客气。
实际上,我是根据你的第一篇帖子写的程序,关于你的第二个请求,我不知道你是如何将这些图调整成一个直矩形的,让我看看是否可以通过代码实现。
亲爱的Tharwat,
在#1时,我还给出了最终图像(我想要这个相同的结果),我想要得到这个相同的结果。
图03是一个想法,我认为在去掉矩形后,会把它们合并在一起。
这就是我当时想要的图04。所有道路都已整平。
然后因为图像没有编号,所以你们可能会误解我的意思。
我希望你不要理我,请帮助我。
附言:简而言之:我有一个数字01,我想把它和数字04弄直。
非常感谢塔瓦!
请帮帮我! 我的0.02美元最好是使用布局mview并沿路线定向,创建平面剖面。这是土木工程附加组件(CIV3D)中的标准功能。我们使用的先进道路软件在这方面确实有很好的处理能力。 亲爱的,比格尔
我真的不太懂比格尔。你可以谈一点细节吗?我描述了上述问题:
我有一个在路线图01,现在我想理顺作为图纸路线04。
期待您的帮助和帮助。
帮我写一个lisp来做到这一点。
附言:我正在使用autocad 2007;我不使用Civil 3D。
文件dwg:
XDM L474。图纸 我知道你想把一条弯曲的路弄直,让绘图更容易,我们每天都在做。正如我所说,我们使用布局并旋转基础调查以最适合页面,我们在手动每页设置视图时使用UCS。我有一个项目,12条道路作为一个偏离垂直15度的网格,所有道路都以水平形式显示在图纸上。
好的,从模型空间开始,然后UCS OB拾取要水平对齐的对象或绘制一条临时线,然后使用它,然后可以删除它,然后UCS“Road1”对“road2”等部分重复,然后转到设置标题栏的布局做多视图,做UCS R“Road1”平面,放大到正确的区域并按所需比例完成所有操作。转到布局2 UCS R“road2”平面图Z E,然后缩放等继续。无需编程。 亲爱的,比格尔
拉伸的目的是将其放在纵截面上(见附件-黄色框架)。
虽然我按照指示做了,但当我进入布局时,我不知道如何再做一次(见附件视频)。
我认为,放在纵断面上,所以有必要用lisp或craft进行矫直。至于比格尔提出的方法,我认为是不可行的。
我们希望得到比格尔和塔瓦的帮助。
非常感谢你!
纵断面:
1.MC_G1-G11。图纸
视频:
https://www.youtube.com/watch?v=6W3Qa4GKp3E 尊敬的Tharwat:
拉伸的目的是将其放在纵截面上(见附件-黄色框架)。
在第#1条中,我明确指出了这一问题。我希望塔尔瓦的同情,并帮助我写一个Lisp程序,这样我就可以做到这一点!
请帮帮我。
衷心感谢塔瓦!
祝你好运!
文件:
1.MC_G1-G11。图纸
页:
[1]
2