CAD二次开发仿燕秀工具箱模胚dcl对话框,lisp加载图片实例

  • A+
所属分类:CAD二次开发

先看图过个瘾,

CAD二次开发仿燕秀工具箱模胚dcl对话框,lisp加载图片实例

以上是仿燕秀工具箱里面的模胚对话框,完全是dcl和lisp打造出来的,

仿此燕秀插件里面的这个对话框的目的是,我在网上找了很多dcl对话框的例子教程,都是在别的地方复制的,完整性根本就是扯淡,原创的又搜不到,最啃爹的就是这种的,搜到的都是样子,无法加载,或者,报错,说白了,网上搜到的基本没有多大的用处。

此dcl对话框界面里面,,每个种按钮都有一个例子,包括里面的按钮连接响应事件。

包含以下DCL按钮例子

list_box 控件列表 ListBox,绑定数据,加载数据,响应事件。读取值,

edit_box文本控件输入控件,读取值,绑定赋值,TextBox

toggle复选框控件CheckBox,选中,打勾,enabled 屏蔽控件

image_button、image 控件加载图片,控制大小,背景颜色

radio_button,单选按钮控件,默认选中,排版,RadioButton

打开网站等实例

dcl界面排版,其实只要知道下面几个容器的作用就很好控制控件的位置,和大小。

控件容器:

容器的作用说通俗点就是,装拿东西的一种器具,相当于你吃饭米饭要用碗成,当然盘子也可以,但是,虽然都能装,但是总体看上去形状是变了,dcl对话框排版,就是这样控制控件位置的。

dialog  总对话框,容纳所有的控件的一个容器。前加标识,在lisp里面调用。具体看下面的原代码

boxed_column ,控制其他控件按列排序,显示外边框,相当于vs里面的GroupBox1控件,

column ,控制其他控件按列排序,无label参数,不显示外边框,有label参数,和上面控件一样

boxed_row 控制其他控件按行排列,意思把控件约束到一行。显示外边框

row 控制其他控件按行排列,意思把控件约束到一行。无label参数,不显示外边框

radio_row 约束单选选,横着排列,也叫行排列

radio_column 约束单选选,竖着排列,也叫列排列

boxed_radio_column ,约束但选项或者按钮,竖着排列

boxed_radio_row ,约束但选项或者按钮,横着排列

上图完整的dcl对话框源码

