明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2205|回复: 8

局部变量的设置

[复制链接]
发表于 2005-6-27 11:57:00 | 显示全部楼层 |阅读模式
(defun jssj (t1 m v / pt1 pt2 L t2 t0)
(setq t1 (getreal "\n地面集水时间<t1>:"))
(setq m (getreal "\n折减系数<m>:"))
(setq pt1 (getpoint "\n选择该管段第一点:"))
(setq pt2 (getpoint pt2 "\n第二点:"))
(setq L (distance pt1 pt2)) ;L,管段长度
(setq v (getreal "\n管道内雨水流速:"))
(setq t2 (/ L (* 60 v)))
(setq t0 (+ t1 (* m t2)))
) 该段函数不能正常运行,但去掉局部变量以及行参后可正常运行,哪位详细讲讲如何设局部变量和行参吗?谢谢
发表于 2005-6-27 12:16:00 | 显示全部楼层
不能正常的原因为“(setq pt2 (getpoint         pt2 "\n第二点:"))”应该为“(setq pt2 (getpoint pt1 "\n第二点:"))”,并非局部变量及行参的影响,去掉局部变量以及行参后仍然不能正常运行。
发表于 2005-6-27 13:59:00 | 显示全部楼层
本帖最后由 作者 于 2005-6-27 18:39:52 编辑

这个函数好像定义得没有意义啊,应该如此: (defun c:jssj (/ t1 m v pt1 pt2 L t2 t0)
(setq t1 (getreal "\n地面集水时间<t1>:"))
(setq m (getreal "\n折减系数<m>:"))
(setq pt1 (getpoint "\n选择该管段第一点:"))
(setq pt2 (getpoint pt1 "\n第二点:"))
(setq L (distance pt1 pt2)) ;L,管段长度
(setq v (getreal "\n管道内雨水流速:"))
(setq t2 (/ L (* 60 v)))
(setq t0 (+ t1 (* m t2)))
)
 楼主| 发表于 2005-6-27 16:28:00 | 显示全部楼层
二楼说的问题已经修改,这是上传是输入笔误,现主要是希望大家讨论一下局部变量的设置
发表于 2005-6-27 18:42:00 | 显示全部楼层
按楼主那样子的程序应该如此运行的:(jssj t1 m v)


但t1 m v这三个参数没有意义
发表于 2005-6-27 20:04:00 | 显示全部楼层
这样可行?
  1. (load "xyp_lib");加载通用函数
  2. ;|
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  5. 1.在acad.lsp中增加(load"xyp_lib")
  6. 2.在每个程序内增加(load"xyp_lib")
  7. 3.在command下,输入(load"xyp_lib")
  8. 4.在菜单.mnl中增加(load"xyp_lib")
  9. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  10. 通用函数下载地址:
  11. dispbbs.asp?boardID=3&ID=37554&page=1
  12. |;(defun c:jssj (/ pt1 pt2 L t2 t0)
  13.    (CMDLA0)
  14.    (setq  t1 (UREAL 7 "" "\n地面集水时间" t1)
  15.   m   (UREAL 7 "" "\n折减系数" m)
  16.   v   (UREAL 7 "" "\n管道内雨水流速" v)
  17.    )
  18.    (while (setq pt1 (getpoint "\n选择该管段第一点<退出> : "))
  19.        (if  (setq pt2 (getpoint pt1 "\n第二点<退出> : "))
  20.            (progn (setq L   (distance pt1 pt2)
  21.          t2 (/ L (* 60 v))
  22.          t0 (+ t1 (* m t2))
  23.            )
  24.   (princ"\nt0 = ")
  25.   (princ t0)
  26.            )
  27.        )      
  28.    )
  29.    (CMDLA1)
  30. )
 楼主| 发表于 2005-6-28 11:19:00 | 显示全部楼层
to5楼,这段程序本来就是想作为子程序来用的,分离开来看,意义不大,但不影响这个话题的讨论,因而未将整个程序全贴过来,


to6楼,程序是可行的,但能否提供原代码呢,


by,斑竹好像在很多地方都套用你的通用函数哦
发表于 2005-6-28 12:24:00 | 显示全部楼层
没有理解楼主要讨论局部变量那方面的问题
 楼主| 发表于 2005-6-29 09:08:00 | 显示全部楼层
现在知道了那就说两句吧,我洗耳恭听!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 15:50 , Processed in 0.190552 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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