乐筑天下

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

请教一个巨简单的问题

[复制链接]

11

主题

28

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
72
发表于 2004-3-18 13:13:00 | 显示全部楼层 |阅读模式
刚开始用lisp,请教一个巨简单的问题,就是我用dcl编的对话框里面有两个popuplist,"compn"和"comdn"我要让他实现当我选择compn的时候comdn的内容也随之变化
回复

使用道具 举报

11

主题

28

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
72
发表于 2004-3-18 13:19:00 | 显示全部楼层
还有,如何取出popuplist的具体值
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-18 13:55:00 | 显示全部楼层
1、在compn的动作函数里改变comdn的值,至于怎样定义和使用动作函数,以及怎样在程序中改变控件的值,可以参考帮助文件,有详细的介绍,而且还有例子。
2、不可以,你只能做一个与其内容对应的表,然后根据返回的索引值从表中取得
回复

使用道具 举报

11

主题

28

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
72
发表于 2004-3-18 15:46:00 | 显示全部楼层
(action_tile "ComPN" (setq PN ( get_tile "ComPN")))好像没什么用啊?不管我怎么点,pn返回的都是"0"
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-18 16:43:00 | 显示全部楼层
应该不会,你把程序和DCL文件给出来看看
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2004-3-18 17:03:00 | 显示全部楼层
各位高手,小弟想问一下,cad2004有没有修改快捷键的acad.pgp,如果有,那文件在哪呢?谢谢!
回复

使用道具 举报

11

主题