/*网站:老伙计----huojibk.com,传播者请保留作者信息*/
huojicom:dialog {
    label = "网站:huojibk.com,老伙计仿燕秀模架DCL对话框" ;
    :boxed_row {
        :text {
            label = "huojibk.com ,如有打赏,本人免费更新dcl制作视频,感谢您的支持" ;
        }
        :button {
    key = "www0" ;
            label = "详情" ;
        }
}
    :row {
        :radio_column {
            :radio_row {
                :column {
                    label = "模配厂家" ;
                    :list_box {
                        list = "龙记\n老伙计\nhuojibk.com" ;
key = "mm1";
                    }
                }
                :column {
                    label = "模胚內型" ;
                    :list_box {
                        list = "大水口\n网站huojibk.com\n老伙计仿制" ;
key = "mm2";
                    }
                }
            }
            :radio_row {
                :column {
                    label = "模胚型号" ;
                    :button {
                        fixed_height = true ;
                        fixed_width = true ;
                        height = 3 ;
                        label = "图选" ;
key = "tuxuan" ;
                        width = 10 ;
                    }
                    :list_box {
                        list = "AI\nAI1\nAI2\nAI3\nAI3\nAI5\n老伙计" ;
                    }
                }
                :column {
                    label = "模胚规则" ;
                    :button {
                        label = "量内膜X" ;
                    }
                    :button {
                        label = "量内膜Y" ;
                    }
                    :list_box {
                        list = "1520\n1520\n1520\n1520\n1520\n1520\n1520\n1520\n1520\n1520\n1520\n1520\n" ;
                    }
                }
            }
        }
        :radio_column {
            :row {
                :column {
                    :boxed_column {
                        :radio_row {
                            :text {
                                label = "A板" ;
                            }
                            :edit_box {
    key = "aban" ;
                                edit_width = 5 ;
                                fixed_width = true ;
                            }
                            :popup_list {
                                edit_width = 5 ;
                                fixed_width = true ;
                                list = "25\n30\n25\n30" ;
                            }
                            :button {
                                label = "测量1" ;
key = "acban";
                            }
                        }
                        :radio_row {
                            :text {
                                label = "B板" ;
                            }
                            :edit_box {
    key = "bban";
                                edit_width = 5 ;
                                fixed_width = true ;
                            }
                            :popup_list {
                                edit_width = 5 ;
                                fixed_width = true ;
                                list = "25\n30\n25\n30" ;
                            }
                            :button {
                                label = "测量" ;
                            }
                        }
                        :radio_row {
                            :text {
                                label = "C板" ;
                            }
                            :edit_box {
                                edit_width = 5 ;
                                fixed_width = true ;
                            }
                            :popup_list {
                                edit_width = 5 ;
                                fixed_width = true ;
                                list = "25\n30\n25\n30" ;
                            }
                            :button {
                                label = "测量" ;
                            }
                        }
                        :radio_row {
                            :text {
                                label = "A B 板间距" ;
                            }
                            :edit_box {
                                edit_width = 5 ;
                                fixed_width = true ;
                            }
                            :popup_list {
                                list = "0.0\n30\n25\n30" ;
                            }
                        }
                        :radio_row {
                            :text {
                                label = "垃圾钉高度" ;
                            }
                            :edit_box {
                                edit_width = 5 ;
                                fixed_width = true ;
                            }
                            :popup_list {
                                list = "0.0\n30\n25\n30" ;
                            }
                        }
                    }
                    :boxed_column {
                        :radio_row {
                            :text {
                                label = "导柱位置:" ;
                            }
                            :radio_button {
                                label = "前置" ;
                                value = "1" ;
key = "EGP3" ;
                            }
                            :radio_button {
                                label = "后置" ;
key = "EGP2" ;
                            }
                        }
                        :radio_row {
                            :text {
                                label = "水口边位置:" ;
                            }
                            :radio_button {
                                label = "外边" ;
                                value = "1" ;
                            }
                            :radio_button {
                                label = "里边" ;
                            }
                        }
                    }
                }
                :boxed_column {
                    :image_button {
    key = "sp_im";
                        color = 1;
                        fixed_height = true ;
                        fixed_width = true ;
                        height = 15 ;
                        width = 30 ;
                    }
                    :text {
                        label = "模胚总重量" ;
                    }
                    :text {
                        label = "模胚最大尺寸 : 1000 X 2020" ;
                    }
                    :text {
                        label = "模内最大尺寸" ;
                    }
                    :text {
                        label = "测量模尺寸" ;
                    }
                }
            }
            :boxed_row {
                :toggle {
key = "EGP1" ;
                }
                :button {
                    label = "EGP" ;
                }
                :toggle {
                    label = "基准" ;
                }
                :toggle {
                    label = "螺丝" ;
                    value = "1" ;
                }
                :toggle {
                    label = "回针" ;
                    value = "1" ;
                }
                :toggle {
                    label = "导柱" ;
                    value = "1" ;
                }
                :toggle {
                    is_enabled = false ;
                    label = "水口边" ;
                    value = "1" ;
                }
                :toggle {
                    label = "边倒角" ;
                }
            }
        }
    }
    :row {
        :text {
            label = "作者:老伙计" ;
        }
        :button {
            label = "看图" ;
        }
        ok_only;
        :button {
            key = "ESC" ;
            label = "退出" ;
        }
        :button {
    key = "shipin" ;
            label = "加视频" ;
        }
        :button {
    key = "www1" ;
            label = "作者主页" ;
        }
    }
}

复制

复制以上源码到dcl文件里面,自己新建一个文本,把后缀改为dcl即可

上面是dcl原来,光dcl对话框源码是没有任何功能的,所有响应事件连接按钮等,都写在lisp源码里面的来执行数据和命令的。

lsp源码我这里面不粘贴了,直接上传整个文件吧,要是粘贴在这,说不定哪天人家有搬到别的地方了, 又是不完整的。

lisp里面的源码我自己测试过,加载界面启动赋值都正常。只需要把里面的路径改为自己的路径即可

dcl加载图片制作方法- 幻灯片制作: http://huojibk.com/2021/05/804.html

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: