社区内建筑、水工、机械的比较多,咱们变电这个赛道比较冷门,蛇形敷设长度系数的计算虽然简单,但肯定没人写过这个代码。
电缆路径一般比较长,这个系数虽然不大,但还是不能拍脑袋的。之前是用EXCEL表格来算的。
代码中多段线绘制的command分多次书写,至少我感觉有些稀奇。获取多段线长度的这一句刚从本社区学会。
网友答: 练习三 接头最小接触面积计算 变电一次


网友答: 练习二 拾取电缆回路编号 适用变电二次专业
框选拾取电缆回路编号,自动排序、自动复制到系统剪贴板,只需要粘贴到电缆清册的单元格中即可。
网友答: 双针等高,绘制防雷保护范围
网友答: 练习4 绘制灯具的配光曲线图

网友答: 我现在也在做变电一次设计,之前做配电、输电线路网友答: 楼主 同电力设计行业,能群探讨下,变配电这块如何二次开发吗网友答: 这是按一次手册做的等高避雷,按50064不知道怎么通过查表来,我看天正是按50064来的。网友答:
我之前做变电二次,现在做变电一次,另外电缆设计也做。幸会
网友答:
我也只是业余爱好lsp,做设计的都很忙,按需学习才是现实的
电缆路径一般比较长,这个系数虽然不大,但还是不能拍脑袋的。之前是用EXCEL表格来算的。
代码中多段线绘制的command分多次书写,至少我感觉有些稀奇。获取多段线长度的这一句刚从本社区学会。

