AutoLISP单选按钮RADIO_BUTTON设计插入图块

本文介绍使用AutoLISP创建DCL对话框,实现带有单选按钮的图块插入功能。通过设置不同选项,用户可以选择图块的设计者及插入比例。

AutoLISP单选按钮RADIO_BUTTON设计插入图块,DCL对话框代码如下。

dia6b:dialog {
    label = "RADIO_BUTTON单选按钮" ;
    :text {
        alignment = centered ;
        label = "插入图块" ;
    }
    :row {
        :boxed_radio_column {
            label = "设计者" ;
            :radio_button {
                key = "rb11" ;
                label = "唐僧" ;
            }
            :radio_button {
                key = "rb12" ;
                label = "悟空" ;
            }
            :radio_button {
                key = "rb13" ;
                label = "八戒" ;
            }
            :radio_button {
                key = "rb14" ;
                label = "沙僧" ;
            }
        }
        :boxed_radio_column {
            label = "比例" ;
            :radio_button {
                key = "rb21" ;
                label = "1/1" ;
            }
            :radio_button {
                key = "rb22" ;
                label = "1/30" ;
            }
            :radio_button {
                key = "rb23" ;
                label = "1/50" ;
            }
            :radio_button {
                key = "rb24" ;
                label = "1/100" ;
            }
            :radio_button {
                key = "rb25" ;
                label = "1/200" ;
            }
        }
    }
    :edit_box {
        alignment = centered ;
        edit_limit = 8 ;
        edit_width = 8 ;
        fixed_width = true ;
        key = "dwgnum" ;
        label = "编号" ;
    }
    spacer_1;
    :row {
        alignment = centered ;
        fixed_width = true ;
        :button {
            key = "ins_ok" ;
            label = "插入图块" ;
            width = 8 ;
        }
        :spacer {
            width = 8 ;
        }
        cancel_button;
    }
}

LSP文件代码如下。

(defun c:dia6b ()
    (setvar "cmdecho" 0)
    (setq blkname "dia6att")
    (dcl_dia6b)
    (prin1)
)
(defun dcl_dia6b ()
    (setq dcl_id (load_dialog "dia6b"))
    (new_dialog "dia6b" dcl_id)
    (setq defkey1 "rb14"
      defkey2 "rb21"
    )
    (set_tile defkey1 "1")
    (set_tile defkey2 "1")
    (setq name (get_attr defkey1 "label"))
    (setq ssca (get_attr defkey2 "label"))
    (action_tile "rb11" "(setq name (get_attr $key \"label\"))")
    (action_tile "rb12" "(setq name (get_attr $key \"label\"))")
    (action_tile "rb13" "(setq name (get_attr $key \"label\"))")
    (action_tile "rb14" "(setq name (get_attr $key \"label\"))")
    (action_tile "rb21" "(setq name (get_attr $key \"label\"))")
    (action_tile "rb22" "(setq name (get_attr $key \"label\"))")
    (action_tile "rb23" "(setq name (get_attr $key \"label\"))")
    (action_tile "rb24" "(setq name (get_attr $key \"label\"))")
    (action_tile "rb25" "(setq name (get_attr $key \"label\"))")
    (action_tile "ins_ok" "(ok_dia6b) (done_dialog 1)")
    (setq dd (start_dialog))
    (if    (= dd 1)
    (progn
        (setq inspt (getpoint "\n选取属性图块插入点:"))
        (command "insert" blkname inspt 1 1 0 dwgnum name ssca)
    )
    )
)
(defun ok_dia6b    ()
    (setq dwgnum (get_tile "dwgnum"))
)

代码完。

