dcl并列控件 lisp_CAD autolisp jjj-dcl-make函数

【实例简介】

[jjj-dcl-make lst aaa bbb]

函数名:jjj-dcl-make

参数

lst:dcl控件列表

aaa:dcl启动时要预先执行的函数名,参数类型为字符串或字符串表,如无预先要执行的函数,则用""空字符串占位。

示例:"(abc)"     '("(abc)" "(bcd)")

bbb:是否保留dcl文件选项,参数类型为整数。0为不保存,1为保存,保存地址为CAD根目录下的support文件夹中,保存名为dcl标题。

一.lisp表中各控件及组件的书写方式

控件及组件                                 lisp表格式                                                   示例

编辑框edit_box             ("控件类型" "控件显示名" "键值" "宽度" "函数名")                  ("bj" "输入" "su" "10" "(abc)")

文字text                   ("控件类型" "文字内容" "键值" "宽度" "函数名")                    ("wz" "文字内容" "wb" "10" "(abc)")

按钮button                 ("控件类型" "按钮名称" "键值" "宽度" "高度" "函数名")             ("an" "计算" "js" "10" "2" "(abc)")

按钮button                 ("控件类型" "按钮名称" "键值" "宽度" "高度" "函数名" "返回值")    ("an1" "确定" "qd" "10" "2" "(abc)" 1)

图像块image_block          ("控件类型" "键值" "宽度" "高度" "图像颜色")                      ("tx" "tx1" "10" "5" "256")

图标按钮icon_image         ("控件类型" "键值" "宽度" "高度" "函数名" "返回值")               ("tx1" "tb1" "10" "5" "(abc)" 1)

单选按钮radio_button       ("控件类型" "控件显示名" "键值" "预设值" "函数名")                ("dx" "极坐标" "zb" "1" "(abc)")

复选按钮toggle             ("控件类型" "控件显示名" "键值" "预设值" "函数名")                ("fx" "极坐标" "zb" "1" "(abc)")

列表框list_box             ("控件类型" "控件显示名" "键值" "宽度" "高度" "函数名")           ("lb" "种类" "zl" "10" "30" "(abc)")

下拉列表框popup_list       ("控件类型" "控件显示名" "键值" "宽度" "预设值" "函数名")         ("xllb" "种类" "zl" "15" "0" "(abc)")

滑杆slider                 ("控件类型" "键值" "宽度" "最小值" "最大值" "预设值" "函数名")    ("hg" "gl" "20" "0" "100" "50" "(abc)")

密码框edit_box             ("控件类型" "控件显示名" "键值" "宽度" "密码形态" "函数名")       ("mm" "密码" "mima" "20" "*" "(abc)")

