明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: linhui12

请问幻灯片如何与按钮关联

  [复制链接]
发表于 2008-6-30 08:27 | 显示全部楼层
toggle不能写到radio_row中,radio_row中只能写radio_button
发表于 2008-7-1 07:52 | 显示全部楼层

;; xkwt(虾壳弯头)
(defun c:xkwt ()
  (cmdla0)
  (setvar "AUTOSNAP" 47)     ;打开极轴
  (setvar "osmode" 15359)     ;恢复对象捕捉
  (defun aaa ()
    (xyp-Dcl-Gettile '("k1" "k2" "k3"))
    (cond ((= k3 "1")
    (mode_tile "po1" 1)
    (mode_tile "po2" 1)
   )
   ((= k3 "0")
    (mode_tile "po1" 0)
    (mode_tile "po2" 0)
    (ap01)
   )
    )
  )
  (xyp-initSet '(k1 k2 k3 k4 dw r v n bz)
        '("1" "0" "0" "0" 1000.0 1000.0 45.0 3 "0")
  )
  (setq Ilst '((nil nil ":column{")
        (nil nil ":row{")
        ("k0" nil "imagebutton" "-2" "34" "AIONIC" "(XYP-ABOUTME)")
        (nil nil "spacer_1;")
        (nil nil ":column{label=\"绘图数据\";")
        ("dw" "虾壳弯管外径" "real" "8")
        ("r" "虾接弯曲半径" "real" "8")
        ("v" "虾接弯角角度" "real" "8")
        ("n" "虾接切分数量" "int" "8")
        ("pick" "(原点绘图)/拾取>>" "button" "(aaa)")
        ("bz" "标注" "bool")
        (nil nil "}")
        (nil nil "}")
        (nil nil ":boxed_radio_row{label=\"位置\";")
        ("k1" "左上" "radio" "(aaa)")
        ("k2" "右上" "radio" "(aaa)")
        ("k3" "右下" "radio" "(aaa)")
        ("k4" "左下" "radio" "(aaa)")
        (nil nil "}")
        (nil nil "}")
 (nil nil "user" "(aaa)")
       )
  )
  (if (= (xyp-Dcl-Init Ilst "【绘制虾壳弯头程序:M6】" t) 1)
    (cal_draw)
  )
  (cmdla1)
)

(defun aaa ()
  (cond
    ((= k1 "1") (xyp-show-sld "k0" "htfx0"))
    ((= k2 "1") (xyp-show-sld "k0" "htfx90"))
    ((= k3 "1") (xyp-show-sld "k0" "htfx180"))
    ((= k4 "1") (xyp-show-sld "k0" "htfx270"))
  )
)