我正在编辑【lisp编写dcl】代码,遇到了 【2行规格能同时选中,我需要规格只能选中一个】 ,请帮我检查并改正错误点。我的原始代码如下: 【dome:dialog{ label="非准 双头螺栓"; :boxed_radio_row{ label="客户"; :radio_button{ label ="电气"; key = "KHDQ"; value = 1; } :radio_button{ label ="艾朗"; key = "KHAL"; } :radio_button{ label ="高强"; key = "KHGQ"; } :radio_button{ label ="读风者"; key = "KHDFZ"; } :radio_button{ label ="武进"; key = "KHWJ"; } :radio_button{ label ="京城"; key = "KHJC"; } :radio_button{ label ="束联"; key = "KHSL"; } :radio_button{ label ="通用"; key = "KHTY"; } } :boxed_radio_row{ label="样式"; :radio_button{ label ="细杆双头"; key = "xgst"; value = 1; } :radio_button{ label ="粗杆双头"; key = "cgst"; } :radio_button{ label ="细杆内六角"; key = "xgnlj"; } :radio_button{ label ="细杆双内六角"; key = "xgsnlj"; } :radio_button{ label ="细杆外六角"; key = "xgwlj"; } } :boxed_radio_column { label="规格"; :column { :row{ :radio_button{ label="M16"; key = "GG16"; value=1;} :radio_button{ label="M18"; key = "GG18"; } :radio_button{ label="M20"; key = "GG20"; } :radio_button{ label="M22"; key = "GG22"; } :radio_button{ label="M24"; key = "GG24"; } :radio_button{ label="M27"; key = "GG27"; } :radio_button{ label="M30"; key = "GG30"; } :radio_button{ label="M33"; key = "GG33"; } :radio_button{ label="M36"; key = "GG36"; } } :row{ :radio_button{ label="M39"; key = "GG39"; } :radio_button{ label="M42"; key = "GG42"; } :radio_button{ label="M45"; key = "GG45"; } :radio_button{ label="M48"; key = "GG48"; } :radio_button{ label="M52"; key = "GG52"; } :radio_button{ label="M56"; key = "GG56"; } :radio_button{ label="M60"; key = "GG60"; } :radio_button{ label="M64"; key = "GG64"; } :radio_button{ label="M72"; key = "GG72"; } } } } :row{ :image{ width=60; height=10; color=7; key = "img"; } :boxed_radio_column{ label="参数"; :row{ :edit_box{ label="L:"; edit_width=6; key="camshuL"; } :edit_box{ label="b1:"; edit_width=6; key="camshub1"; } :edit_box{ label="b2:"; edit_width=6; key="camshub2"; } } :row{ :edit_box{ label="ds:"; edit_width=6; key="camshuds"; } :edit_box{ label="f1:"; edit_width=6; key="camshuf1"; } :edit_box{ label="f2:"; edit_width=6; key="camshuf2"; } } :row{ :edit_box{ label="R:"; edit_width=6; key="camshur"; } :edit_box{ label="S1:"; edit_width=6; key="camshus1"; } :edit_box{ label="K1:"; edit_width=6; key="camshuk1"; } } } } :row{ :boxed_radio_row{ label="等级"; :radio_button{ key="DJ88"; label="8.8级"; } :radio_button{ key="DJ109"; label="10.9级"; value=1; } :radio_button{ key="DJ129"; label="12.9级"; } } :boxed_radio_row{ label="材质"; :radio_button{ key="CZ42CM"; label="42CrMoA"; value=1; } :radio_button{ key="CZ40CNM"; label="40CrMiMoA"; } :radio_button{ key="CZQT"; label="其他"; } } :edit_box{ key="zcfth"; label="图号:JMQ-"; edit_width=10; value = "xxxx"; } } :row{ :boxed_radio_row{ label="表面处理"; :radio_button{ label="达克罗720H"; key="BMD72"; } :radio_button{ label="达克罗1000H"; key="BMD100"; value=1; } :radio_button{ label="达克罗1440H"; key="BMD144"; } :radio_button{ label="发黑"; key="BMFH"; } :radio_button{ label="热镀锌"; key="BMRDX"; } :radio_button{ label="本色"; key="BMBS"; } } :edit_box{ key="canzao"; label="参考:"; edit_width=15; value = "xxxx"; } } spacer_1; ok_cancel; }】
最新发布
11-21
我在用lisp编写dcl文件,遇到2行规格选项能同时选中,我需要规格只能选中一个代码如下:dome:dialog{ label="非准 双头螺栓"; :boxed_radio_row{ label="客户"; :radio_button{ label ="电气"; key = "KHDQ"; value = 1; } :radio_button{ label ="艾朗"; key = "KHAL"; } :radio_button{ label ="高强"; key = "KHGQ"; } :radio_button{ label ="读风者"; key = "KHDFZ"; } :radio_button{ label ="武进"; key = "KHWJ"; } :radio_button{ label ="京城"; key = "KHJC"; } :radio_button{ label ="束联"; key = "KHSL"; } :radio_button{ label ="通用"; key = "KHTY"; } } :boxed_radio_row{ label="样式"; :radio_button{ label ="细杆双头"; key = "xgst"; value = 1; } :radio_button{ label ="粗杆双头"; key = "cgst"; } :radio_button{ label ="细杆内六角"; key = "xgnlj"; } :radio_button{ label ="细杆双内六角"; key = "xgsnlj"; } :radio_button{ label ="细杆外六角"; key = "xgwlj"; } } :boxed_radio_column { label="规格"; :row{ :radio_button{ label="M16"; key = "GG16"; value=1;} :radio_button{ label="M18"; key = "GG18"; } :radio_button{ label="M20"; key = "GG20"; } :radio_button{ label="M22"; key = "GG22"; } :radio_button{ label="M24"; key = "GG24"; } :radio_button{ label="M27"; key = "GG27"; } :radio_button{ label="M30"; key = "GG30"; } :radio_button{ label="M33"; key = "GG33"; } :radio_button{ label="M36"; key = "GG36"; } } :row{ :radio_button{ label="M39"; key = "GG39"; } :radio_button{ label="M42"; key = "GG42"; } :radio_button{ label="M45"; key = "GG45"; } :radio_button{ label="M48"; key = "GG48"; } :radio_button{ label="M52"; key = "GG52"; } :radio_button{ label="M56"; key = "GG56"; } :radio_button{ label="M60"; key = "GG60"; } :radio_button{ label="M64"; key = "GG64"; } :radio_button{ label="M72"; key = "GG72"; } } } :row{ :image{ width=60; height=10; color=7; key = "img"; } :boxed_radio_column{ label="参数"; :row{ :edit_box{ label="L:"; edit_width=6; key="camshuL"; } :edit_box{ label="b1:"; edit_width=6; key="camshub1"; } :edit_box{ label="b2:"; edit_width=6; key="camshub2"; } } :row{ :edit_box{ label="ds:"; edit_width=6; key="camshuds"; } :edit_box{ label="f1:"; edit_width=6; key="camshuf1"; } :edit_box{ label="f2:"; edit_width=6; key="camshuf2"; } } :row{ :edit_box{ label="R:"; edit_width=6; key="camshur"; } :edit_box{ label="S1:"; edit_width=6; key="camshus1"; } :edit_box{ label="K1:"; edit_width=6; key="camshuk1"; } } } } :row{ :boxed_radio_row{ label="等级"; :radio_button{ key="DJ88"; label="8.8级"; } :radio_button{ key="DJ109"; label="10.9级"; value=1; } :radio_button{ key="DJ129"; label="12.9级"; } } :boxed_radio_row{ label="材质"; :radio_button{ key="CZ42CM"; label="42CrMoA"; value=1; } :radio_button{ key="CZ40CNM"; label="40CrMiMoA"; } :radio_button{ key="CZQT"; label="其他"; } } :edit_box{ key="zcfth"; label="图号:JMQ-"; edit_width=10; value = "xxxx"; } } :row{ :boxed_radio_row{ label="表面处理"; :radio_button{ label="达克罗720H"; key="BMD72"; } :radio_button{ label="达克罗1000H"; key="BMD100"; value=1; } :radio_button{ label="达克罗1440H"; key="BMD144"; } :radio_button{ label="发黑"; key="BMFH"; } :radio_button{ label="热镀锌"; key="BMRDX"; } :radio_button{ label="本色"; key="BMBS"; } } :edit_box{ key="canzao"; label="参考:"; edit_width=15; value = "xxxx"; } } spacer_1; ok_cancel; }
11-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值