明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 79|回复: 0

[源码] 蛇形敷设长度系数计算

[复制链接]
发表于 昨天 19:50 | 显示全部楼层 |阅读模式
社区内建筑、水工、机械的比较多,咱们变电这个赛道比较冷门,蛇形敷设长度系数的计算虽然简单,但肯定没人写过这个代码。
电缆路径一般比较长,这个系数虽然不大,但还是不能拍脑袋的。之前是用EXCEL表格来算的。


代码中多段线绘制的command分多次书写,至少我感觉有些稀奇。获取多段线长度的这一句刚从本社区学会。
  1. (defun c:y_sinx  (/ L1 B1 x y list1 p1 curve tlen)
  2.   ;绘制正弦函数曲线的蛇形弧
  3.   (vl-load-com)
  4.   (setq v1(getvar "osmode"))
  5.   (setq v2(getvar "cmdecho"))
  6.   (setq v3(getvar "blipmode"))
  7.   (setvar "osmode" 0)
  8.   (setvar "cmdecho" 0)
  9.   (setvar "blipmode" 0)
  10.   (setq L1 (getint "\n请输入半个蛇形长度(mm):"))
  11.   (setq B1 (getint "\n请输入蛇形弧幅宽(mm):"))
  12.   (setq x 0.0) ;设置x初始值
  13.   (setq list1 '()) ;设置空列表
  14.   (while (<= x 360) ;x坐标从0°~360°
  15.     (setq y (* (sin (* x (/ pi 180))) (* B1 0.5)))
  16.     (setq p1 (list (/ (* x L1) 180) y))                    
  17.     (setq list1 (cons p1 list1)) ;将p1点加入到列表中
  18.     (setq x (1+ x)) ;x加1
  19.   ) ;结束while
  20.   (command "pline") ;绘制多段线
  21.   (foreach point list1 ;从列表中逐个获取的点坐标赋值给point
  22.     (command point) ;延续pline命令,将point作为直线的下一个端点添加
  23.   ) ;结束foreach
  24.   (command "") ;结束当前的AutoCAD命令
  25.   (setq curve (vlax-ename->vla-object (entlast)))
  26.   (setq tlen (vlax-curve-getdistatparam
  27.      curve
  28.      (vlax-curve-getendparam curve)
  29.        )
  30.   )
  31.   (princ "\n蛇形敷设系数为:")
  32.   (princ (/ tlen L1 2))
  33.   (setvar "osmode" v1)
  34.   (setvar "cmdecho" v2)
  35.   (setvar "blipmode" v3)
  36.   (princ)
  37. )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 金钱 +5 收起 理由
tigcat + 1 + 5 很给力!

查看全部评分

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-3-13 03:48 , Processed in 0.156878 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表