行列row{                   ("组件" "组件属性" "组件对齐方式")                                ("row{" "kd" "zb")

纵列column{                ("组件" "组件属性" "组件对齐方式")                                ("column{" "kd" "zb")

行框boxed_row{             ("组件" "组件显示名" "组件属性" "组件对齐方式")                   ("boxed_row{" "文字内容" "kd" "zb")

纵框boxed_column{          ("组件" "组件显示名" "组件属性" "组件对齐方式")                   ("boxed_column{" "文字内容" "kd" "zb")

右括号}                    ("组件")                                                          ("}")

空一行spacer               ("组件")                                                          ("spacer;")

确定、取消组合键ok_cancel  ("组件")                                                          ("ok_cancel;")

确定键ok_noly              ("组件")                                                          ("ok_only;")

取消键cancel_button        ("组件")                                                          ("cancel_button;")

二.注意事项

1.所有的[控件类型、组件],这两种参数的书写方式为固定不可变的,所有参数的书写顺序也是不可变的。

2.所有控件及组件的参数中(行列、纵列、行框、纵框除外),[控件显示名、键值、文字内容、按钮名称、组件显示名、宽度、高度]这些参数

可不提供(如不提供参数时,必须用""空字符串占位)。图像块控件的[图像颜色]参数,以及其他控件的[函数名、返回值]参数均可缺省不提

供,无需用""空字符串占位。其余参数均为必填参数,且不可用""空字符串代替,所填参数也必须是dcl所指定的参数类型。an1型控件与tx1

型控件为特殊控件,点击此类控件后会关闭dcl,并返回参数表中指定的返回值,如提供了返回值而未提供函数名时,函数名参数则需用""

空字符串占位。返回值参数类型为整数,参数1效果等同于点击了确定键,0效果则等同于取消键。如只提供了函数名而缺省了返回值参数时

则默认返回0

3.函数还提供了一种控件紧贴模式,2个控件之间可以相互紧贴没有间隙。支持的控件有编辑框控件、an型按钮控件,使用时仅需在控件类型前

加一个小写t即可。示例:普通型编辑框:("bj" "输入" "su" "10"),紧贴型编辑框:("tbj" "输入" "su" "10")。

4.行列、纵列以及行框、纵框的参数中,除行框、纵框的[组件显示名]参数不提供时,需由""空字符串占位外,[组件属性、组件对齐方式]两种

参数可缺省不提供,不提供时无需用""空字符串占位。2种参数类型为字符串,书写方式不可更改,具体含义如下:

(1)组件属性(全部为小写)

"kd"   开启使用者自定义宽度功能

"gd"   开启使用者自定义高度功能

(2)组件对齐方式(全部为小写)

"sm"   顶部对齐方式

"xm"   底部对齐方式

"zj"   中间对齐方式

"zb"   左边对齐方式

"yb"   右边对齐方式

5.[空一行]、[确定、取消组合键]、[确定键]、[取消键],此类组件在书写时需在后面添加分号。

6.lisp表中第一项为dcl的定义名,和dcl的标题2个参数,参数类型为字符串,后续项则按dcl格式自行编排。

完整示例:

(defun c:tt(/ dcl_lst)

(setq dcl_lst (list'("dcl" "DCL测试")

'("boxed_column{" "两点画线")

'("row{")

'("bj" "点1x:" "d1x" "5")

'("bj" "点1y:" "d1y" "5")

'("}")

'("row{")

'("bj" "点2x:" "d2x" "5")

'("bj" "点2y:" "d2y" "5")

'("}")

'("an" "绘制直线" "hz" "27" "")

'("}")

'("ok_cancel;")

'("}")

)

)

(jjj-dcl-make dcl_lst "" 0)

)

三.dcl排版技巧

1.[row{、column{、boxed_row{、boxed_column{]组件其实也可以把它看成是一个控件,给它附带fixed_width=true属性时,它会控制自身的

宽度。其宽度为它所携带控件群集的最大宽度,然后搭配alignment属性,可以使群集在整个dcl水平方向中处于指定位置。如不带fixed_wi

dth=true属性,群集的宽度将是弹性的,它会调整自身宽度,以最大程度在水平方向占满dcl。垂直方向方法相同,只需将fixed_width=true

属性改为fixed_height=true即可。示例::boxed_row{label="群集";alignment=centered;fixed_width=true;(此技巧使用方法请查阅注意事

项中第4条说明)

2.图像类控件的宽度值是高度值的1倍,就可以使图像控件成正方形显示。

【实例截图】

【核心代码】

jjj-dcl-make函数

├── DCL测试样本.lsp

├── jjj-dcl-make函数.LSP

└── jjj-dcl函数详解.txt

0 directories, 3 files

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
注意不是书籍,是随书源代码 《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》重点讲解autolispdcl、visual lisp三合一的autocad二次程序开发技术。《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》分为4篇,共35章。第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。第2篇(第11章)为62个精选实用autolisp程序设计范例,通过精讲62个autolisp程序设计范例,让读者将autolisp知识融会贯通。第3篇(第12~21章)为autolispdcl对话框整合应用,主要介绍了dcl的基础知识、dcl对象属性的定义速查、autolisp掌控dcl的关键技巧;还介绍了编辑框、按钮和文字、切换开关、单选按钮、列表框、下拉菜单、图像,图像按钮及滑动条的设计技巧;另外介绍了新手常犯错误分析及应对技巧。第4篇(第22~35章)为visuallisp程序设计应用与整合,主要介绍visual lisp的基本环境、重要函数和程序调试;还介绍了autocad activex对象控制以及visual lisp在e2d、3d、文字编辑、图层管理、块与属性管理、options选项控制、excel及word中的应用;最后介绍了visual lisp应用程序的创建与维护。   《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》语言风趣生动,内容全面,是一本不可多得的完全学习指南。它可以帮助读者扎扎实实学好autolisp+dcl+visual lisp程序设计,迅速提升读者的设计效率及绘图品质。《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》非常适合autocad的初、中、高级读者使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值