明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1670|回复: 3

谁会作直弹簧、锥弹簧AUTOLISP程序

[复制链接]
发表于 2005-4-26 13:18:00 | 显示全部楼层 |阅读模式
各位,请帮忙一下,谁会作直弹簧、锥弹簧AUTOLISP程序,谢谢

发表于 2005-4-26 20:14:00 | 显示全部楼层
 楼主| 发表于 2005-4-27 09:34:00 | 显示全部楼层
厉害,谢谢
 楼主| 发表于 2005-4-27 09:36:00 | 显示全部楼层
这是圆柱弹簧AUTOLISP,能运行,但不能执行图形,各位高手,为什么呢? (defun C:spring()
(setq bp (getpoint "\n 弹簧中心点"))(princ) ;;;指定弹簧中心位置
(setq dw (getreal "\n 弹簧直径="))(princ) ;;;弹簧外径直径
(setq d (getreal "\n 弹簧丝径="))(princ) ;;;弹簧钢丝直径
(setq pitch (getreal "\n 弹簧节距="))(princ) ;;;输入弹簧节距
(setq len (getreal "\n 弹簧长度="))(princ) ;;; 弹簧总长度
(setq n (getint "\n 段数="))(princ) ;;;每圈分段画成
(setq r (/(-dw d) 2)) ;;;中径半径
;(setq d1 (-d(* 1.0825 pitch))) ;;;螺纹小径,画螺纹用
;(setq r1 (/d1 2)) ;;;螺纹小径半径
(setq m1 (fix (* n 1.25))) ;;;支承圈段数,每段1.25圈
(setq m0 (fix (* n (/(- len (* d 2)) pitch)))) ;;;有效圈数乘每圈段数
(setq delta (/ (* 2.0 pi) n)) ;;;步距角
(setq j0 (/ pitch n)) ;;;有效圈每段高度
(setq bz (caddr bp)) ;;;弹簧中心点的Z坐标
(setq ang 0) ;;;起始角度
(setq jj 0)
(command "UCS" "O" bp) ;;;用户坐标系原点移到弹簧中心
(command "3dpoly" (list r 0 0)) ;;;画三维多线
;;;画下支承端 (repeat m1 ;;;支承端段数 (setq jj (+ jj 1))
(setq ang (+ delta ang))
(setq pt1 (list (* r (cos ang))(* r (sin ang))(+ bz (* j1 jj))))
(command pt1) )
;;;画有效圈
(setq bz (caddr pt1))
(setq jj 0)
(repeat m0
(setq jj (+ jj 1))
(setq ang (+ delta ang))
(setq pt0 (list (* r (cos ang))(* r (sin ang))(+ bz (* j0 jj))))
(command pt0)
)
;;;画上支承端
(setq bz (caddr pt0))
(setq jj 0)
(repeat m1
(setq jj (+ jj 1))
(setq ang (+ delta ang))
(setq pt2 (list (* r (cos ang))(* r (sin ang))(+ bz (* j1 jj))))
(command pt2)
)
(command " ")
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 06:40 , Processed in 0.155513 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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