左手钢筋lisp_lisp 命令

SETQ L (* 10.0 (GETREAL "请输入计算跨径(L):\n")))

(SETQ F (* 10.0 (GETREAL "请输入矢高(f):\n")))

(SETQ G (* 10.0 (GETREAL "请输入拱肋截面高(G):\n")))

(SETQ N (* 10.0 (GETREAL "请输入坐标计算步长(N):\n")))

(SETQ K (LOG (+ M (EXPT (- (* M M) 1.0) 0.5))))

(SETQ NUM (FIX (/ L N)))

(SETQ X0 (/ L -2.0))

(COMMAND "LIMITS" '(-2000 -1000) '(2000 1000))

(COMMAND "ZOOM" "W" '(-1000 -500) '(1000 500))

(COMMAND "PLINEWID" 0)

(COMMAND "PLINE")

(SETQ FN (GETDIR (FINDFILE "XLX.LSP")))

(SETQ FN (OPEN (STRCAT FN "\\悬链线坐标.TXT") "w"))

(WRITE-LINE (STRCAT " 拱轴系数(m)为:" (RTOS (/ M 10.0) 2 4)) FN)

(WRITE-LINE (STRCAT " 计算跨径(L)为:" (RTOS (/ L 10.0) 2 4)) FN)

(WRITE-LINE (STRCAT " 矢 高 (f) 为:" (RTOS (/ F 10.0) 2 4)) FN)

(WRITE-LINE "\n 各点坐标为:" FN)

(WRITE-LINE "\n 上缘坐标 拱轴坐标 下缘坐标 水平倾角" FN)

(SETQ KS (/ (* 2.0 X0) L))

(SETQ KK (* 0.5 (+ (EXP (* KS K)) (EXP (* KS K -1.0)))))

(SETQ KK1 (* 0.5 (- (EXP (* KS K)) (EXP (* KS K -1.0)))))

(SETQ TAN (ATAN (/ (* 2.0 F K KK1) (* L (- M 1.0)))))

(SETQ Y (* (/ F (- 1.0 M)) (- KK 1.0)))

(SETQ TAN1 (- (/ PI 2.0) TAN))

(SETQ PT1 (POLAR (LIST X0 Y) TAN1 (/ G 2.0)))

(SETQ PT2 (POLAR (LIST X0 Y) TAN1 (/ G -2.0)))

(SETQ L1 (ABS (* 2.0 (NTH 0 PT1))))

(SETQ L2 (ABS (* 2.0 (NTH 0 PT2))))

(SETQ F1 (+ F (- (/ G 2.0) (- (NTH 1 PT1) Y))))

(SETQ F2 (+ F (- (- Y (NTH 1 PT2)) (/ G 2.0))))

(REPEAT (+ NUM 1)

(SETQ KS (/ (* 2.0 X0) L))

(SETQ KK (* 0.5 (+ (EXP (* KS K)) (EXP (* KS K -1.0)))))

(SETQ KK1 (* 0.5 (- (EXP (* KS K)) (EXP (* KS K -1.0)))))

(SETQ TAN (ATAN (/ (* 2.0 F K KK1) (* L (- M 1.0)))))

(SETQ Y (* (/ F (- 1.0 M)) (- KK 1.0)))

(SETQ GG1 (+ (/ G 2.0) (XLZBY F1 L1 X0 M)))

(SETQ GG2 (- (/ G 2.0) (XLZBY F2 L2 X0 M)))

(WRITE-LINE (STRCAT " " (RTOS (/ X0 10.0) 2 4) " " (RTOS (/ GG1 10.0) 2 4) " " (RTOS (/ X0 10.0) 2 4) " " (RTOS (/ Y 10.0) 2 4) " " (RTOS (/ X0 10.0) 2 4) " " (RTOS (/ GG2 10.0) 2 4) " " (RTOS (/ (* TAN 180.0) PI) 2 6)) FN)

(SETQ PT0 (LIST X0 Y 0))

(COMMAND PT0)

(SETQ X0 (+ X0 N))

)

(IF (&gt (ABS (- L NUM)) 0.0001)

(PROGN

(SETQ X0 (/ L 2.0))

(SETQ KS (/ (* 2.0 X0) L))

(SETQ KK (* 0.5 (+ (EXP (* KS K)) (EXP (* KS K -1.0)))))

(SETQ KK1 (* 0.5 (- (EXP (* KS K)) (EXP (* KS K -1.0)))))

(SETQ TAN (ATAN (/ (* 2.0 F K KK1) (* L (- M 1.0)))))

(SETQ Y (* (/ F (- 1.0 M)) (- KK 1.0)))

(SETQ GG1 (+ (/ G 2.0) (XLZBY F1 L1 X0 M)))

(SETQ GG2 (- (/ G 2.0) (XLZBY F2 L2 X0 M)))

(WRITE-LINE (STRCAT " " (RTOS (/ X0 10.0) 2 4) " " (RTOS (/ GG1 10.0) 2 4) " " (RTOS (/ X0 10.0) 2 4) " " (RTOS (/ Y 10.0) 2 4) " " (RTOS (/ X0 10.0) 2 4) " " (RTOS (/ GG2 10.0) 2 4) " " (RTOS (/ (* TAN 180.0) PI) 2 6)) FN)

(SETQ PT0 (LIST X0 Y 0))

(COMMAND

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值