明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 24830|回复: 55

[灌水]来个难度大点的模拟直升飞机起飞

  [复制链接]
发表于 2005-4-8 13:16:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-4-10 12:53:43 编辑

没有优化,根据 dispbbs.asp?BoardID=2&ID=24802 改编。 模拟直升飞机起飞。 ;;;C:qf2 起飞
;;;ESC 停止
(defun c:qf2 ( / ss e0 e1 e2 sj a i ii iii s0 s1 s2 k)
(vl-cmdf ".undo" "be")
(setq ss (ssadd))
(setq e0 (ssname(ssget "X"(list(cons 0 "insert")(cons 2 "lxj")))0))
(setq e1 (ssname(ssget "X"(list(cons 0 "insert")(cons 2 "lxj-wy")))0))
(setq e2 (ssname(ssget "X"(list(cons 0 "insert")(cons 2 "js")))0))
(mapcar '(lambda(x)(ssadd x ss))(list e0 e1 e2))
(SETQ sj 0 a 0 i 0 )
(while T
(setq s0(entget e0)
s1(entget e1)
s2(entget e2))
(setq i (+ i 5)
SJ (if k 0 (+ sj (/ i PI 50)))
del (if (>= i 300) 0 (- 300 i)))
(if (< (* 5 PI) sj) (setq k T))
(if (and(= del 0)(not ii))(setq ii 1))
(if k
(repeat 4
(setq sj (+ sj (* PI 1.25)))
(entmod (setq s0 (subst (cons 50 SJ) (assoc 50 S0) S0)))
(entmod (setq s1 (subst (cons 50 SJ) (assoc 50 S1) S1)))
(COMMAND "DELAY" del)
)
(progn
(entmod (setq s0 (subst (cons 50 SJ) (assoc 50 S0) S0)))
(entmod (setq s1 (subst (cons 50 SJ) (assoc 50 S1) S1)))
(COMMAND "DELAY" del)
)
)
(if ii (qfmov))
;(COMMAND "DELAY" del)
)
(princ)
)
(defun qfmov ()
(setq s0 (entget e0)
s1 (entget e1)
s2 (entget e2)
)
(setq ii (* ii 1.1))
(if (>= ii 1000)
(if (not iii)
(setq iii 2)
(setq iii (* iii 1.1))
)
)
(mapcar
'(lambda (x)
(setq e10 (cdr (assoc 10 x)))
(cond
((< ii 5000)
(if (eq s1 x)
(setq e10 (mapcar '+ (list 0 ii 0) e10))
(setq e10 (mapcar '+ (list 0 0 ii) e10))
)
(entmod (subst (cons 10 e10) (assoc 10 x) x))
)
(T
(setq e10 (mapcar '+ (list iii 0 0) e10))
(if (< iii 5000)
(entmod (subst (cons 10 e10) (assoc 10 x) x))
)
)
)
)
(list s0 s1 s2)
)
) (defun c:reqf ()
(vl-cmdf ".undo" "e")
(vl-cmdf ".u")
) 更新版本(编译过)在6楼

本帖子中包含更多资源

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

x
 楼主| 发表于 2005-4-8 13:23:00 | 显示全部楼层
c:reqf         恢复。


运行到后面,抓图软件无法跟上速度,演示没有体现出效果。自己试试就知道





本帖子中包含更多资源

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

x
发表于 2005-4-8 13:25:00 | 显示全部楼层
怎么用啊?是不是LSP程序啊?存为什么格式的程序?
发表于 2005-4-8 17:14:00 | 显示全部楼层
哗!! !!!


爽耶.....

发表于 2005-4-8 18:40:00 | 显示全部楼层
够狠的啦,
 楼主| 发表于 2005-4-8 19:09:00 | 显示全部楼层
本帖最后由 作者 于 2005-4-8 19:53:39 编辑

下面附件为改进版本,和上面提供的程序对比,主要处理了加速提升和加速前进的平滑过渡问题。
;| qf2 = 模拟直升飞机起飞过程 -------------------------梁雄啸.2004.5
1.先是螺旋桨逐渐加速旋转
2.螺旋桨加速到一定速度,飞机逐渐加速提升。
3.提升到一定高度,飞机减速提升,并开始加速前进。
4.提升到一定高度,飞机不再提升,继续加速前进。(本程序前进距离10000,可改大)
方法:
先打开 qf3.dwg(下面附件的dwg只是改了停机坪的颜色,让飞机更醒目,其他没变).不用转动视角。再加载 qf2.lsp 或qf2.fas.输入以下命令:
C:qf2 ;起飞
ESC ;停止
c:reqf ;恢复.
|;

本帖子中包含更多资源

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

x
发表于 2005-4-8 22:52:00 | 显示全部楼层
确实爽,做到这个程度着实不简单,向你们学习
发表于 2005-4-9 00:27:00 | 显示全部楼层
对编程我是白痴一个,但也很想学一下。以前学过半年TC,不过学到指针后就没再坚持下去。


请问“人挡杀人、佛挡杀佛”学CAD二次编程难不难?


不要对我说“难者不会,会者不难”啊,说点切实的。先谢了。
发表于 2005-4-9 10:16:00 | 显示全部楼层
不简单呀,我是主要搞二维的,大家都说cad是二维软件吗!!所以对cad的三维功能不屑一顾,不过看来还是挺有意思的,以后研究研究
发表于 2005-4-9 11:31:00 | 显示全部楼层
无痕兄太强了吧你也
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 01:54 , Processed in 0.196256 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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