- (defun c:y_sinx (/ L1 B1 x y list1 p1 curve tlen)
- ;绘制正弦函数曲线的蛇形弧
- (vl-load-com)
- (setq v1(getvar "osmode"))
- (setq v2(getvar "cmdecho"))
- (setq v3(getvar "blipmode"))
- (setvar "osmode" 0)
- (setvar "cmdecho" 0)
- (setvar "blipmode" 0)
- (setq L1 (getint "\n请输入半个蛇形长度(mm):"))
- (setq B1 (getint "\n请输入蛇形弧幅宽(mm):"))
- (setq x 0.0) ;设置x初始值
- (setq list1 '()) ;设置空列表
- (while (<= x 360) ;x坐标从0°~360°
- (setq y (* (sin (* x (/ pi 180))) (* B1 0.5)))
- (setq p1 (list (/ (* x L1) 180) y))
- (setq list1 (cons p1 list1)) ;将p1点加入到列表中
- (setq x (1+ x)) ;x加1
- ) ;结束while
- (command "pline") ;绘制多段线
- (foreach point list1 ;从列表中逐个获取的点坐标赋值给point
- (command point) ;延续pline命令,将point作为直线的下一个端点添加
- ) ;结束foreach
- (command "") ;结束当前的AutoCAD命令
- (setq curve (vlax-ename->vla-object (entlast)))
- (setq tlen (vlax-curve-getdistatparam
- curve
- (vlax-curve-getendparam curve)
- )
- )
- (princ "\n蛇形敷设系数为:")
- (princ (/ tlen L1 2))
- (setvar "osmode" v1)
- (setvar "cmdecho" v2)
- (setvar "blipmode" v3)
- (princ)
- )
网友答: 练习三 接头最小接触面积计算 变电一次

- tou_area:dialog{
- label="接头最小接触面积计算";
- :column{
- :edit_box{
- label="工作电流(A)";
- key="Ieg";
- }
- :row{
- :text{label="无镀层接头材质";}
- :popup_list{key="pop_mat";edit_width=8;
- list="铜-铜\n铝-铝";}
- }
- :concatenation{
- :text_part{label="电流密度【";}
- :text{width=6;key="txt_den";}
- :text_part{label="】(A/mm2)";}
- }
- :concatenation{
- :text_part{label="最小接触面积【";}
- :text{width=6;key="txt_area";}
- :text_part{label="】(mm2)";}
- }
- spacer_1;
- :text{label="注:铜-铝接头按铝-铝接头计算。";}
- }
- spacer_1;
- :row{
- alignment="centered";
- :button{label="计算";key="but_cal";
- width=6;fixed_width=true;
- }
- cancel_button;
- }
- }

- (defun c:tou_area ()
- (setq k1 1.0 k2 0.12)
- (dcl_tou_area)
- (prin1)
- )
- (defun dcl_tou_area ()
- (setq dcl_id (load_dialog "我的lisp\\tou_area"))
- (new_dialog "tou_area" dcl_id)
- (action_tile "pop_mat" "(sub_pop $value)")
- (action_tile "but_cal" "(area_cal)")
- (action_tile "cancel" "(done_dialog 0)")
- (setq dd (start_dialog))
- )
- (defun area_cal ()
- (ini_1)
- (setq i1 (atof (get_tile "Ieg")))
- (cond ((< i1 200) (setq k2 0.31))
- ((<= i1 2000)
- (setq k2 (- 0.31 (* (- i1 200) 1.05 0.0001))))
- ((> i1 2000) (setq k2 0.12))
- )
- (setq k (* k1 k2))
- (setq area1 (/ i1 k))
- (setq str1 (rtos area1 2 0))
- (set_tile "txt_den" (rtos k 2 2))
- (set_tile "txt_area" str1)
- (princ)
- )
- (defun sub_pop (vvs)
- (ini_1)
- (cond ((= vvs "0") (setq k1 1.0))
- ((= vvs "1") (setq k1 0.78))
- )
- )
- (defun ini_1()
- (set_tile "txt_den" "")
- (set_tile "txt_area" "")
- )
- (princ)
网友答: 练习二 拾取电缆回路编号 适用变电二次专业
框选拾取电缆回路编号,自动排序、自动复制到系统剪贴板,只需要粘贴到电缆清册的单元格中即可。

- (defun c:sqbh (/ textList textString ss n i)
- (setq textList '())
- (setq textString "")
- ;--------------框选拾取文本的方式-------------------
- (setq ss (ssget '((0 . "TEXT"))))
- (setq n (sslength ss))
- (setq i 0)
- (while (< i n)
- (setq obj (ssname ss i))
- (setq textVal (cdr (assoc 1 (entget obj))))
- (setq textList (cons textVal textList))
- (setq i (1+ i))
- )
- (setq textList (acad_strlsort textList))
- (foreach item textList
- (if (not (= textString ""))
- (setq textString (strcat textString ";" item))
- (setq textString item)
- )
- )
- (princ textString)
- (set-clip-string textString)
- (princ)
- )
- ;;;=================================================================*
- ;;;功能:向系统剪贴板写入文字 ;下面这段代码在本社区复制而来 *
- (defun set-clip-string (str / html result)
- (and (= (type str) 'str)
- (setq html (vlax-create-object "htmlfile"))
- (setq result (vlax-invoke
- (vlax-get (vlax-get html 'parentwindow)
- 'clipboarddata
- )
- 'setdata
- "text"
- str
- )
- )
- (vlax-release-object html)
- )
- )
- ;;;=================================================================*
网友答: 双针等高,绘制防雷保护范围

- ;根据双针距离D、实际计算出的bx、rx,绘制等高避雷针保护范围
- (defun c:EE17() ;szdg即双针等高
- (setq p1 (getpoint "\n指定1#避雷针的位置:"))
- (setq p2 (getpoint "\n指定2#避雷针的位置:"))
- (setq D1 (distance p1 p2))
- (setq p3 (polar p1 (angle p1 p2) (/ D1 2)))
- (setq bx (getdist p3 "\n输入双针保护最小宽度bx:"))
- (setq rx (getdist p1 "\n输入单针保护半径rx:"))
- (setq p4 (polar p3 (+ (angle p3 p1) (/ pi 2)) bx))
- (setq p5 (polar p3 (+ (angle p3 p2) (/ pi 2)) bx))
- (if (< rx (distance p1 p4))
- (progn
- (setq p6 (polar p1 (- (angle p1 p4) (acos (/ rx (distance p1 p4)))) rx))
- (setq p7 (polar p1 (+ (angle p1 p5) (acos (/ rx (distance p1 p5)))) rx))
- (command "pline" p5 p7 "a" p6 "l" p4 "")
- (command "mirror" (ssget "L") "" p5 p4 "n")
- )
- (princ "\n双针不能联合,请检查输入数据是否有误!")
- )
- (princ)
- )
- ;定义反余弦函数,返回角度的弧度值
- ;反余弦函数的定义域为[-1, 1],值域为[0, π]
- (defun acos(x)
- (cond
- ((= x 0.0) (* pi 0.5))
- ((and (> x 0.0) (<= x 1.0))
- (atan (/ (sqrt (- 1 (* x x))) x)))
- ((and (>= x -1.0) (< x 0.0))
- (+ (atan (/ (sqrt (- 1 (* x x))) x)) pi)
- )
- (T (progn
- (princ "输入值超出反余弦函数的定义域。")
- nil))
- )
- )
网友答: 练习4 绘制灯具的配光曲线图

- ;绘制配光曲线
- (defun c:tt()
- (setq v1(getvar "osmode"))
- (setq v2(getvar "cmdecho"))
- (setq v3(getvar "blipmode"))
- (setvar "osmode" 0)
- (setvar "cmdecho" 0)
- (setvar "blipmode" 0)
- (setq d1 (/ pi 36))
- (setq list1 '(278 280 290 306 323 339 344 328 288 214
- 131 57 23 10 5 2 1 0 0))
- (setq list2 '(278 277 269 259 248 234 218 200 181 160
- 138 114 90 66 44 28 16 7 1))
- (setq p1 '(0 0))
- (setq i 0)
- (command "pline")
- (while (< i (length list2))
- (if (= (nth i list2) 0)
- (setq p2 '(0 0))
- (setq p2 (polar p1 (+ (* pi -0.5) (* d1 i)) (nth i list2)))
- )
- (command p2)
- (setq i (1+ i))
- )
- (command "")
- (command "mirror" (entlast) "" '(0 0) '(0 100) "N")
- (setvar "osmode" v1)
- (setvar "cmdecho" v2)
- (setvar "blipmode" v3)
- (princ)
- )
网友答: 我现在也在做变电一次设计,之前做配电、输电线路网友答: 楼主 同电力设计行业,能群探讨下,变配电这块如何二次开发吗网友答: 这是按一次手册做的等高避雷,按50064不知道怎么通过查表来,我看天正是按50064来的。网友答:
lea丶丶 发表于 2025-4-16 17:21
我现在也在做变电一次设计,之前做配电、输电线路
我之前做变电二次,现在做变电一次,另外电缆设计也做。幸会
网友答:
只会艾迪西 发表于 2025-4-17 09:18
楼主 同电力设计行业,能群探讨下,变配电这块如何二次开发吗
我也只是业余爱好lsp,做设计的都很忙,按需学习才是现实的