乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 128|回复: 9

[求助]程序如何改进

[复制链接]

3

主题

13

帖子

2

银币

初来乍到

Rank: 1

铜币
25
发表于 2004-3-15 08:31:00 | 显示全部楼层 |阅读模式
各位大侠,初学上手,请教两个问题:
①、以下绘制阀门程序,如何从vv.dat文件中筛选取出正确的阀门数据(假设已知阀门型号、直径,怎样找到对应的数据?);
②、产生的阀门如何形成块,并予以属性(如阀门型号、直径);
;                                                                                                                                                                                                                                                                                                                                                                                                         ;
;阀门高度=VH 阀门直径=VDN 阀门长度=VL 手轮直径=VO         ;
;阀门型号=VNAME                                                                                                                                                                                                                                                                                         ;
;                                                                                                                                                                                                                                                                                                                                                                                                         ;
(defun c:test (/ )
         (setq filename "D:\\lsptry\\vv.txt");数据文件名称
         (setq f (open filename "r"))
         (setq ff (read (strcat "(" (read-line f) ")")))
         (close f)
       
        (setq vdn (nth 1 ff)
                                                         vl         (nth 2 ff)
                                                         vh         (nth 3 ff)
                                                         vo         (nth 4 ff)
                                                         )
         
         (setq pt (getpoint "请点击或键入点坐标 ?"))
         (setq ptx (car pt)
                                                         pty (cadr pt))
         (setq ll (/ vl 2)
                                                         dd (/ vdn 2)
                                                         oo (/ vo 2))
         (setq a (/ vl 20))
         (setq pt1         (list (- (+ ptx ll) a) (+ pty dd))
                                                         pt2         (list (- (+ ptx ll) a) (- pty dd))
                                                         pt3         (list (+ (- ptx ll) a) (- pty dd))
                                                         pt4         (list (+ (- ptx ll) a) (+ pty dd))
                                                         pt5         (list (- ptx oo) (+ pty (* vh 0.9)))
                                                         pt6         (list ptx (+ pty (* vh 0.9)))
                                                         pt7         (list (+ ptx oo) (+ pty (* vh 0.9)))
                                                         pt8         (list ptx (+ pty vh))
         )
         (setq
                                                         pt9         (list (+ (car pt1) a) (+ pty dd))
                                                         pt10 (list (+ (car pt2) a) (- pty dd))
                                                         pt11 (list (+ (car pt9) a) (+ pty dd))
                                                         pt12 (list (+ (car pt10) a) (- pty dd))
                                                         pt13 (list (- (car pt4) a) (+ pty dd))
                                                         pt14 (list (- (car pt3) a) (- pty dd))
                                                         pt15 (list (- (car pt13) a) (+ pty dd))
                                                         pt16 (list (- (car pt14) a) (- pty dd))
         )
         
         (command "_.line" pt1 pt2 pt4 pt3 "c"
                                                                                 "_.line" pt pt8 ""         
                                                                                 "_.line" pt5 pt7 ""
                                                                                 "_.line" pt1 pt6 pt4 ""
                                                                                 "_.line" pt9 pt10 ""
                                                                                 "_.line" pt11 pt12 ""
                                                                                 "_.line" pt13 pt14 ""
                                                                                 "_.line" pt15 pt16 ""
         )
         (princ)
)
------------
好人一生平安
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-15 12:08:00 | 显示全部楼层
能先说说你的程序有什么不足或问题吗
回复

使用道具 举报

3

主题

13

帖子

2

银币

初来乍到

Rank: 1