;; 标注尺寸
(defun bzcc ()
  (command "_dimaligned" PT1 PT3 d1 "_dimaligned" PT4 PT2 d2)
)
;; 变化坐标
(defun xgzbx1 ()
  (command "_ucs" "y" "180")
)
(defun xgzbx2 ()
  (command "_ucs" "z" "180")
)
(defun xgzbx3 ()
  (command "_ucs" "x" "180")
)
;; 数据处理模块
(defun cal_draw ()
  (setq Y1  0       ;为变量x1赋初值
 X1  0       ;为变量y1赋初值
 pt1 (list X1 Y1)     ;将坐标X1,Y1赋给PT1点
 pt2 (list Y1 X1)     ;将坐标Y1,X1赋给PT2点
 A   (- R (/ DW 2))
 B   (+ R (/ DW 2))
 Y   (* (/ (/ V (* (- N 1) 2)) 180) PI)
 X1  A
 X2  B
 Y1  0
 Y2  0
 T1 (list X1 Y1)     ;将坐标X1,Y1赋给PT1点
 T2 (list X2 Y2)     ;将坐标X2,Y2赋给PT2点
 TT  1
  )
  (setvar "osmode" 0)      ;关闭对象捕捉
  (if (= k2 "1")
    (xgzbx1)
  )
  (if (= k3 "1")
    (xgzbx2)
  )
  (if (= k4 "1")
    (xgzbx3)
  )
  (command ".pline" PT1 PT2 "")     ;用多义线连接点PT1,PT2
  (setq A (/ A (cos Y))
 B (/ B (cos Y))
  )
  (while (< TT (* (- N 1) 2))     ;如果TT<(N-1)*2,就执行以下程序
    (setq X3  (* (cos (* Y TT)) A)
   y3  (* (sin (* Y TT)) A)
   X4  (* (cos (* Y TT)) B)
   y4  (* (sin (* Y TT)) B)
   pt3 (list X3 Y3)     ;将坐标X3,Y3赋给PT3点
   pt4 (list X4 Y4)     ;将坐标X4,Y4赋给PT4点
   XC1 (/ (+ X1 X2) 2)     ;计算点C1的X坐标值
   XC2 (/ (+ X3 X4) 2)     ;计算坐C2的X坐标值
   YC1 (/ (+ Y1 Y2) 2)     ;计算坐C1的Y坐标值
   YC2 (/ (+ Y3 Y4) 2)     ;计算坐C2的Y坐标值
   C1  (list XC1 YC1)     ;将坐标XC1,YC1赋给C1点
   C2  (list XC2 YC2)
    )        ;将坐标XC2,YC2赋给C2点
    (command ".pline" PT1 PT3 PT4 PT2 "")   ;用多义线连接点PT1,PT3,PT4,PT2
    (setq Xd1 (- (/ (+ X1 X3) 2) 20)    ;计算点d1的X坐标值
   Xd2 (+ (/ (+ X2 X4) 2) 20)    ;计算坐d2的X坐标值
   Yd1 (- (/ (+ Y1 Y3) 2) 20)    ;计算坐d1的Y坐标值
   Yd2 (+ (/ (+ Y2 Y4) 2) 20)    ;计算坐d2的Y坐标值
   d1  (list Xd1 Yd1)     ;将坐标Xd1,Yd1赋给d1点
   d2  (list Xd2 Yd2)
    )        ;将坐标Xd2,Yd2赋给d2点
    (command ".line" C1 C2 "")     ;用多义线连接点C1,C2
        ;标注PT1到PT3的距离,标注PT4到PT2的距离
    (if (= bz "1")
      (bzcc)
    )
    (setq X1  X3
   X2  X4
   Y1  Y3
   Y2  Y4
   PT1 PT3
   PT2 PT4
   TT  (+ TT 2)
    )
  )
  (setq A   (- R (/ DW 2))
 B   (+ R (/ DW 2))
 X3  (* (cos (* (/ V 180) PI)) A)
 y3  (* (sin (* (/ V 180) PI)) A)
 X4  (* (cos (* (/ V 180) PI)) B)
 y4  (* (sin (* (/ V 180) PI)) B)
 pt3 (list X3 Y3)     ;将坐标X3,Y3赋给PT3点
 pt4 (list X4 Y4)     ;将坐标X4,Y4赋给PT4点
 XC1 (/ (+ X1 X2) 2)     ;计算点C1的X坐标值
 XC2 (/ (+ X3 X4) 2)     ;计算坐C2的X坐标值
 YC1 (/ (+ Y1 Y2) 2)     ;计算坐C1的Y坐标值
 YC2 (/ (+ Y3 Y4) 2)     ;计算坐C2的Y坐标值
 C1  (list XC1 YC1)     ;将坐标XC1,YC1赋给C1点
 C2  (list XC2 YC2)
  )        ;将坐标XC2,YC2赋给C2点
  (command ".Pline" PT1 PT3 PT4 PT2 "" ".line" C1 C2 "") ;用直线连接点PT1,PT3,PT4,PT2,C1,C2
  (setq Xd1 (- (/ (+ X1 X3) 2) 20)    ;计算点d1的X坐标值
 Xd2 (+ (/ (+ X2 X4) 2) 20)    ;计算坐d2的X坐标值
 Yd1 (- (/ (+ Y1 Y3) 2) 20)    ;计算坐d1的Y坐标值
 Yd2 (+ (/ (+ Y2 Y4) 2) 20)    ;计算坐d2的Y坐标值
 d1  (list Xd1 Yd1)     ;将坐标Xd1,Yd1赋给d1点
 d2  (list Xd2 Yd2)
  )        ;将坐标Xd2,Yd2赋给d2点
  (if (= bz 1.0)
    (bzcc)
  )        ;如果bz值为1.0,执行bzcc
)
;; 主程序模块
(defun C:hjwt ()
  (setvar "DYNmode" 0)      ;关闭动态输入
  (setvar "cmdecho" 0)      ;关闭命令行回现功能
  (setq        ;给变量赋初值
    DW 1000
    R  1000
    V  45
    N  3
    x  0
    y  0
    z  0
  )
  (setq id (load_dialog "hjwt"))    ;加载 DCL 文件
  (new_dialog "hjwt" id)
  (dlg)
  (if (= what 1)
    (progn
      (setq pt_base (list x y z))
      (command ".ucs" "o" pt_base)    ;显示对话框并接受用户输入
      (cal_draw)
      (PROMPT "\n本次绘图成功!")
    )
  )
  (if (= what 2)
    (progn
      (initget 1)
      (setq pt_base (getpoint "\n选取绘图点位置:")
     x     (car pt_base)
     y     (cadr pt_base)
     z     (caddr pt_base)
      )
      (new_dialog "hjwt" id)
      (dlg)
      (setq pt_base (list x y z))
      (command ".ucs" "o" pt_base)
      (if (= what 1)
 (progn
   (cal_draw)
   (PROMPT "\n本次绘图成功!")
 )
      )
    )
  )
  (unload_dialog id)      ;卸载该对话框
  (if (= what 0)
    (PROMPT "\n您已取消了本次操作!")
  )
  (setvar "AUTOSNAP" 47)     ;打开极轴
  (setvar "osmode" 15359)     ;恢复对象捕捉
  (command ".ucs" "w")
  (princ)
)

 楼主| 发表于 2008-7-1 21:52 | 显示全部楼层

试过了,

楼上程序不能用

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 13:59 , Processed in 0.622372 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表