乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 19|回复: 19

[编程交流] 帮助lisp理顺路线

[复制链接]

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 18:50:11 | 显示全部楼层 |阅读模式
我设计了一条穿过有尖角的田地的路。现在,我想理顺这条路,但我不知道如何理顺。我过去经常手工做以下事情:我画矩形,然后剪切矩形;删除交叉点(十字)并放在一起。
请帮我写一个lisp,我把那条线弄直。
非常感谢。
附言:默认走廊道路为100m。我被线的两边偏移了100米。
图像附件:
195011nv7prgc87wa0k6vo.jpg
DWG文件:
XDM L474。图纸
195013zs4v4a48nr2g5cjn.jpg
195014aoyub5utno5h6yy6.jpg
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 18:54:31 | 显示全部楼层
我们开始了
 
  1. (defun c:Test (/ s o _p lst lng st)
  2. ;;        Tharwat 22.7.2015        ;;
  3. (princ "\nPick on LWpolyline to draw Rectangles between coordinates")
  4. (if (and (setq s (ssget "_+.:S:E" '((0 . "LWPOLYLINE"))))
  5.           (setq _p (getpoint "\nSpecify point to redraw the LWpolyline with Rectangles:"))
  6.           )
  7.    (progn
  8.      (setq o   (ssname s 0)
  9.            lst (mapcar 'cdr (vl-remove-if-not '(lambda (p) (eq (car p) 10)) (entget o)))
  10.            st  (car lst)
  11.            )
  12.      (mapcar '(lambda (l)
  13.                 (setq lng (cons (distance st l) lng)
  14.                       st  l
  15.                       )
  16.                 )
  17.              (cdr lst)
  18.              )
  19.      (entmake
  20.        (append
  21.          (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity")
  22.                '(100 . "AcDbPolyline") '(90 . 2) '(70 . 0)
  23.                )
  24.          (vl-remove-if-not '(lambda (x) (member (car x) '(62 6 370))) (entget o) )
  25.          (list (cons 10 _p) (cons 10 (polar _p 0. (vlax-curve-getdistatpoint o (vlax-curve-getendpoint o)))))
  26.          )
  27.        )
  28.      (mapcar
  29.        '(lambda (d)
  30.           (entmake (append
  31.                      (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(90 . 4) '(70 . 1))
  32.                      (mapcar '(lambda (a p) (cons 10 (polar p a 100.)))
  33.                              (list (* pi 0.5) (* pi 0.5) (* pi 1.5) (* pi 1.5))
  34.                              (list _p (polar _p 0. d) (polar _p 0. d) _p)
  35.                       )
  36.               )
  37.             )
  38.           (setq _p (polar _p 0. d))
  39.           )
  40.        (reverse lng)
  41.        )
  42.      )
  43.    )
  44. (princ)
  45. ) (vl-load-com)
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 18:57:49 | 显示全部楼层
亲爱的Tharwat,
非常感谢你。但是,您可以帮助我执行步骤04(查看文件附加)。写入步骤03(不是帧中的对象)。
非常感谢塔瓦!
我想要同样的结果:
 
195016ej4gtlhinkn2oix4.jpg
 
195018blmiyiwylmhpmmp0.jpg
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 19:02:50 | 显示全部楼层
 
不客气。
 
实际上,我是根据你的第一篇帖子写的程序,关于你的第二个请求,我不知道你是如何将这些图调整成一个直矩形的,让我看看是否可以通过代码实现。
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 19:03:13 | 显示全部楼层
 
亲爱的Tharwat,
在#1时,我还给出了最终图像(我想要这个相同的结果),我想要得到这个相同的结果。
图03是一个想法,我认为在去掉矩形后,会把它们合并在一起。
这就是我当时想要的图04。所有道路都已整平。
然后因为图像没有编号,所以你们可能会误解我的意思。
我希望你不要理我,请帮助我。
附言:简而言之:我有一个数字01,我想把它和数字04弄直。
非常感谢塔瓦!
请帮帮我!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:06:09 | 显示全部楼层
我的0.02美元最好是使用布局mview并沿路线定向,创建平面剖面。这是土木工程附加组件(CIV3D)中的标准功能。我们使用的先进道路软件在这方面确实有很好的处理能力。
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 19:10:48 | 显示全部楼层
亲爱的,比格尔
我真的不太懂比格尔。你可以谈一点细节吗?我描述了上述问题:
我有一个在路线图01,现在我想理顺作为图纸路线04。
期待您的帮助和帮助。
帮我写一个lisp来做到这一点。
附言:我正在使用autocad 2007;我不使用Civil 3D。
文件dwg:
XDM L474。图纸
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:15:04 | 显示全部楼层
我知道你想把一条弯曲的路弄直,让绘图更容易,我们每天都在做。正如我所说,我们使用布局并旋转基础调查以最适合页面,我们在手动每页设置视图时使用UCS。我有一个项目,12条道路作为一个偏离垂直15度的网格,所有道路都以水平形式显示在图纸上。
 
好的,从模型空间开始,然后UCS OB拾取要水平对齐的对象或绘制一条临时线,然后使用它,然后可以删除它,然后UCS“Road1”对“road2”等部分重复,然后转到设置标题栏的布局做多视图,做UCS R“Road1”平面,放大到正确的区域并按所需比例完成所有操作。转到布局2 UCS R“road2”平面图Z E,然后缩放等继续。无需编程。
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 19:17:37 | 显示全部楼层
亲爱的,比格尔
拉伸的目的是将其放在纵截面上(见附件-黄色框架)。
虽然我按照指示做了,但当我进入布局时,我不知道如何再做一次(见附件视频)。
我认为,放在纵断面上,所以有必要用lisp或craft进行矫直。至于比格尔提出的方法,我认为是不可行的。
我们希望得到比格尔和塔瓦的帮助。
非常感谢你!
纵断面:
1.MC_G1-G11。图纸
视频:
https://www.youtube.com/watch?v=6W3Qa4GKp3E
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 19:20:49 | 显示全部楼层
尊敬的Tharwat:
拉伸的目的是将其放在纵截面上(见附件-黄色框架)。
在第#1条中,我明确指出了这一问题。我希望塔尔瓦的同情,并帮助我写一个Lisp程序,这样我就可以做到这一点!
请帮帮我。
衷心感谢塔瓦!
祝你好运!
文件:
1.MC_G1-G11。图纸
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 13:32 , Processed in 0.503821 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表