铜币
25
发表于 2004-3-15 16:34:00 | 显示全部楼层
对不起,MEFLYING老师让你见笑了,初学肯定有很多问题,我想至少有这样几点:
①、程序不规范;
②、变量太多;
③、未处理局部变量。
目前程序能够通过,我的想法一步一步的扩展,最后再加上对话框,将其完整起来,并推广到其他类似的东西。希望MEFLYING多多指教,以便菜鸟也能飞翔。
同时,上传VV.DAT如下:
型号                公称直径 长度 高度 手轮直径 法兰                 压力
Z41H-16c         50                 250         402         200 光滑面                 1.6
Z41H-16c         100         300         588         240 光滑面                 1.6
Z41H-16c         200         400         885         400 光滑面                 1.6
Z41H-16c         300         500         1232 560 光滑面                 1.6
Z41H-25                 50                 250         415         350 光滑面                 2.5
Z41H-25                 100         300         620         320 光滑面                 2.5
Z41H-25                 200         400         1041 400 光滑面                 2.5
Z41H-25                 300         500         1474 560 光滑面                 2.5
Z41H-40                 50                 250         415         350 凸面                                 4.0
Z41H-40                 100         350         684         320 凸面                                 4.0
Z41H-40                 200         550         1110 450 凸面                                 4.0
Z41H-40                 300         750         1348 560 凸面                                 4.0
Z41H-64                 50                 250         415         250 梯形槽面 6.4
Z41H-64                 100         350         633         360 梯形槽面 6.4
Z41H-64                 200         550         1100 450 梯形槽面 6.4
Z41H-100         50                 300         467         400 梯形槽面 10
Z41H-100         100         350         665         400 梯形槽面 10
Z41H-100         200         550         972         560 梯形槽面 10
Z41H-160         50                 300         467         400 梯形槽面 16
Z41H-160         100         450         680         400 梯形槽面 16
Z41H-160         200         750         1160 720 梯形槽面 16
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-15 17:18:00 | 显示全部楼层
如何不规范了?
要设置成局部变量,只要把所有的变量都写入(defun c:test( / ...)中...处就可以了
回复

使用道具 举报

26

主题

112

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
216
发表于 2004-3-15 19:32:00 | 显示全部楼层
(read-line [file-desc])
                         此函数将由 file-desc 中已打开的文件或键盘中读入一行字符。
(strcat string1 [string2]...)
此函数将用来连接string1、string2等字符串, 并返回最后得到的字符串。
read string)         
此函数将返回 string 的第一个表或原子。但 string 不可以包含空格, 除非是在表或字符串中 。read 会返回它的参数转换的相对应数据类型此函数将用来连接string1、string2等字符串, 并返回最后得到的字符串。
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-15 19:40:00 | 显示全部楼层
楼上的,不明白你总是放一些帮助内容上来做什么,以上这些内容似乎和楼主的问题没什么关系。。。
回复

使用道具 举报

3

主题

13

帖子

2

银币

初来乍到

Rank: 1

铜币
25
发表于 2004-3-16 08:35:00 | 显示全部楼层
楼上meflying老师,关于局部变量的教导,我已明白,深表感谢!我问的两个问题,能不能给个例子,以便临摹。
最为困惑的是从vv.dat文件中,如何筛选出第一项(阀门型号)、第二项(阀门直径)符合要求的一组数据。
解决完这个问题,可再请教你如何形成块,并赋予属性,以便计料。
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-16 08:37:00 | 显示全部楼层
读VV.DAT你不是已经做到了吗?
         (setq ff (read (strcat "(" (read-line f) ")")))
         (close f)
       
        (setq vdn (nth 1 ff)
                                                         vl         (nth 2 ff)
                                                         vh         (nth 3 ff)
                                                         vo         (nth 4 ff)
                                                         )
回复

使用道具 举报

3

主题

13

帖子

2

银币

初来乍到

Rank: 1

铜币
25
发表于 2004-3-16 16:34:00 | 显示全部楼层
但我不会筛选合适的阀门型号,不知如何补充,看过您教别人的程序,只是画线,不存在选择,尝试过总不成功,为此非常苦恼。请meflying勿厌其烦,继续赐教,非常感谢。
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-16 20:12:00 | 显示全部楼层
筛选要条件才可以的,你没有给出条件,我也不知道什么阀门是合适的。。。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-15 10:57 , Processed in 3.335375 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表