28

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
72
发表于 2004-3-18 19:01:00 | 显示全部楼层
...(setq Pressure_list '("0.6MPa" "1.0MPa" "1.6MPa" "2.5MPa" "4.0MPa"))
...
...(action_tile "ComPN" "function1" )
(defun function1()
                (
                (setq PN ( get_tile "ComPN"))
                (setq ff (open "c:/soo.txt" "a"))
                (prin1 (nth (atoi PN) Pressure_list) ff)
                (close ff)
         )         
)
dcl没有问题,popuplist的key是compn,这里我就是先想把这个compn里面的内容取出来,放进"c:/soo.txt"里面看看对不对
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-18 19:08:00 | 显示全部楼层
不是你问你有没有问题,按你说的,我做出来是正确的,而你说不对,我就没什么好说的,只能看你的程序,看问题出在哪儿?为什么却这么费劲,不肯写出来?
看你的function1函数,函数内的头尾加两个括号是做什么的,想象,LISP中,括号的头一项是函数名,后面的是参数,这样你的头一项(setq PN ( get_tile "ComPN"))
返回的肯定是一个整数,就是要以整数作为函数名了,就象(1 ...)这样能正确吗
回复

使用道具 举报

11

主题

28

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
72
发表于 2004-3-18 19:18:00 | 显示全部楼层
呵呵,我才刚开始写,
(defun c:fg( / dcl_id)
                         (setq ep (getstring "\n法兰类型: "))
                 (setq basepoint (getpoint "\n基点: "))                       
                        (setq dcl_id(load_dialog "tmp.dcl"))
(defun dtr (a)
(* pi (/ a 180.0))
)
(defun setpoint(basepoint pointx)
        (foreach '+' ponitx basepoint)
)
(defun addline()
        (setq startpoint(list 12 13))
        (setq endpoint(list 0 0))
                (if (=(tblobjname "LAYER" "3") nil)
                                         (progn
                                                                         (entmake (list
                                                                                                                                                                          '(0 . "LAYER")
                                                                                                                                                                          '(100 . "AcDbSymbolTableRecord")
                                                                                                                                                                          '(100 . "AcDbLayerTableRecord")
                                                                                                                                                                                 '(6 . "CONTINUOUS") ;线型
                                                                                                                                                                                 '(62 . 3) ;颜色
                                                                                                                                                                                 '(70 . 0) ;图层状态
                                                                                                                                                                                         (cons 2 "3") ;图层名
                                                                                                                                                 )
                                                                         )
                                         )
        )
        (command "line" startpoint endpoint "")
)
(defun function1()
                (
                (setq PN ( get_tile "ComPN"))
                (setq ff (open "c:/soo.txt" "a"))
                (prin1 pn ff)
                (prin1 (nth (atoi pn) Pressure_list) ff)
                (close ff)
         )         
)
         
        (setq Pressure_list '("0.6MPa" "1.0MPa" "1.6MPa" "2.5MPa" "4.0MPa"))
                 (new_dialog "SO" dcl_id)
                 (start_list "ComPN" 3)
                 (mapcar 'add_list Pressure_list)        ;("0.6MPa" "1.0MPa" "1.6MPa" "2.5MPa" "4.0MPa"))
                 (end_list)               
                        (action_tile "ComPN" "function1" )
        (set_tile "TxtD" "90")
        (set_tile "TxtC" "14")
        (set_tile "TxtR" "3")
        (set_tile "TxtH" "22")
                (set_tile "Txtb" "2")
        (set_tile "Txtd" "41")
        (set_tile "Txtf1" "2")
        (set_tile "Txtf2" "4")
        (set_tile "Txtf3" "3")
        (set_tile "TxtW" "24")
        (set_tile "TxtX" "34")
        (set_tile "TxtY" "35")
        (set_tile "TxtZ" "23")
        (set_tile "TxtK" "60")
        (set_tile "TxtL" "14")
        (set_tile "Txtn_LowerCase" "4")
        (mode_tile "FrmFrongView" 1)
        (action_tile "ChkFrontView" "(mode_tile \"FrmFrongView\" (- 1 (atoi $value)))")                               
        (start_dialog)
        (addline)
        (unload_dialog dcl_id)
                 (princ)
)
DCL:SO : dialog{
        label="法兰参数";
        :row{
                :row{
                        :boxed_row{
                                label="法兰类型";
                                :column{
                                        :radio_button{
                                                label="FF";
                                                key="optFF";
                                        }
                                        :radio_button{
                                                label="M";
                                                key="optM";
                                        }
                                        :radio_button{
                                                label="FM";
                                                key="optFM";
                                        }
                                }
                                :column{
                                        :radio_button{
                                                label="RF";
                                                key="optRF";
                                        }
                                        :radio_button{
                                                label="T";
                                                key="optT";
                                        }
                                        :radio_button{
                                                label="G";
                                                key="optG";
                                        }
                                }
                        }
                }
                :row{
                        :column{
                                :popup_list{
                                        label="公称压力PN";
                                        key="ComPN";
                                }
                                :popup_list{
                                        label="公称通径DN";
                                        key="ComDN";
                                }
                                :edit_box{
                                        label="法兰外径D";
                                        key="TxtD";
                                }
                                :edit_box{
                                        label="法兰厚度C";
                                        key="TxtC";
                                }
                                :edit_box{
                                        label="圆角半径R";
                                        key="TxtR";
                                }       
                        }
                        :column{
                                :edit_box{
                                        label="法兰厚度H";
                                        key="ComH";
                                }
                                :popup_list{
                                        label="法兰内径B1";
                                        key="ComB1";
                                }
                                :popup_list{
                                        label="法兰颈(N)";
                                        key="TxtN";
                                }
                                :edit_box{
                                        label="坡口宽度b";
                                        key="Txtb";
                                }
                        }
               
                }
                :boxed_row{
                        label="密封面尺寸";
                        :column{
                                :edit_box{
                                        label="d";
                                        key="Txtd_Lowercase";
                                }
                                :edit_box{
                                        label="f1";
                                        key="Txtf1";
                                }
                                :edit_box{
                                        label="f2";
                                        key="Txtf2";
                                }
                                :edit_box{
                                        label="f3";
                                        key="Txtf3";
                                }
                               
                        }
                        :column{
                                :edit_box{
                                        label="W";
                                        key="TxtW";
                                }
                                :edit_box{
                                        label="X";
                                        key="TxtX";
                                }
                                :edit_box{
                                        label="Y";
                                        key="TxtY";
                                }
                                :edit_box{
                                        label="Z";
                                        key="TxtZ";
                                }
                               
                        }
                }
        }
        :row{
                :row{
                        :boxed_row{
                                label="预览";
                                :image{
                               
                                }
                        }
                }
                :row{
                        :boxed_column{
                                :edit_box{
                                        label="螺栓孔中心圆直径(K)";
                                        key="TxtK";                                       
                                }
                                :edit_box{
                                        label="螺栓孔直径(L)";
                                        key="TxtL";                                       
                                }
                                :edit_box{
                                        label="螺栓孔数量(n)";
                                        key="Txtn_lowercase";                                       
                                }
                        }
                }
                :row{
                        :column{
                                :boxed_row{
                                        label="出图选项";
                                        :toggle{
                                                label="主视图";
                                                key="ChkFrontView";
                                        }
                                        :toggle{
                                                label="俯视图";
                                                key="ChkTopView";
                                        }                                       
                                }
                                ok_cancel;
                        }
                                                :column{
                                :boxed_row{
                                        label="出图选项";
                                        key="FrmFrongView";
                                        :row{
                                                :column{
                                                        :radio_button{
                                                                label="正视图";
                                                                key="OptSurface";
                                                        }
                                                }
                                                :column{
                                                        :radio_button{
                                                                label="剖面";
                                                                key="OptSection";
                                                        }
                                                }
                                        }
                                        :row{
                                                :popup_list{
                                                        label="剖面线角度";
                                                        key="LblSectionAngle";
                                                       
                                                }
                                                :popup_list{
                                                        label="剖面线比例";
                                                        key="LblSectionScale";
                                                       
                                                }
                                        }
                                }                               
                        }
                }
        }
        //ok_cancel;       
}
我的东西才刚开始做,我就在这里学习visuallisp,就在处理这个对话框的时候没办法往下做了,
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-18 19:29:00 | 显示全部楼层
你的程序真的就是——(action_tile "ComPN" (setq PN ( get_tile "ComPN")))好像没什么用啊?不管我怎么点,pn返回的都是"0"
这个问题吗?
在我这里它根本就不能执行,首先foreach那里错了,还有我8楼说的
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-15 12:52 , Processed in 2.949578 second(s), 72 queries .

© 2020-2025 乐筑天下

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