乐筑天下

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

[编程交流] 沿多段线w测量块

[复制链接]

30

主题

81

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
146
发表于 2022-7-5 18:05:04 | 显示全部楼层 |阅读模式
你好
 
我需要一个Lisp,它可以通过指定长度沿多段线测量块
(长度应始终从0开始计算,即多段线的起点)
 
E示例:
绘图单位为米
我有一条10Km(10000m)的道路中心线,如果我进入长度为3300m的路段,应放置在3300m处
如果我输入长度5600m,块应放置在5600m处
 
非常感谢
湿婆
190507krgr1dbbz8r4r5x0.jpg
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:11:45 | 显示全部楼层
你好
 
这个街区叫什么名字?
那方块的旋转呢?
它是属性块吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:19:38 | 显示全部楼层
尝试Alan的沿曲线复制程序的动态选项。
 
或者你可以使用我的旧空间沿曲线程序。
回复

使用道具 举报

30

主题

81

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
146
发表于 2022-7-5 18:25:38 | 显示全部楼层
你好
 
块名为CATCH\u PIT,具有一个属性,如图所示
旋转垂直于道路路线,如我随附的图纸所示
 
190509qy7j8so7ydse6a1n.jpg
 
无法附加文件大小超过1MB
 
谢谢
湿婆
190510ev6k41nl3lffimpe.jpg
回复

使用道具 举报

30

主题

81

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
146
发表于 2022-7-5 18:32:00 | 显示全部楼层
本练习旨在沿多段线(道路长度为36.6Km)放置具有特定链长的CATCH_坑块
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:35:12 | 显示全部楼层
属性的值是什么?是要求用户输入还是静态值?
回复

使用道具 举报

30

主题

81

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
146
发表于 2022-7-5 18:42:01 | 显示全部楼层
是的,它将要求用户输入(不同)
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:46:09 | 显示全部楼层
试试这个草稿,让我知道。
 
  1. (defun c:Test  (/ blk s e l d v)
  2. ;; Tharwat 07.Feb.2016 ;;
  3. (setq blk "CATCH_PIT")
  4. ;; Block name
  5. (if (and (tblsearch "BLOCK" blk)
  6.           (princ "\nSelect LWpolyline :")
  7.           (setq s (ssget "_+.:S:E" '((0 . "LWPOLYLINE"))))
  8.           (setq l (vlax-curve-getdistatpoint
  9.                     (setq e (ssname s 0))
  10.                     (vlax-curve-getendpoint e))))
  11.    (while
  12.      (and
  13.        (setq d
  14.               (getdist
  15.                 (strcat "\nSpecify distance less than "
  16.                         (rtos l 2 2)
  17.                         " > :")
  18.                 )
  19.              )
  20.        (< d l)
  21.        (/= "" (setq v (getstring t "\nSpecify Attribute Value :")))
  22.        )
  23.       (entmake
  24.         (list '(0 . "INSERT")
  25.               (cons 10 (vlax-curve-getpointatdist e d))
  26.               (cons 50
  27.                     (+ (* pi 0.5)(angle '(0. 0. 0.)
  28.                            (vlax-curve-getfirstderiv
  29.                              e
  30.                              (vlax-curve-getparamatpoint
  31.                                e
  32.                                (vlax-curve-getpointatdist e d))))))                     
  33.               (cons 2 blk)
  34.               )
  35.         )
  36.       (if (> d l)
  37.         (alert "\nLong distance entered !")
  38.         )
  39.       )
  40.    )
  41. (princ)
  42. )(vl-load-com)
回复

使用道具 举报

30

主题

81

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
146
发表于 2022-7-5 18:51:05 | 显示全部楼层
做得很好,但唯一的事情是将块平行放置在对齐位置,如图所示
 
190512k1pr5bldpbyi1pld.jpg
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:56:52 | 显示全部楼层
以上代码已更新,请重试。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 23:44 , Processed in 0.585864 second(s), 86 queries .

© 2020-2025 乐筑天下

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