乐筑天下

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

[编程交流] 中心线坐标和

[复制链接]

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 18:41:10 | 显示全部楼层
阿尼迪亚,
 
我第一次看到道路路线是样条曲线
一路上,没有水平曲线和/或直线段。
 
以下子例程将返回所需的所有数据
以列表形式填写表格。
 
 
填充,我留给你作为练习。
 
  1. (defun offsetlist (/ en ent offl offr intv dtot dlst clst alst llst rlst olst)
  2.   (setq en   (car (entsel))
  3.         ent  (entget en)
  4.         offl 5.00
  5.         offr 5.00
  6.         intv 10.0         
  7.         dtot (vlax-curve-getDistAtPoint en (vlax-curve-getendpoint en))
  8.         dlst (append
  9.                 (in_range 0 dtot intv)
  10.                 (list dtot)
  11.              )
  12.         clst (mapcar '(lambda (a) (vlax-curve-getPointAtDist en a)) dlst)
  13.         alst (mapcar '(lambda (a) (angleatpoint en a)) clst)
  14.         llst (mapcar '(lambda (a b) (polar a (+ b (/ pi 2)) offl)) clst alst)
  15.         rlst (mapcar '(lambda (a b) (polar a (- b (/ pi 2)) offr)) clst alst)
  16.         olst (mapcar '(lambda (a b c d) (list (rtosta a 2 3) b c d)) dlst llst clst rlst)
  17.    )
  18. )   
  19.    
  20.   
  21. ;;                                                                            ;
  22. ;; Return angle along curve, at specified point (on curve)                    ;
  23. ;; e - valid curve (ENAME or VLA-OBJECT)                                      ;
  24. ;; p - point on curve                                                         ;
  25. ;; Alan J. Thompson, 11.04.10                                                 ;
  26. ;;                                                                            ;
  27. (defun AngleAtPoint (e p)
  28.   (angle '(0. 0. 0.) (vlax-curve-getFirstDeriv e (vlax-curve-getParamAtPoint e p)))
  29. )  
  30.    
  31. ;;                                                                            ;
  32. ;; in_range      by ElpanovEvgeniy       (recursive)                          ;
  33. ;;                                                                            ;
  34. ;; Similar to the Python Function                                             ;
  35. ;;                                                                            ;
  36. (defun in_range (s e i)
  37.   (if (or (and (> i 0) (< s e)) (and (< i 0) (> s e)))
  38.      (cons s (in_range (+ i s) e i))
  39.   )
  40. )
  41. ;;                                                                            ;
  42. ;; rtosta                     by ymg            September 2013                ;
  43. ;;                                                                            ;
  44. ;; Arguments:   sta, Real number to format as a Station                       ;
  45. ;;             unit, 1 for Imperials,                                         ;
  46. ;;                   2 for Metrics.                                           ;
  47. ;;             prec, Integer for number of decimals                           ;
  48. ;; DIMZIN must be set to 0 or 1 outside this routine.                         ;
  49. ;;                                                                            ;
  50. ;; Examples: (rtosta 0 1 0)  -> "0+00"   (rtosta 1328.325 1 2) -> "13+28.33"  ;
  51. ;;           (rtosta 0 2 0)  -> "0+000"  (rtosta 1328.325 2 2) -> "1+328.33"  ;
  52. ;;                                                                            ;
  53. ;; If sta is negative, format is as follow:                                   ;
  54. ;;                             (rtosta -1328.325 1 2) -> "13-28.33"           ;
  55. ;;                             (rtosta -1328.325 2 2) -> "1-328.33"           ;
  56. ;;                                                                            ;
  57. (defun rtosta (sta unit prec / str a b dz)     
  58.   (setq str (rtos (abs sta) 2 prec))   
  59.   (while (< (strlen str) (if (= prec 0) (+ unit 2) (+ prec (+ unit 3))))
  60.      (setq str (strcat "0" str))
  61.   )
  62.   (setq a (if (= prec 0) (- (strlen str) unit) (- (strlen str) prec (+ unit 1)))
  63.         b (substr str 1 (- a 1))
  64.         a (substr str a)
  65.   )
  66.   (strcat b (if (minusp sta) "-" "+") a)
  67. )

 
ymg公司
回复

使用道具 举报

20

主题

74

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 18:42:33 | 显示全部楼层
尊敬的先生,如何启动该代码????
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 18:45:48 | 显示全部楼层
有人看过我附加的代码吗!!!???表格对齐。lsp要求用户选择路线并建立坐标表。我的帖子好像被忽视了!
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 18:49:34 | 显示全部楼层
@阿尼迪亚,
 
简单键入(偏移列表),包括括号。
 
@Hippe013,
 
我确实看了,你的也做了。
但我相信OP想要一个罐装的解决方案。
 
ymg公司
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 18:51:52 | 显示全部楼层
 
 
这是罐装溶液。
校准表。lsp
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:57:24 | 显示全部楼层
我以为表格版只是第一个帖子,但到了表格,会检查第二个版本看起来对我们有用。
回复

使用道具 举报

20

主题

74

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 19:00:06 | 显示全部楼层
hippe 013先生,当我使用你的lisp时,我没有得到表上的任何坐标,缩放后绘制的偏移也消失了。这个消息就要来了,
命令:altable
选择路线对象:
输入站间距:10
输入左偏移距离:12
输入右偏移距离:18
选择表格的插入点:;错误:自动化错误。未找到密钥
我需要中心和两侧偏移表上的坐标,
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 19:01:31 | 显示全部楼层
阿尼迪亚,
 
使用常规acad创建新图形。并绘制一个简单的样条曲线,然后运行命令。
 
它仍然出错吗?我现在想不出这个bug是什么。您可以发布您试图在其中运行命令的dwg吗?我创建了一个新图形,创建了一条样条曲线,并运行了命令。这对我很有效。如果你能够发布一个命令不起作用的图形,也许我可以锁定错误发生的点。
 
至于偏移量,它们是以图形方式绘制的,在缩放时应该消失。
 
当做
 
hippe013
回复

使用道具 举报

20

主题

74

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 19:04:40 | 显示全部楼层
HIPPE先生,这就是问题所在,我将随附图纸向您发送一个示例。
 
校准表。lsp加载成功。键入ALTABLE开始。
命令:
命令:altable
选择路线对象:
输入站间距:10
输入左偏移距离:22
输入右偏移距离:33
选择表格的插入点:;错误:自动化错误。未找到密钥
 
 
 
这只是一个例子。如果可能的话,我想在直线和曲线上运行。。。。
需要帮助1213。图纸
回复

使用道具 举报

20

主题

74

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 19:09:33 | 显示全部楼层
尊敬的ymg3先生,我从你那里得到的lisp很好,但在这里,如果我必须更改偏移量,那么我必须更改例程,我必须用新的偏移距离修改它,我可以在excel或任何表格格式中获得结果,其中数据将用链测长度、左偏移坐标、中心线坐标、然后右侧坐标作为首行分隔。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 20:35 , Processed in 0.534882 second(s), 70 queries .

© 2020-2025 乐筑天下

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