按规范,电缆有最大允许弯曲半径要求,电缆水平偏移时弯曲段投影长度公式为L≥(4RX-X^2)^0.5。
要反复多次使用该要求绘制电缆弯曲线,不胜其扰,因此采用lisp编写了一段程序来自动绘制。该
程序以测试在浩辰CAD2019、AutoCAD2021上没有问题。
 - ;指定电缆允许弯曲半径及水平偏移起止点,自动绘制电缆弯曲线
- (defun c:tt()
- (setq v1 (getvar "osmode"))
- (setq v2 (getvar "cmdecho"))
- (setq v3 (getvar "blipmode"))
- (setq R (getreal "\n请输入电缆允许弯曲半径(mm):"))
- (setq p1 (getpoint "\n请指定水平弯曲起点:"))
- (setq p2 (getpoint "\n请指定水平弯曲止点:"))
- (if (> (car p1) (car p2))
- (progn (setq p0 p1) (setq p1 p2) (setq p2 p0)))
- (setvar "osmode" 0)
- (setvar "cmdecho" 0)
- (setvar "blipmode" 0)
- (setq p3 (list (/ (+ (car p1) (car p2)) 2) (/ (+ (cadr p1) (cadr p2)) 2)))
- (setq X (abs (- (cadr p1) (cadr p2)))) ;计算偏移距离
- (if (> X (* 4 R))
- (progn
- (princ "\n偏移距离过大!")
- (exit)
- )
- (setq L (sqrt (- (* 4 R X) (* X X)))) ;计算弯曲段投影长度
- )
- (setq p4 (list (- (car p3) (* L 0.5)) (cadr p1))) ;圆弧1起点
- (setq p5 (list (+ (car p3) (* L 0.5)) (cadr p2))) ;圆弧2起点
- (if (> (cadr p2) (cadr p1))
- (progn
- (setq p6 (polar p4 (* pi 0.5) R)) ;圆弧圆心1
- (setq p7 (polar p5 (* pi -0.5) R)) ;圆弧圆心2
- (command "arc" "c" p6 p4 p3)
- (command "arc" "c" p7 p5 p3)
- (if (< L (- (car p2) (car p1)))
- (progn
- (command "line" p1 p4 "")
- (command "line" p2 p5 "")
- )
- )
- )
- (progn
- (setq p6 (polar p4 (* pi -0.5) R)) ;圆弧圆心1
- (setq p7 (polar p5 (* pi 0.5) R)) ;圆弧圆心2
- (command "arc" "c" p6 p3 p4)
- (command "arc" "c" p7 p3 p5)
- (if (< L (- (car p2) (car p1)))
- (progn
- (command "line" p4 p1 "")
- (command "line" p5 p2 "")
- )
- )
- )
- )
- (setvar "osmode" v1)
- (setvar "cmdecho" v2)
- (setvar "blipmode" v3)
- )
|