找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1281|回复: 10

[求助] [求助]:LISP编程问题

[复制链接]
发表于 2002-5-27 22:53:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本人想编写一个层管理器用以替代CAD的LAYER命令,但目前程序在一次对话中只能编辑一个层,请教能不能在一次对话过程中同时编辑多个层?
DCL code:
laydcl : dialog {
    aspect_ratio = 0;
    label = "层管理器(试用版)";
    : row {
        //fixed_width = true;
        : button {
             label = "当前层(S)";
             key = "curly";
             mnemonic = "S";
             fixed_width = true;
             width = 8;
             alignment = centered;
        }
        : button {
             label = "新建层(N)";
             key = "newly";
             mnemonic = "N";
             fixed_width = true;
             width = 8;
             alignment = centered;
        }
        : edit_box {
             fixed_width = true;
             alignment = "left";
             edit_width = 13;
             key = "newlay";
        }
        : button {
             label = "更新层列表(R)";
             key = "rely";
             mnemonic = "R";
             fixed_width = true;
             width = 8;
             alignment = centered;
        }
    }
    : row {
        : list_box {
             label = "选取层:";
             key = "sellay";
             width = 13;
             height = 12;
             tabs = "20 22 25 35 37 40 50 52 55";
             tab_truncate = true;
        }
        : list_box {
             label = "目标层:";
             key = "oblay";
             width = 13;
             height = 12;
             tabs = "20 22 25 35 37 40 50 52 55";
             tab_truncate = true;
        }
    }
    spacer;
    : row {
         fixed_width = true;
         : text {
             label = "当前层是:";
         }
         : text {
             key = "lycur";
             value = "***";
             width = 15;
         }
    }
    : row {
         //fixed_width = true;
         : text {
             label = "选取层是:";
         }
         : text {
             key = "selcurlay";
             value = "没选取有效层";
             width = 12;
         }
         : text {
             label = "线型";
         }
         : edit_box {
             fixed_width = true;
             alignment = "left";
             edit_width = 12;
             key = "sellaylt";
         }
         : text {
             label = "颜色";
         }
         : edit_box {
             fixed_width = true;
             alignment = "left";
             edit_width = 10;
             key = "sellaycor";
         }
    }
    : row {
        //fixed_width = true;
        : column {
             : text {
                  label = "选取线型:";
             }
             : popup_list {
                    key = "sellt";
                  width = 13;
                  //fixed_width = true;
             }
        }
        : column {
             : text {
                  label = "选取颜色:";
             }
             : popup_list {
                    key = "selcor";
                  width = 13;
                  //fixed_width = true;
             }
        }
      }
      spacer;
      : row {
           fixed_width = true;
           alignment = centered;
           : button {
                 label = "应用(A)";
                 key = "applay";
                 mnemonic = "A";
                 fixed_width = true;
                 width = 8;
                 alignment = centered;
           }
           : spacer {
                 width = 2;
           }
           cancel_button;
           : spacer {
                 width = 2;
           }
           help_button;
      }
      : errtile { width = 60; }
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-5-27 23:36:00 | 显示全部楼层
: list_box {
label = "选取层:";
key = "sellay";
width = 13;
height = 12;
tabs = "20 22 25 35 37 40 50 52 55";
tab_truncate = true;
multiple_select = true;
}


multiple_select = true-false;
指定是否可同時選取(亮顯)list_box 內的多個項目。可能的值為 true 或 false(預設值:false)。如果是 true,則可同時選取多個項目。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-5-28 00:06:25 | 显示全部楼层
LUCAS:
     先谢谢了!不过您可能误解了我的意思。我的意思是先选取一个层,然后改变其线型和颜色
,再选取另外层编辑;而不是象现在的程序每编辑一个层就关闭对话框,然后又启动对话编辑另外的层。
     另:对话框运行期间,能使用COMMAND命令?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-28 01:43:54 | 显示全部楼层
参考如下片段:

(defun DO1 ()
    (command "_.layer" "m"         "dim"           "c"             "cyan"
             ""               "lt"         "continuous"             ""
             ""
            )
    ......................
    ......................
)



(setq        DCL_FILE "mod"
        DCL_NAME "dwg_scale"
  )
  (setq DCL_FLAG (load_dialog DCL_FILE))
  (if (< DCL_FLAG 0)
    (exit)
  )
(setq WHAT_NEXT 5)
  (while (< 2 WHAT_NEXT)
    (if        (not (new_dialog DCL_NAME DCL_FLAG))
      (exit)
    )
    .................
    .................
    (action_tile "change" "(done_dialog 4)")
    (action_tile
      "cancel"
      "(done_dialog 5)"
    )
    (action_tile
      "accept"
      "(done_dialog 3)"
    )
    (setq WHAT_NEXT (start_dialog))
    (cond
      ((= WHAT_NEXT 4)
       (DO1)
      )
      ((= WHAT_NEXT 5)
       (setq WHAT_NEXT 1)
      )
    )
  )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-5-28 22:00:40 | 显示全部楼层
昨天按你的思路去写程序,还没有成功
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-28 23:25:11 | 显示全部楼层

看看我的这个程序对你有不有帮助

1)B_SPROCKET.LSP

  (cond
     (  (and ai_dcl (listp ai_dcl)))          ; it's already loaded.

     (  (not (findfile "ai_utils.lsp"))                     ; find it
        (ai_abort "DDMODIFY"
                  (strcat "Can't locate file AI_UTILS.LSP."
                          "\n Check support directory.")))

     (  (eq "failed" (load "ai_utils" "failed"))            ; load it
        (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
  )

(defun B_SPROCKET_HILITE;重点显示选中图象项
  (
  B_sprocket_tile
  /
  )
  (if (/= B_sprocket_last_slide B_sprocket_tile)
     (progn
        (mode_tile B_sprocket_tile 4)
        (if (/= B_sprocket_last_slide nil)
           (mode_tile B_sprocket_last_slide 4)
        );end-if
     );end-progn
  );end-if
  (setq B_sprocket_last_slide B_sprocket_tile)
);end-B_SPROCKET_HILITE

(defun B_SPROCKET_SLIDE_STAR;启动幻灯片
  (
  B_sprocket_slide
  B_sprocket_slide_slb
  B_sprocket_slide_dcl
  /
  )
  (start_image B_sprocket_slide_dcl);开始建立图象
  (fill_image 0 0 (dimx_tile B_sprocket_slide_dcl) (dimy_tile B_sprocket_slide_dcl) -2
  );以AUTOCAD图形背景色填充
  (slide_image 0 0 (dimx_tile B_sprocket_slide_dcl) (dimy_tile B_sprocket_slide_dcl) (strcat B_sprocket_slide_slb "(" B_sprocket_slide ")")
  );end-silde_image从幻灯片库中调入幻灯片
  (end_image);结束当前激活图象的建立
);end-B_SPROCKET_SLIDE_STAR

(defun B_SPROCKET_CHAIN_SET;设置链轮DCL数据表
  (
  /
  )
  (start_list "B_SPROCKET_CHAIN_S_DCL")
  (mapcar 'add_list B_sprocket_chain_dat_list)
  (end_list)
);end-B_SPROCKET_CHAIN_SET

(defun B_SPROCKET_NOTEETH_LIST_BEGIN;建立链轮齿数数据表
  (
  /
  )
  (setq B_sprocket_noteeth_list
        '(7 8 9 10 11 12 13 14 15 16 17 18 19 20
          21 22 23 24 25 26 27 28 29 30 31 32 33
          34 35 36 37 38 39 40 41 42 43 44 45 46
          47 48 49 50 51 52 53 54 55 56 57 58 59
          60 61 62 63 64 65 66 67 68 69 70 71 72
         )
  )
);end-B_SPROCKET_NOTEETH_LIST_BEGIN

(defun B_SPROCKET_NOTEETH_LIST_SET;设置链轮齿数DCL数据表
  (
  /
  )
  (start_list "B_SPROCKET_NOTEETH_S_DCL")
  (mapcar 'add_list (mapcar 'rtos B_sprocket_noteeth_list))
  (end_list)
);end-B_SPROCKET_NOTEETH_LIST_SET

(defun B_SPROCKET_SLIDE_CHANGE;改变视图选择
  (
  /
  )
  (if (= B_sprocket_view 10401)
    (progn
      (B_SPROCKET_SLIDE_STAR "B_SPROCKET_FLANK" "B_SPROCKET" "B_SPROCKET_VIEW_DCL")
      (set_tile "B_SPROCKET_VIEW_S_DCL" "1")
      (setq B_sprocket_view 10402)
      (mode_tile "B_SPROCKET_ANGLE_DCL" 0)
      (mode_tile "B_SPROCKET_ANGLE_S_DCL" 0)
    );end-progn
    (progn
      (B_SPROCKET_SLIDE_STAR "B_SPROCKET_FACE" "B_SPROCKET" "B_SPROCKET_VIEW_DCL")
      (set_tile "B_SPROCKET_VIEW_S_DCL" "0")
      (setq B_sprocket_view 10401)
      (mode_tile "B_SPROCKET_ANGLE_DCL" 1)
      (mode_tile "B_SPROCKET_ANGLE_S_DCL" 1)
    );end-progn
  );end-if
);end-B_SPROCKET_SLIDE_CHANGE


;;读入输入的链轮所用链的型号,和链的型号(国标)比较,如国标中有则设为使用链号,否则显示错误的输入。
;;把链的节距(p)、滚子直径(d1)、、内节内宽(b1)、链条通道高度(h1)、排居(pt)、单排抗拉载荷(kn)读出。

(defun B_SPROCKET_CHAIN_INPUT
  (
  /
  B_sprocket_chain_count
  )
  (setq B_sprocket_chain_size (get_tile "B_SPROCKET_CHAIN_DCL"))
  (setq B_sprocket_chain_count 0)
  (if (null B_NO_LIST) (load "B_NO_LIST"))
  (setq B_sprocket_chain_count (B_NO_LIST B_sprocket_chain_size B_sprocket_chain_dat_list))
  (if (/= B_sprocket_chain_count (length B_sprocket_chain_dat_list))
    (progn
      (set_tile "error" "")
      (set_tile "B_SPROCKET_CHAIN_DCL" B_sprocket_chain_size)
      (set_tile "B_SPROCKET_CHAIN_S_DCL" (itoa B_sprocket_chain_count))
      (if (null B_DATE_LIST_NO) (load "B_DATE_LIST_NO"))
      (setq B_sprocket_chain_size_line (B_DATE_LIST_NO B_sprocket_chain_date_file B_sprocket_chain_count))
      (setq B_sprocket_chain_data_n B_sprocket_chain_count)
    );end-progn
    (progn
      (set_tile "error" "输入的数据无效或无此链的数据")
      (mode_tile "B_SPROCKET_CHAIN_DCL" 2)
    );end-progn
  );end-if
  (setq B_sprocket_chain_p (atof (nth 1 B_sprocket_chain_size_line)))
  (setq B_sprocket_chain_d1 (atof (nth 2 B_sprocket_chain_size_line)))
  (setq B_sprocket_chain_b1 (atof (nth 3 B_sprocket_chain_size_line)))
  (setq B_sprocket_chain_h1 (atof (nth 4 B_sprocket_chain_size_line)))
  (setq B_sprocket_chain_pt (atof (nth 5 B_sprocket_chain_size_line)))
  (setq B_sprocket_chain_kn (atof (nth 6 B_sprocket_chain_size_line)))
);end-B_SPROCKET_CHAIN_INPUT


;;读入选择的链轮所用链的型号。
;;把链的节距(p)、滚子直径(d1)、、内节内宽(b1)、链条通道高度(h1)、排居(pt)、单排抗拉载荷(kn)读出。

(defun B_SPROCKET_CHAIN_SELECTION
  (
  /
  )
  (setq B_sprocket_chain_data_n (atoi (get_tile "B_SPROCKET_CHAIN_S_DCL")))
  (if (null B_DATE_LIST_NO) (load "B_DATE_LIST_NO"))
  (setq B_sprocket_chain_size_line (B_DATE_LIST_NO B_sprocket_chain_date_file B_sprocket_chain_data_n))
  (setq B_sprocket_chain_size (car B_sprocket_chain_size_line))
  (set_tile "B_SPROCKET_CHAIN_DCL" B_sprocket_chain_size)
  (setq B_sprocket_chain_p (atof (nth 1 B_sprocket_chain_size_line)))
  (setq B_sprocket_chain_d1 (atof (nth 2 B_sprocket_chain_size_line)))
  (setq B_sprocket_chain_b1 (atof (nth 3 B_sprocket_chain_size_line)))
  (setq B_sprocket_chain_h1 (atof (nth 4 B_sprocket_chain_size_line)))
  (setq B_sprocket_chain_pt (atof (nth 5 B_sprocket_chain_size_line)))
  (setq B_sprocket_chain_kn (atof (nth 6 B_sprocket_chain_size_line)))
);end-B_SPROCKET_CHAIN_SELECTION


;;读入输入的链轮齿数,和链的可用齿数比较,如有则设为使用齿数,否则显示错误的输入。

(defun B_SPROCKET_NOTEETH_INPUT
  (
  /
  B_sprocket_noteeth_count
  )
  (setq B_sprocket_noteeth (atoi (get_tile "B_SPROCKET_NOTEETH_DCL")))
  (setq B_sprocket_noteeth_count 0)
  (if (null B_NO_LIST) (load "B_NO_LIST"))
  (setq B_sprocket_noteeth_count (B_NO_LIST B_sprocket_noteeth B_sprocket_noteeth_list))
  (if (/= B_sprocket_noteeth_count (length B_sprocket_noteeth_list))
    (progn
      (set_tile "error" "")
      (set_tile "B_SPROCKET_NOTEETH_DCL" (itoa B_sprocket_noteeth))
      (set_tile "B_SPROCKET_NOTEETH_S_DCL" (itoa B_sprocket_noteeth_count))
    );end-progn
    (progn
      (set_tile "error" "输入的数据无效或无此齿数的数据")
      (mode_tile "B_SPROCKET_NOTEETH_DCL" 2)
    );end-progn
  );end-if
);end-B_SPROCKET_NOTEETH_INPUT


;;读入选择的链轮齿数。

(defun B_SPROCKET_NOTEETH_SELECTION
  (
  /
  B_sprocket_noteeth_count
  )
  (setq B_sprocket_noteeth_count (atoi (get_tile "B_SPROCKET_NOTEETH_S_DCL")))
  (setq B_sprocket_noteeth (nth B_sprocket_noteeth_count B_sprocket_noteeth_list))
  (set_tile "B_SPROCKET_NOTEETH_DCL" (rtos B_sprocket_noteeth))
);end-B_SPROCKET_NOTEETH_SELECTION


;;读入选择的链轮插入点坐标。

(defun B_SPROCKET_CENTER_INPUT
  (
  /
  )
  (setq B_sprocket_center_x (atof (get_tile "B_SPROCKET_CENTER_X_DCL")))
  (setq B_sprocket_center_y (atof (get_tile "B_SPROCKET_CENTER_Y_DCL")))
  (setq B_sprocket_center_z (atof (get_tile "B_SPROCKET_CENTER_Z_DCL")))
  (setq B_sprocket_center (list B_sprocket_center_x B_sprocket_center_y B_sprocket_center_z))
);end-B_SPROCKET_CENTER_INPUT


;;读入选择的链轮插入角度值。

(defun B_SPROCKET_ANGLE_INPUT
  (
  /
  )
  (setq B_sprocket_angle (* 0.017453292 (atof (get_tile "B_SPROCKET_ANGLE_DCL"))))
);end-B_SPROCKET_ANGLE_INPUT


;;读入已选择或缺省的链轮视图。

(defun B_SPROCKET_DCL_DEFAULT_VIEW
  (
  /
  )
  (if (= B_sprocket_view 10401)
    (progn
      (B_SPROCKET_SLIDE_STAR "B_SPROCKET_FACE" "B_SPROCKET" "B_SPROCKET_VIEW_DCL")
      (set_tile "B_SPROCKET_VIEW_S_DCL" "0")
      (mode_tile "B_SPROCKET_ANGLE_DCL" 1)
      (mode_tile "B_SPROCKET_ANGLE_S_DCL" 1)
    );end-progn
    (progn
      (B_SPROCKET_SLIDE_STAR "B_SPROCKET_FLANK" "B_SPROCKET" "B_SPROCKET_VIEW_DCL")
      (set_tile "B_SPROCKET_VIEW_S_DCL" "1")
      (mode_tile "B_SPROCKET_ANGLE_DCL" 0)
      (mode_tile "B_SPROCKET_ANGLE_S_DCL" 0)
    );end-progn
  );end-if
);end-B_SPROCKET_DCL_DEFAULT_VIEW


;;读入已选择或缺省的链轮所用链型号。

(defun B_SPROCKET_DCL_DEFAULT_CHAIN
  (
  /
  )
  (set_tile "B_SPROCKET_CHAIN_DCL" B_sprocket_chain_size)
  (if (null B_NO_LIST) (load "B_NO_LIST"))
  (set_tile "B_SPROCKET_CHAIN_S_DCL" (itoa (B_NO_LIST B_sprocket_chain_size B_sprocket_chain_dat_list)))
);end-B_SPROCKET_DCL_DEFAULT_CHAIN


;;读入已选择或缺省的链轮齿数。

(defun B_SPROCKET_DCL_DEFAULT_NOTEETH
  (
  /
  )
   (princ)
  (set_tile "B_SPROCKET_NOTEETH_DCL" (itoa B_sprocket_noteeth))
  (if (null B_NO_LIST) (load "B_NO_LIST"))
  (set_tile "B_SPROCKET_NOTEETH_S_DCL" (itoa (B_NO_LIST B_sprocket_noteeth B_sprocket_noteeth_list)))
);end-B_SPROCKET_DCL_DEFAULT_NOTEETH

(defun B_SPROCKET_MAKE_LAYER
  (
  /
  B_sprocket_layer
  B_lay_exist
  )
  (cond
    ((= B_sprocket_shaft_view 10411)
      (setq B_sprocket_layer (strcat "L_SPROCKET-" B_sprocket_chain_size "_" (itoa (fix B_sprocket_noteeth)) "_" (itoa (fix B_sprocket_width)) "-DRIVER"))
    );end-10411
    ((= B_sprocket_shaft_view 10412)
      (setq B_sprocket_layer (strcat "L_SPROCKET-" B_sprocket_chain_size "_" (itoa (fix B_sprocket_noteeth)) "_" (itoa (fix B_sprocket_width)) "-BEARTWO"))
    );end-10412
    ((= B_sprocket_shaft_view 10413)
      (setq B_sprocket_layer (strcat "L_SPROCKET-" B_sprocket_chain_size "_" (itoa (fix B_sprocket_noteeth)) "_" (itoa (fix B_sprocket_width)) "-BEARONE"))
    );end-10413
  );end-cond
  (setq B_lay_exist (tblsearch "layer" B_sprocket_layer))
  (if (/= B_lay_exist nil)
    (setvar "CLAYER" B_sprocket_layer)
    (command "layer" "M" B_sprocket_layer "C" "190" "" "")
  );end-if
  (princ)
);end-B_SPROCKET_MAKE_LAYER



(defun B_SPROCKET_SET_BEGIN
  (
  /
  )
  (setq B_sprocket_view 10401)
  (setq B_sprocket_shaft_view 10411)
  (setq B_sprocket_what_shaft_driver 10450)
  (setq B_sprocket_what_shaft_beartwo 10460)
  (setq B_sprocket_what_shaft_bearone 10470)
  (setq B_sprocket_center '(0.0 0.0 0.0))
  (setq B_sprocket_center_x 0.0)
  (setq B_sprocket_center_y 0.0)
  (setq B_sprocket_center_z 0.0)
  (setq B_sprocket_chain_size "08B")
  (if (null B_NO_LIST) (load "B_NO_LIST"))
  (setq B_sprocket_chain_data_n (B_NO_LIST B_sprocket_chain_size B_sprocket_chain_dat_list))
  (setq B_sprocket_chain_p 12.7)
  (setq B_sprocket_chain_d1 8.51)
  (setq B_sprocket_chain_b1 7.75)
  (setq B_sprocket_chain_h1 12.07)
  (setq B_sprocket_chain_pt 13.92)
  (setq B_sprocket_chain_kn 17.8)
  (setq B_sprocket_noteeth 11)
  (setq B_sprocket_angle 0.0)
  (setq B_sprocket_width 0.0)
  (setq B_sprocket_outdia 0.0)
  (setq B_sprocket_shaft_bearing_two_dy 0.0)
  (setq B_sprocket_shaft_bearing_two_dw 0.0)
  (setq B_sprocket_shaft_bearing_two_dl 0.0)
  (setq B_sprocket_shaft_bearing_one_dy 0.0)
  (setq B_sprocket_shaft_bearing_one_dw 0.0)
  (setq B_sprocket_shaft_bearing_one_dl 0.0)
  (setq B_sprocket_shaft_driver_d 0.0)
  (B_SPROCKET_COUNT)
);end-B_SPROCKET_SET_BEGIN


(defun B_SPROCKET_SHAFT_DCL_DEFAULT_VIEW
  (
  /
  )
  (B_SPROCKET_SLIDE_STAR "B_SPROCKET_SHAFT_DRIVER" "B_SPROCKET_SHAFT" "B_SPROCKET_SHAFT_DRIVER_DCL")
  (B_SPROCKET_SLIDE_STAR "B_SPROCKET_SHAFT_BEARING_TWO" "B_SPROCKET_SHAFT" "B_SPROCKET_SHAFT_BEARING_TWO_DCL")
  (B_SPROCKET_SLIDE_STAR "B_SPROCKET_SHAFT_BEARING_ONE" "B_SPROCKET_SHAFT" "B_SPROCKET_SHAFT_BEARING_ONE_DCL")
  (cond
    ((= B_sprocket_shaft_view 10411)
      (B_SPROCKET_HILITE B_SPROCKET_SHAFT_DRIVER_DCL)
    );end-10411
    ((= B_sprocket_shaft_view 10412)
      (B_SPROCKET_HILITE B_SPROCKET_SHAFT_BEARING_TWO_DCL)
    );end-10412
    ((= B_sprocket_shaft_view 10413)
      (B_SPROCKET_HILITE B_SPROCKET_SHAFT_BEARING_ONE_DCL)
    );end-10413
  );end-cond
);end-B_SPROCKET_SHAFT_DCL_DEFAULT_VIEW

(defun B_SPROCKET_DCL_DEFAULT
  (
  /
  )
  (B_SPROCKET_CHAIN_SET)
  (B_SPROCKET_NOTEETH_LIST_SET)
  (if B_sprocket_view
    (B_SPROCKET_DCL_DEFAULT_VIEW)
  );end-if
  (if B_sprocket_shaft_view
    (B_SPROCKET_SHAFT_DCL_DEFAULT_VIEW)
  );end-if
  (if B_sprocket_center
    (progn
      (set_tile "B_SPROCKET_CENTER_X_DCL" (rtos B_sprocket_center_x))
      (set_tile "B_SPROCKET_CENTER_Y_DCL" (rtos B_sprocket_center_y))
      (set_tile "B_SPROCKET_CENTER_Z_DCL" (rtos B_sprocket_center_z))
    );end-cond
  );end-if
  (if B_sprocket_angle
    (set_tile "B_SPROCKET_ANGLE_DCL" (rtos (* 57.29577951 B_sprocket_angle)))
  );end-if
  (if B_sprocket_chain_size
    (B_SPROCKET_DCL_DEFAULT_CHAIN)
  );end-if
  (if B_sprocket_noteeth
    (B_SPROCKET_DCL_DEFAULT_NOTEETH)
  );end-if
  (if B_sprocket_width
     (set_tile "B_SPROCKET_WIDTH_DCL" (rtos B_sprocket_width))
  );end-if
  (if B_sprocket_outdia
     (set_tile "B_SPROCKET_OUTDIA_DCL" (rtos B_sprocket_outdia))
  );end-if
);end-B_SPROCKET_DCL_DEFAULT

(defun B_SPROCKET_SHAFT_DRIVER_DCL_DEFAULT
  (
  /
  )
  (if B_sprocket_shaft_driver_d
     (set_tile "B_SPROCKET_SHAFT_DRIVER_D_DCL" (rtos B_sprocket_shaft_driver_d))
  );end-if
);end-B_SPROCKET_SHAFT_DRIVER_DCL_DEFAULT

(defun B_SPROCKET_SHAFT_BEARING_TWO_DCL_DEFAULT
  (
  /
  )
  (if B_sprocket_shaft_bearing_two_dy
     (set_tile "B_SPROCKET_SHAFT_BEARING_TWO_DY_DCL" (rtos B_sprocket_shaft_bearing_two_dy))
  );end-if
  (if B_sprocket_shaft_bearing_two_dw
     (set_tile "B_SPROCKET_SHAFT_BEARING_TWO_DW_DCL" (rtos B_sprocket_shaft_bearing_two_dw))
  );end-if
  (if B_sprocket_shaft_bearing_two_dl
     (set_tile "B_SPROCKET_SHAFT_BEARING_TWO_DL_DCL" (rtos B_sprocket_shaft_bearing_two_dl))
  );end-if
);end-B_SPROCKET_SHAFT_BEARING_TWO_DCL_DEFAULT

(defun B_SPROCKET_SHAFT_BEARING_ONE_DCL_DEFAULT
  (
  /
  )
  (if B_sprocket_shaft_bearing_two_dy
     (set_tile "B_SPROCKET_SHAFT_BEARING_ONE_DY_DCL" (rtos B_sprocket_shaft_bearing_one_dy))
  );end-if
  (if B_sprocket_shaft_bearing_two_dw
     (set_tile "B_SPROCKET_SHAFT_BEARING_ONE_DW_DCL" (rtos B_sprocket_shaft_bearing_one_dw))
  );end-if
  (if B_sprocket_shaft_bearing_two_dl
     (set_tile "B_SPROCKET_SHAFT_BEARING_ONE_DL_DCL" (rtos B_sprocket_shaft_bearing_one_dl))
  );end-if
);end-B_SPROCKET_SHAFT_BEARING_ONE_DCL_DEFAULT

(defun B_SPROCKET_ACCEPT
  (
  /
  )
  (cond
    ((and (= B_sprocket_what_shaft_driver 10450) (= B_sprocket_what_shaft_beartwo 10460) (= B_sprocket_what_shaft_bearone 10470))
      (mode_tile "B_SPROCKET_SHAFT_DRIVER_DCL" 2)
      (set_tile "error" "请输入轴心数据")
    );end-0
    ((<= B_sprocket_width 0)
      (mode_tile "B_SPROCKET_WIDTH_DCL" 2)
      (set_tile "error" "请输入链轮宽度")
    );end-1
    ((<= B_sprocket_outdia 0)
      (mode_tile "B_SPROCKET_OUTDIA_DCL" 2)
      (set_tile "error" "请输入齿侧直径")
    );end-1
    (T
      (done_dialog 1)
    );end-1
  );end-cond
  (PRINC)
);end-B_SPROCKET_ACCEPT


(defun B_SPROCKET_COUNT
  (
  /
  )
  (B_SPROCKET_GROOVE_COUNT)
  (B_SPROCKET_FIGURE_COUNT)
  (B_SPROCKET_NUMBERAITON_COUNT)
  (PRINC)
);end-B_SPROCKET_COUNT

(defun B_SPROCKET_GROOVE_COUNT
  (
  /
  B_sprocket_groove_p0
  B_sprocket_groove_hc
  )
;;计算三圆弧一直线齿槽形状参数
  (setq B_sprocket_groove_r1 (+ (* B_sprocket_chain_d1 0.5025) 0.05));OK
  (setq B_sprocket_groove_a2 (- 55.0 (/ 60.0 B_sprocket_noteeth)));OK
  (setq B_sprocket_groove_m (* (* (SIN (/ B_sprocket_groove_a2 57.29578)) 0.8) B_sprocket_chain_d1));OK
  (setq B_sprocket_groove_t (* (* (COS (/ B_sprocket_groove_a2 57.29578)) 0.8) B_sprocket_chain_d1));OK
  (setq B_sprocket_groove_r2 (+ (* B_sprocket_chain_d1 1.3025) 0.05));OK
  (setq B_sprocket_groove_beita (- 18.0 (/ 56.0 B_sprocket_noteeth)));OK
  (setq B_sprocket_groove_w (* (* (COS (/ 3.1415926 B_sprocket_noteeth)) 1.3) B_sprocket_chain_d1));OK
  (setq B_sprocket_groove_v (* (* (SIN (/ 3.1415926 B_sprocket_noteeth)) 1.3) B_sprocket_chain_d1));OK
  (setq B_sprocket_groove_gama (- 17.0 (/ 64.0 B_sprocket_noteeth)));OK
  (setq B_sprocket_groove_r3 (- (* (- (+ (* (COS (/ B_sprocket_groove_gama 57.29578)) 1.3) (* (COS (/ B_sprocket_groove_beita 57.29578)) 0.8)) 1.3025) B_sprocket_chain_d1) 0.05));OK
  (setq B_sprocket_groove_bc (* (- (* (SIN (/ B_sprocket_groove_gama 57.29578)) 1.3) (* (SIN (/ B_sprocket_groove_beita 57.29578)) 0.8)) B_sprocket_chain_d1));OK
  (setq B_sprocket_groove_p0 (+ (* (- (* B_sprocket_groove_r1 2.0) B_sprocket_chain_d1) (SIN (/ 3.1415926 B_sprocket_noteeth))) B_sprocket_chain_p));OK
  (setq B_sprocket_groove_hc (* (- (* B_sprocket_chain_d1 1.3) (/ B_sprocket_groove_p0 2.0)) (- (* B_sprocket_chain_d1 1.3) (/ B_sprocket_groove_p0 2.0))));OK
  (setq B_sprocket_groove_h (sqrt (- (* B_sprocket_groove_r3 B_sprocket_groove_r3) B_sprocket_groove_hc)));OK
  (setq B_sprocket_groove_remax (* 0.008 (* B_sprocket_chain_d1 (+ 180.0 (* B_sprocket_noteeth B_sprocket_noteeth)))));OK
  (setq B_sprocket_groove_remin (* (* B_sprocket_chain_d1 0.12) (+ B_sprocket_noteeth 2.0)));OK
  (setq B_sprocket_groove_rimax (+ (* B_sprocket_chain_d1 0.505) (* (expt B_sprocket_chain_d1 0.3333333333) 0.069)))
  (setq B_sprocket_groove_rimin (* B_sprocket_chain_d1 0.505));OK
  (setq B_sprocket_groove_ramax (- 120.0 (/ 90.0 B_sprocket_noteeth)));OK
  (setq B_sprocket_groove_ramin (- 140.0 (/ 90.0 B_sprocket_noteeth)));OK
  (PRINC)
);end-B_SPROCKET_GROOVE_COUNT

(defun B_SPROCKET_FIGURE_COUNT
  (
  /
  )
  (setq B_sprocket_figure_bf1 (* B_sprocket_chain_b1 0.94))
  (setq B_sprocket_figure_ba (* B_sprocket_chain_P 0.12))
  (setq B_sprocket_figure_rx B_sprocket_chain_P)
  (setq B_sprocket_figure_h (* B_sprocket_chain_P 0.5))
  (setq B_sprocket_figure_ra (* B_sprocket_chain_P 0.04))
  (PRINC)
);end-B_SPROCKET_FIGURE_COUNT

(defun B_SPROCKET_NUMBERAITON_COUNT
  (
  /
  )
  (setq B_sprocket_numberation_p B_sprocket_chain_P)
  (setq B_sprocket_numberation_d (/ B_sprocket_numberation_p (sin (/ 3.1415926 B_sprocket_noteeth))))
  (setq B_sprocket_numberation_da (* B_sprocket_chain_P (+ 0.54 (/ (cos (/ 3.1415926 B_sprocket_noteeth)) (sin (/ 3.1415926 B_sprocket_noteeth))))))
  (setq B_sprocket_numberation_damax (- (+ B_sprocket_numberation_d (* B_sprocket_numberation_p 1.25)) B_sprocket_chain_d1))
  (setq B_sprocket_numberation_damin (- (+ B_sprocket_numberation_d (* B_sprocket_numberation_p (- 1.0 (/ 1.6 B_sprocket_noteeth)))) B_sprocket_chain_d1))
  (setq B_sprocket_numberation_df (- B_sprocket_numberation_d B_sprocket_chain_d1))
  (setq B_sprocket_numberation_ha (* B_sprocket_chain_P 0.27))
  (setq B_sprocket_numberation_hamax (- (* B_sprocket_chain_P (+ 0.625 (/ 0.8 B_sprocket_noteeth))) (* B_sprocket_chain_d1 0.5)))
  (setq B_sprocket_numberation_hamin (* (- B_sprocket_chain_P B_sprocket_chain_d1) 0.5))
  (setq B_sprocket_numberation_dg (- (- (* B_sprocket_chain_P (/ (cos (/ 3.1415926 B_sprocket_noteeth)) (sin (/ 3.1415926 B_sprocket_noteeth)))) 0.76) (* B_sprocket_chain_h1 1.04)))
  (if (= (/ B_sprocket_noteeth 2.0) (/ B_sprocket_noteeth 2))
     (setq B_sprocket_numberation_mr (+ B_sprocket_numberation_d B_sprocket_chain_d1))
     (setq B_sprocket_numberation_mr (+ (* B_sprocket_numberation_d (cos (/ 1.5707963 B_sprocket_noteeth))) B_sprocket_chain_d1))
  );end-if
  (PRINC)
);end-B_SPROCKET_NUMBERAITON_COUNT


(defun B_SPROCKET_GROOVE_INPUT
  (
  /
  )
  (if (not (new_dialog "B_SPROCKET_GROOVE" B_sprocket_id))
     (exit)
  );end-if
;;将三圆弧一直线齿槽形状参数值赋给DCL变量
  (set_tile "B_SPROCKET_GROOVE_R1_DCL" (rtos B_sprocket_groove_r1))
  (set_tile "B_SPROCKET_GROOVE_A2_DCL" (rtos B_sprocket_groove_a2))
  (set_tile "B_SPROCKET_GROOVE_M_DCL" (rtos B_sprocket_groove_m))
  (set_tile "B_SPROCKET_GROOVE_T_DCL" (rtos B_sprocket_groove_t))
  (set_tile "B_SPROCKET_GROOVE_R2_DCL" (rtos B_sprocket_groove_r2))
  (set_tile "B_SPROCKET_GROOVE_BEITA_DCL" (rtos B_sprocket_groove_beita))
  (set_tile "B_SPROCKET_GROOVE_W_DCL" (rtos B_sprocket_groove_w))
  (set_tile "B_SPROCKET_GROOVE_V_DCL" (rtos B_sprocket_groove_v))
  (set_tile "B_SPROCKET_GROOVE_GAMA_DCL" (rtos B_sprocket_groove_gama))
  (set_tile "B_SPROCKET_GROOVE_R3_DCL" (rtos B_sprocket_groove_r3))
  (set_tile "B_SPROCKET_GROOVE_BC_DCL" (rtos B_sprocket_groove_bc))
  (set_tile "B_SPROCKET_GROOVE_H_DCL" (rtos B_sprocket_groove_h))
  (set_tile "B_SPROCKET_GROOVE_REMAX_DCL" (rtos B_sprocket_groove_remax))
  (set_tile "B_SPROCKET_GROOVE_REMIN_DCL" (rtos B_sprocket_groove_remin))
  (set_tile "B_SPROCKET_GROOVE_RIMAX_DCL" (rtos B_sprocket_groove_rimax))
  (set_tile "B_SPROCKET_GROOVE_RIMIN_DCL" (rtos B_sprocket_groove_rimin))
  (set_tile "B_SPROCKET_GROOVE_RAMAX_DCL" (rtos B_sprocket_groove_ramax))
  (set_tile "B_SPROCKET_GROOVE_RAMIN_DCL" (rtos B_sprocket_groove_ramin))
  (action_tile "accept"  "(done_dialog 10421)")
  (setq B_sprocket_what_groove (start_dialog))
  (PRINC)
);end-B_SPROCKET_GROOVE_INPUT

(defun B_SPROCKET_FIGURE_INPUT
  (
  /
  )
  (if (not (new_dialog "B_SPROCKET_FIGURE" B_sprocket_id))
     (exit)
  );end-if
  (set_tile "B_SPROCKET_FIGURE_BF1_DCL" (rtos B_sprocket_figure_bf1))
  (set_tile "B_SPROCKET_FIGURE_BA_DCL" (rtos B_sprocket_figure_ba))
  (set_tile "B_SPROCKET_FIGURE_RX_DCL" (rtos B_sprocket_figure_rx))
  (set_tile "B_SPROCKET_FIGURE_H_DCL" (rtos B_sprocket_figure_h))
  (set_tile "B_SPROCKET_FIGURE_RA_DCL" (rtos B_sprocket_figure_ra))
  (action_tile "accept"  "(done_dialog 10431)")
  (setq B_sprocket_what_figure (start_dialog))
  (PRINC)
);end-B_SPROCKET_FIGURE_INPUT

(defun B_SPROCKET_NUMBERAITON
  (
  /
  )
  (if (not (new_dialog "B_SPROCKET_NUMBERAITON" B_sprocket_id))
     (exit)
  );end-if
  (set_tile "B_SPROCKET_NUMBERAITON_P_DCL" (rtos B_sprocket_numberation_p))
  (set_tile "B_SPROCKET_NUMBERAITON_D_DCL" (rtos B_sprocket_numberation_d))
  (set_tile "B_SPROCKET_NUMBERAITON_DA_DCL" (rtos B_sprocket_numberation_da))
  (set_tile "B_SPROCKET_NUMBERAITON_DAMAX_DCL" (rtos B_sprocket_numberation_damax))
  (set_tile "B_SPROCKET_NUMBERAITON_DAMIN_DCL" (rtos B_sprocket_numberation_damin))
  (set_tile "B_SPROCKET_NUMBERAITON_DF_DCL" (rtos B_sprocket_numberation_df))
  (set_tile "B_SPROCKET_NUMBERAITON_HA_DCL" (rtos B_sprocket_numberation_ha))
  (set_tile "B_SPROCKET_NUMBERAITON_HAMAX_DCL" (rtos B_sprocket_numberation_hamax))
  (set_tile "B_SPROCKET_NUMBERAITON_HAMIN_DCL" (rtos B_sprocket_numberation_hamin))
  (set_tile "B_SPROCKET_NUMBERAITON_DG_DCL" (rtos B_sprocket_numberation_dg))
  (set_tile "B_SPROCKET_NUMBERAITON_MR_DCL" (rtos B_sprocket_numberation_mr))
  (action_tile "accept"  "(done_dialog 10441)")
  (setq B_sprocket_what_numberaition (start_dialog))
  (PRINC)
);end-B_SPROCKET_NUMBERAITON

(defun B_SPROCKET_SHAFT_DRIVER
  (
  /
  )
  (set_tile "error" "")
  (if (not (new_dialog "B_SPROCKET_SHAFT_DRIVER" B_sprocket_id))
     (exit)
  );end-if
  (B_SPROCKET_SHAFT_DRIVER_DCL_DEFAULT)
  (action_tile "B_SPROCKET_SHAFT_DRIVER_D_DCL" "(setq B_sprocket_shaft_driver_d (atof (get_tile $key)))")
  (action_tile "accept"  "(done_dialog 10451)")
  (setq B_sprocket_what_shaft_beartwo 10460)
;  (setq B_sprocket_shaft_bearing_two_dy 0.0)
;  (setq B_sprocket_shaft_bearing_two_dw 0.0)
;  (setq B_sprocket_shaft_bearing_two_dl 0.0)
  (setq B_sprocket_what_shaft_bearone 10470)
;  (setq B_sprocket_shaft_bearing_one_dy 0.0)
;  (setq B_sprocket_shaft_bearing_one_dw 0.0)
;  (setq B_sprocket_shaft_bearing_one_dl 0.0)
  (setq B_sprocket_what_shaft_driver (start_dialog))
  (PRINC)
);end-B_SPROCKET_SHAFT_DRIVER

(defun B_SPROCKET_SHAFT_BEARING_TWO
  (
  /
  )
  (set_tile "error" "")
  (if (not (new_dialog "B_SPROCKET_SHAFT_BEARING_TWO" B_sprocket_id))
     (exit)
  );end-if
  (B_SPROCKET_SHAFT_BEARING_TWO_DCL_DEFAULT)
  (action_tile "B_SPROCKET_SHAFT_BEARING_TWO_DY_DCL" "(setq B_sprocket_shaft_bearing_two_dy (atof (get_tile $key)))")
  (action_tile "B_SPROCKET_SHAFT_BEARING_TWO_DW_DCL" "(setq B_sprocket_shaft_bearing_two_dw (atof (get_tile $key)))")
  (action_tile "B_SPROCKET_SHAFT_BEARING_TWO_DL_DCL" "(setq B_sprocket_shaft_bearing_two_dl (atof (get_tile $key)))")
  (action_tile "accept"  "(done_dialog 10461)")
  (setq B_sprocket_what_shaft_bearone 10470)
;  (setq B_sprocket_shaft_bearing_one_dy 0.0)
;  (setq B_sprocket_shaft_bearing_one_dw 0.0)
;  (setq B_sprocket_shaft_bearing_one_dl 0.0)
  (setq B_sprocket_what_shaft_driver 10450)
;  (setq B_sprocket_shaft_driver_d 0.0)
  (setq B_sprocket_what_shaft_beartwo (start_dialog))
  (PRINC)
);end-B_SPROCKET_SHAFT_BEARING_TWO

(defun B_SPROCKET_SHAFT_BEARING_ONE
  (
  /
  )
  (set_tile "error" "")
  (if (not (new_dialog "B_SPROCKET_SHAFT_BEARING_ONE" B_sprocket_id))
     (exit)
  );end-if
  (B_SPROCKET_SHAFT_BEARING_ONE_DCL_DEFAULT)
  (action_tile "B_SPROCKET_SHAFT_BEARING_ONE_DY_DCL" "(setq B_sprocket_shaft_bearing_one_dy (atof (get_tile $key)))")
  (action_tile "B_SPROCKET_SHAFT_BEARING_ONE_DW_DCL" "(setq B_sprocket_shaft_bearing_one_dw (atof (get_tile $key)))")
  (action_tile "B_SPROCKET_SHAFT_BEARING_ONE_DL_DCL" "(setq B_sprocket_shaft_bearing_one_dl (atof (get_tile $key)))")
  (action_tile "accept"  "(done_dialog 10471)")
  (setq B_sprocket_what_shaft_beartwo 10460)
;  (setq B_sprocket_shaft_bearing_two_dy 0.0)
;  (setq B_sprocket_shaft_bearing_two_dw 0.0)
;  (setq B_sprocket_shaft_bearing_two_dl 0.0)
  (setq B_sprocket_what_shaft_driver 10450)
;  (setq B_sprocket_shaft_driver_d 0.0)
  (setq B_sprocket_what_shaft_bearone (start_dialog))
  (PRINC)
);end-B_SPROCKET_SHAFT_BEARING_ONE


















(defun B_SPROCKET_DRAW_FACE_CENTER
  (
  /
  B_current_lt
  )
  (setq B_current_lt (getvar "CELTYPE"))
  (if (/= B_current_lt "CENTER")
    (setvar "CELTYPE" "CENTER")
    (setvar "CELTYPE" B_current_lt)
  );end-if
  (setq B_sprocket_numberation_d (atof (rtos B_sprocket_numberation_d 2 2)))
  (setvar "OSMODE"        0)
  (command "line" (list (+ (car B_sprocket_center) (+ (* B_sprocket_numberation_da 0.5) 3.0)) (cadr B_sprocket_center) 0)
                  (list (- (car B_sprocket_center) (+ (* B_sprocket_numberation_da 0.5) 3.0)) (cadr B_sprocket_center) 0) ""
  );end-command
  (command "line" (list (car B_sprocket_center) (+ (cadr B_sprocket_center) (+ (* B_sprocket_numberation_da 0.5) 3.0)) 0)
                  (list (car B_sprocket_center) (- (cadr B_sprocket_center) (+ (* B_sprocket_numberation_da 0.5) 3.0)) 0) ""
  );end-command
  (command "CIRCLE" B_sprocket_center "D" B_sprocket_numberation_d
  );end-command
  (setvar "OSMODE"       51)
  (setvar "CELTYPE" B_current_lt)
);end-B_SPROCKET_DRAW_FACE_CENTER

(defun B_SPROCKET_DRAW_FLANK_CENTER
  (
  /
  B_current_lt
  B_sprocket_point01
  B_sprocket_point02
  )
  (setq B_current_lt (getvar "CELTYPE"))
  (if (/= B_current_lt "CENTER")
    (setvar "CELTYPE" "CENTER")
    (setvar "CELTYPE" B_current_lt)
  );end-if
  (setq B_sprocket_numberation_d (atof (rtos B_sprocket_numberation_d 2 2)))
  (setq B_sprocket_point01  (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (/ B_sprocket_numberation_d 2.0)))
  (setq B_sprocket_point02  (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (/ B_sprocket_numberation_d -2.0)))
  (setvar "OSMODE"        0)
  (command "line" (polar B_sprocket_center B_sprocket_angle -3.0) (polar B_sprocket_center B_sprocket_angle (+ B_sprocket_width 3.0)) ""
  );end-command
  (command "line" (polar B_sprocket_point01 B_sprocket_angle -3.0) (polar B_sprocket_point01 B_sprocket_angle (+ B_sprocket_figure_bf1 3.0)) ""
  );end-command
  (command "line" (polar B_sprocket_point02 B_sprocket_angle -3.0) (polar B_sprocket_point02 B_sprocket_angle (+ B_sprocket_figure_bf1 3.0)) ""
  );end-command
  (setvar "OSMODE"       51)
  (setvar "CELTYPE" B_current_lt)
);end-B_SPROCKET_DRAW_FLANK_CENTER


(defun B_SPROCKET_DRAW_FACE_CHAIN
  (
  /
  )
  (setq B_sprocket_numberation_da (atof (rtos B_sprocket_numberation_da 2 0)))
  (setq B_sprocket_numberation_df (atof (rtos B_sprocket_numberation_df 2 2)))
  (setvar "OSMODE"        0)
  (command "CIRCLE" B_sprocket_center "D" B_sprocket_numberation_da
  );end-command
  (command "CIRCLE" B_sprocket_center "D" B_sprocket_numberation_df
  );end-command
  (command "CIRCLE" B_sprocket_center "D" B_sprocket_outdia
  );end-command
  (setvar "OSMODE"        51)
  (princ)
);end-B_SPROCKET_DRAW_FACE_CHAIN


(defun B_SPROCKET_DRAW_FLANK_CHAIN
  (
  /
  B_sprocket_point00
  B_sprocket_point01
  B_sprocket_point02
  B_sprocket_point03
  B_sprocket_point04
  B_sprocket_point05
  B_sprocket_point06
  B_sprocket_point07
  B_sprocket_point08
  B_sprocket_point09
  )
  (setq B_sprocket_figure_ba (atof (rtos B_sprocket_figure_ba 2 1)))
  (setq B_sprocket_figure_rx (atof (rtos B_sprocket_figure_rx 2 0)))
  (setq B_sprocket_figure_bf1 (atof (rtos B_sprocket_figure_bf1 2 2)))
  (setq B_sprocket_numberation_da (atof (rtos B_sprocket_numberation_da 2 0)))
  (setq B_sprocket_numberation_df (atof (rtos B_sprocket_numberation_df 2 2)))
  (setq B_sprocket_draw_h (sqrt (- (* B_sprocket_figure_ba B_sprocket_figure_rx 2.0) (* B_sprocket_figure_ba B_sprocket_figure_ba))))
  (setq B_sprocket_point00  (polar B_sprocket_center B_sprocket_angle B_sprocket_width))
  (setq B_sprocket_point01  (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (- (/ B_sprocket_numberation_da 2.0) B_sprocket_draw_h)))
  (setq B_sprocket_point02  (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (+ (/ B_sprocket_numberation_da -2.0) B_sprocket_draw_h)))
  (setq B_sprocket_point03  (polar B_sprocket_point00 (+ B_sprocket_angle 1.570796) (/ B_sprocket_outdia 2.0)))
  (setq B_sprocket_point04  (polar B_sprocket_point00 (+ B_sprocket_angle 1.570796) (/ B_sprocket_outdia -2.0)))
  (setq B_sprocket_point05  (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (/ B_sprocket_numberation_df 2.0)))
  (setq B_sprocket_point06  (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (/ B_sprocket_numberation_df -2.0)))
  (setq B_sprocket_point07  (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (/ B_sprocket_numberation_da 2.0)))
  (setq B_sprocket_point08  (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (/ B_sprocket_numberation_da -2.0)))
  (setvar "OSMODE"        0)
  (command "line" B_sprocket_point01 B_sprocket_point02 ""
  );end-command
  (command "line" B_sprocket_point05 (polar B_sprocket_point05 B_sprocket_angle B_sprocket_figure_bf1) ""
  );end-command
  (command "line" B_sprocket_point06 (polar B_sprocket_point06 B_sprocket_angle B_sprocket_figure_bf1) ""
  );end-command
  (command "line" (polar B_sprocket_point01 B_sprocket_angle B_sprocket_figure_bf1) (polar B_sprocket_point02 B_sprocket_angle B_sprocket_figure_bf1) ""
  );end-command
  (command "line" (polar B_sprocket_point07 B_sprocket_angle B_sprocket_figure_ba) (polar B_sprocket_point07 B_sprocket_angle (- B_sprocket_figure_bf1 B_sprocket_figure_ba)) ""
  );end-command
  (command "line" (polar B_sprocket_point08 B_sprocket_angle B_sprocket_figure_ba) (polar B_sprocket_point08 B_sprocket_angle (- B_sprocket_figure_bf1 B_sprocket_figure_ba)) ""
  );end-command
  (command "arc" (polar B_sprocket_point07 B_sprocket_angle B_sprocket_figure_ba) "e" B_sprocket_point01 "r" B_sprocket_figure_rx
  );end-command
  (command "arc" B_sprocket_point02 "e" (polar B_sprocket_point08 B_sprocket_angle B_sprocket_figure_ba) "r" B_sprocket_figure_rx
  );end-command
  (command "arc" (polar B_sprocket_point01 B_sprocket_angle B_sprocket_figure_bf1) "e" (polar B_sprocket_point07 B_sprocket_angle (- B_sprocket_figure_bf1 B_sprocket_figure_ba)) "r" B_sprocket_figure_rx
  );end-command
  (command "arc" (polar B_sprocket_point08 B_sprocket_angle (- B_sprocket_figure_bf1 B_sprocket_figure_ba)) "e" (polar B_sprocket_point02 B_sprocket_angle B_sprocket_figure_bf1) "r" B_sprocket_figure_rx
  );end-command
  (command "line" B_sprocket_point03 B_sprocket_point04 ""
  );end-command
  (command "line" B_sprocket_point03 (polar B_sprocket_point03 B_sprocket_angle (- B_sprocket_figure_bf1 B_sprocket_width)) ""
  );end-command
  (command "line" B_sprocket_point04 (polar B_sprocket_point04 B_sprocket_angle (- B_sprocket_figure_bf1 B_sprocket_width)) ""
  );end-command
  (setvar "OSMODE"        51)
  (princ)
);end-B_SPROCKET_DRAW_FLANK_CHAIN

(defun B_SPROCKET_DRAW_FACE_SHAFT
  (
  /
  )
  (COND
    ((= B_sprocket_shaft_view 10411)
      (B_SPROCKET_DRAW_FACE_SHAFT_DRIVER)
    );end-10411
    ((= B_sprocket_shaft_view 10412)
      (B_SPROCKET_DRAW_FACE_SHAFT_BEARTWO)     
    );end-10412
    ((= B_sprocket_shaft_view 10413)
      (B_SPROCKET_DRAW_FACE_SHAFT_BEARONE)     
    );end-10413
  );end-cond  
);end-B_SPROCKET_DRAW_FACE_SHAFT

(defun B_SPROCKET_DRAW_FLANK_SHAFT
  (
  /
  )
  (COND
    ((= B_sprocket_shaft_view 10411)
      (B_SPROCKET_DRAW_FLANK_SHAFT_DRIVER)
    );end-10411
    ((= B_sprocket_shaft_view 10412)
      (B_SPROCKET_DRAW_FLANK_SHAFT_BEARTWO)     
    );end-10412
    ((= B_sprocket_shaft_view 10413)
      (B_SPROCKET_DRAW_FLANK_SHAFT_BEARONE)     
    );end-10413
  );end-cond
);end-B_SPROCKET_DRAW_FLANK_SHAFT

(defun B_SPROCKET_DRAW_FACE_SHAFT_DRIVER
  (
  /
  B_sprocket_shaft_jian_list
  B_sprocket_shaft_jian_count
  B_sprocket_shaft_jian_date
  B_sprocket_shaft_jian_b
  B_sprocket_shaft_jian_t1
  B_sprocket_shaft_jian_py
  B_sprocket_shaft_point00
  B_sprocket_shaft_point01
  B_sprocket_shaft_point02
  B_sprocket_shaft_point03
  B_sprocket_shaft_point04
  )
  (if (null B_DATE_LIST_TWO) (load "B_DATE_LIST_TWO"))
  (if (null B_NO_CENTER_LIST) (load "B_NO_CENTER_LIST"))
  (if (null B_DATE_LIST_NO) (load "B_DATE_LIST_NO"))
  (setq B_sprocket_shaft_jian_list (B_DATE_LIST_TWO "B_JIAN.DAT"))
  (setq B_sprocket_shaft_jian_count (B_NO_CENTER_LIST B_sprocket_shaft_driver_d B_sprocket_shaft_jian_list))
  (setq B_sprocket_shaft_jian_date (B_DATE_LIST_NO "B_JIAN.DAT" B_sprocket_shaft_jian_count))
  (setq B_sprocket_shaft_jian_b (atof (nth 2 B_sprocket_shaft_jian_date)))
  (setq B_sprocket_shaft_jian_t1 (atof (nth 5 B_sprocket_shaft_jian_date)))
  (setq B_sprocket_shaft_point00 (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (+ (/ B_sprocket_shaft_driver_d 2.0) B_sprocket_shaft_jian_t1)))
  (setq B_sprocket_shaft_jian_py (sqrt (- (* B_sprocket_shaft_driver_d B_sprocket_shaft_driver_d) (* B_sprocket_shaft_jian_b B_sprocket_shaft_jian_b))))
  (setq B_sprocket_shaft_point01 (list (+ B_sprocket_center_x (/ B_sprocket_shaft_jian_b -2.0)) (+ B_sprocket_center_y (/ B_sprocket_shaft_jian_py 2.0))))
  (setq B_sprocket_shaft_point02 (list (+ B_sprocket_center_x (/ B_sprocket_shaft_jian_b 2.0)) (+ B_sprocket_center_y (/ B_sprocket_shaft_jian_py 2.0))))
  (setq B_sprocket_shaft_point03 (polar B_sprocket_shaft_point00 B_sprocket_angle (/ B_sprocket_shaft_jian_b -2.0)))
  (setq B_sprocket_shaft_point04 (polar B_sprocket_shaft_point00 B_sprocket_angle (/ B_sprocket_shaft_jian_b 2.0)))
  (setvar "OSMODE"        0)
  (command "line" B_sprocket_shaft_point01 B_sprocket_shaft_point03 B_sprocket_shaft_point04 B_sprocket_shaft_point02 ""
  );end-command
  (command "arc" "c" B_sprocket_center B_sprocket_shaft_point01 B_sprocket_shaft_point02
  );end-command
  (setvar "OSMODE"        51)
  (princ)  
);end-B_SPROCKET_DRAW_FACE_SHAFT_DRIVER

(defun B_SPROCKET_DRAW_FLANK_SHAFT_DRIVER
  (
  /
  B_sprocket_shaft_jian_list
  B_sprocket_shaft_jian_count
  B_sprocket_shaft_jian_date
  B_sprocket_shaft_jian_b
  B_sprocket_shaft_jian_t1
  B_sprocket_shaft_jian_py
  B_sprocket_shaft_point01
  B_sprocket_shaft_point02
  B_sprocket_shaft_point03
  B_current_lt
  )
  (if (null B_DATE_LIST_TWO) (load "B_DATE_LIST_TWO"))
  (if (null B_NO_CENTER_LIST) (load "B_NO_CENTER_LIST"))
  (if (null B_DATE_LIST_NO) (load "B_DATE_LIST_NO"))
  (setq B_sprocket_shaft_jian_list (B_DATE_LIST_TWO "B_JIAN.DAT"))
  (setq B_sprocket_shaft_jian_count (B_NO_CENTER_LIST B_sprocket_shaft_driver_d B_sprocket_shaft_jian_list))
  (setq B_sprocket_shaft_jian_date (B_DATE_LIST_NO "B_JIAN.DAT" B_sprocket_shaft_jian_count))
  (setq B_sprocket_shaft_jian_b (atof (nth 2 B_sprocket_shaft_jian_date)))
  (setq B_sprocket_shaft_jian_t1 (atof (nth 5 B_sprocket_shaft_jian_date)))
  (setq B_sprocket_shaft_point01 (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (+ (/ B_sprocket_shaft_driver_d 2.0) B_sprocket_shaft_jian_t1)))
  (setq B_sprocket_shaft_jian_py (sqrt (- (* B_sprocket_shaft_driver_d B_sprocket_shaft_driver_d) (* B_sprocket_shaft_jian_b B_sprocket_shaft_jian_b))))
  (setq B_sprocket_shaft_point02 (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (/ B_sprocket_shaft_driver_d -2.0)))
  (setq B_sprocket_shaft_point03 (polar B_sprocket_center (+ B_sprocket_angle 1.570796) (/ B_sprocket_shaft_jian_py 2.0)))
  (setq B_current_lt (getvar "CELTYPE"))
  (if (/= B_current_lt "HIDDEN")
    (setvar "CELTYPE" "HIDDEN")
    (setvar "CELTYPE" B_current_lt)
  );end-if
  (setvar "OSMODE"        0)
  (command "line" B_sprocket_shaft_point01 (polar B_sprocket_shaft_point01 B_sprocket_angle B_sprocket_width) ""
  );end-command
  (command "line" B_sprocket_shaft_point02 (polar B_sprocket_shaft_point02 B_sprocket_angle B_sprocket_width) ""
  );end-command
  (command "line" B_sprocket_shaft_point03 (polar B_sprocket_shaft_point03 B_sprocket_angle B_sprocket_width) ""
  );end-command
  (setvar "OSMODE"        51)
  (setvar "CELTYPE" B_current_lt)
  (princ)
);end-B_SPROCKET_DRAW_FACE_SHAFT_DRIVER

(defun B_SPROCKET_DRAW_FACE_SHAFT_BEARTWO
  (
  /
  )
  (setvar "OSMODE"        0)
  (command "CIRCLE" B_sprocket_center "D" B_sprocket_shaft_bearing_two_dy
  );end-command
  (command "CIRCLE" B_sprocket_center "D" B_sprocket_shaft_bearing_two_dl
  );end-command
  (setvar "OSMODE"        51)
  (princ)
);end-B_SPROCKET_DRAW_FACE_SHAFT_DRIVER

(defun B_SPROCKET_DRAW_FLANK_SHAFT_BEARTWO
  (
  /
  B_sprocket_shaft_point00
  B_sprocket_shaft_point01
  B_sprocket_shaft_point02
  B_sprocket_shaft_point03
  B_sprocket_shaft_point04
  B_sprocket_shaft_point05
  B_sprocket_shaft_point06
  )
  (setq B_sprocket_shaft_point00 (polar B_sprocket_center B_sprocket_angle B_sprocket_shaft_bearing_two_dw))
  (setq B_sprocket_shaft_point01 (polar B_sprocket_shaft_point00 (+ B_sprocket_angle 1.570796) (/ B_sprocket_shaft_bearing_two_dy 2.0)))
  (setq B_sprocket_shaft_point02 (polar B_sprocket_shaft_point00 (+ B_sprocket_angle 1.570796) (/ B_sprocket_shaft_bearing_two_dy -2.0)))
  (setq B_sprocket_shaft_point03 (polar B_sprocket_shaft_point01 B_sprocket_angle (- B_sprocket_width (* B_sprocket_shaft_bearing_two_dw 2.0))))
  (setq B_sprocket_shaft_point04 (polar B_sprocket_shaft_point02 B_sprocket_angle (- B_sprocket_width (* B_sprocket_shaft_bearing_two_dw 2.0))))
  (setq B_sprocket_shaft_point05 (polar B_sprocket_shaft_point00 (+ B_sprocket_angle 1.570796) (/ B_sprocket_shaft_bearing_two_dl 2.0)))
  (setq B_sprocket_shaft_point06 (polar B_sprocket_shaft_point00 (+ B_sprocket_angle 1.570796) (/ B_sprocket_shaft_bearing_two_dl -2.0)))
  (setq B_current_lt (getvar "CELTYPE"))
  (if (/= B_current_lt "HIDDEN")
    (setvar "CELTYPE" "HIDDEN")
    (setvar "CELTYPE" B_current_lt)
  );end-if
  (setvar "OSMODE"        0)
  (command "line" B_sprocket_shaft_point01 (polar B_sprocket_shaft_point01 (+ B_sprocket_angle pi) B_sprocket_shaft_bearing_two_dw) ""
  );end-command
  (command "line" B_sprocket_shaft_point02 (polar B_sprocket_shaft_point02 (+ B_sprocket_angle pi) B_sprocket_shaft_bearing_two_dw) ""
  );end-command
  (command "line" B_sprocket_shaft_point02 B_sprocket_shaft_point01 ""
  );end-command
  (command "line" B_sprocket_shaft_point03 (polar B_sprocket_shaft_point03 B_sprocket_angle B_sprocket_shaft_bearing_two_dw) ""
  );end-command
  (command "line" B_sprocket_shaft_point04 (polar B_sprocket_shaft_point04 B_sprocket_angle B_sprocket_shaft_bearing_two_dw) ""
  );end-command
  (command "line" B_sprocket_shaft_point03 B_sprocket_shaft_point04 ""
  );end-command
  (command "line" B_sprocket_shaft_point05 (polar B_sprocket_shaft_point05 B_sprocket_angle (- B_sprocket_width (* B_sprocket_shaft_bearing_two_dw 2.0))) ""
  );end-command
  (command "line" B_sprocket_shaft_point06 (polar B_sprocket_shaft_point06 B_sprocket_angle (- B_sprocket_width (* B_sprocket_shaft_bearing_two_dw 2.0))) ""
  );end-command
  (setvar "OSMODE"        51)
  (setvar "CELTYPE" B_current_lt)
  (princ)
);end-B_SPROCKET_DRAW_FACE_SHAFT_DRIVER

(defun B_SPROCKET_DRAW_FACE_SHAFT_BEARONE
  (
  /
  )
  (setvar "OSMODE"        0)
  (command "CIRCLE" B_sprocket_center "D" B_sprocket_shaft_bearing_one_dy
  );end-command
  (command "CIRCLE" B_sprocket_center "D" B_sprocket_shaft_bearing_one_dl
  );end-command
  (setvar "OSMODE"        51)
  (princ)
);end-B_SPROCKET_DRAW_FACE_SHAFT_DRIVER

(defun B_SPROCKET_DRAW_FLANK_SHAFT_BEARONE
  (
  /
  B_sprocket_shaft_point00
  B_sprocket_shaft_point01
  B_sprocket_shaft_point02
  B_sprocket_shaft_point03
  B_sprocket_shaft_point04
  )
  (setq B_sprocket_shaft_point00 (polar B_sprocket_center B_sprocket_angle B_sprocket_shaft_bearing_one_dw))
  (setq B_sprocket_shaft_point01 (polar B_sprocket_shaft_point00 (+ B_sprocket_angle 1.570796) (/ B_sprocket_shaft_bearing_one_dy 2.0)))
  (setq B_sprocket_shaft_point02 (polar B_sprocket_shaft_point00 (+ B_sprocket_angle 1.570796) (/ B_sprocket_shaft_bearing_one_dy -2.0)))
  (setq B_sprocket_shaft_point03 (polar B_sprocket_shaft_point00 (+ B_sprocket_angle 1.570796) (/ B_sprocket_shaft_bearing_one_dl 2.0)))
  (setq B_sprocket_shaft_point04 (polar B_sprocket_shaft_point00 (+ B_sprocket_angle 1.570796) (/ B_sprocket_shaft_bearing_one_dl -2.0)))
  (setq B_current_lt (getvar "CELTYPE"))
  (if (/= B_current_lt "HIDDEN")
    (setvar "CELTYPE" "HIDDEN")
    (setvar "CELTYPE" B_current_lt)
  );end-if
  (setvar "OSMODE"        0)
  (command "line" B_sprocket_shaft_point01 (polar B_sprocket_shaft_point01 (+ B_sprocket_angle pi) B_sprocket_shaft_bearing_one_dw) ""
  );end-command
  (command "line" B_sprocket_shaft_point02 (polar B_sprocket_shaft_point02 (+ B_sprocket_angle pi) B_sprocket_shaft_bearing_one_dw) ""
  );end-command
  (command "line" B_sprocket_shaft_point02 B_sprocket_shaft_point01 ""
  );end-command
  (command "line" B_sprocket_shaft_point03 (polar B_sprocket_shaft_point03 B_sprocket_angle (- B_sprocket_width B_sprocket_shaft_bearing_one_dw)) ""
  );end-command
  (command "line" B_sprocket_shaft_point04 (polar B_sprocket_shaft_point04 B_sprocket_angle (- B_sprocket_width B_sprocket_shaft_bearing_one_dw)) ""
  );end-command
  (setvar "OSMODE"        51)
  (setvar "CELTYPE" B_current_lt)
  (princ)
);end-B_SPROCKET_DRAW_FACE_SHAFT_DRIVER

(defun B_SPROCKET_ACTION_TILE
  (
  /
  )
  (setq B_sprocket_what 7)
  (B_SPROCKET_SET_BEGIN)
  (while (> B_sprocket_what 2)
    (if (not (new_dialog "B_SPROCKET" B_sprocket_id))
      (exit)
    );end-if
    (B_SPROCKET_DCL_DEFAULT)
    (action_tile "B_SPROCKET_VIEW_DCL" "(B_SPROCKET_SLIDE_CHANGE) (B_SPROCKET_HILITE B_SPROCKET_VIEW_DCL)")
    (action_tile "B_SPROCKET_VIEW_S_DCL" "(B_SPROCKET_SLIDE_CHANGE) (B_SPROCKET_HILITE B_SPROCKET_VIEW_DCL)")
    (action_tile "B_SPROCKET_CHAIN_DCL" "(B_SPROCKET_CHAIN_INPUT) (B_SPROCKET_COUNT)")
    (action_tile "B_SPROCKET_CHAIN_S_DCL" "(B_SPROCKET_CHAIN_SELECTION) (B_SPROCKET_COUNT)")
    (action_tile "B_SPROCKET_NOTEETH_DCL" "(B_SPROCKET_NOTEETH_INPUT) (B_SPROCKET_COUNT)")
    (action_tile "B_SPROCKET_NOTEETH_S_DCL" "(B_SPROCKET_NOTEETH_SELECTION) (B_SPROCKET_COUNT)")
    (action_tile "B_SPROCKET_WIDTH_DCL" "(setq B_sprocket_width (atof (get_tile $key)))")
    (action_tile "B_SPROCKET_OUTDIA_DCL" "(setq B_sprocket_outdia (atof (get_tile $key)))")
    (action_tile "B_SPROCKET_GROOVE_DCL" "(B_SPROCKET_GROOVE_INPUT)")
    (action_tile "B_SPROCKET_FIGURE_DCL" "(B_SPROCKET_FIGURE_INPUT)")
    (action_tile "B_SPROCKET_NUMBERAITON_DCL" "(B_SPROCKET_NUMBERAITON)")
    (action_tile "B_SPROCKET_SHAFT_DRIVER_DCL" "(B_SPROCKET_HILITE B_SPROCKET_SHAFT_DRIVER_DCL) (setq B_sprocket_shaft_view 10411) (B_SPROCKET_SHAFT_DRIVER)")
    (action_tile "B_SPROCKET_SHAFT_BEARING_TWO_DCL" "(B_SPROCKET_HILITE B_SPROCKET_SHAFT_BEARING_TWO_DCL) (setq B_sprocket_shaft_view 10412) (B_SPROCKET_SHAFT_BEARING_TWO)")
    (action_tile "B_SPROCKET_SHAFT_BEARING_ONE_DCL" "(B_SPROCKET_HILITE B_SPROCKET_SHAFT_BEARING_ONE_DCL) (setq B_sprocket_shaft_view 10413) (B_SPROCKET_SHAFT_BEARING_ONE)")
    (action_tile "B_SPROCKET_CENTER_DCL" "(done_dialog 4)")
    (action_tile "B_SPROCKET_CENTER_X_DCL" "(B_SPROCKET_CENTER_INPUT)")
    (action_tile "B_SPROCKET_CENTER_Y_DCL" "(B_SPROCKET_CENTER_INPUT)")
    (action_tile "B_SPROCKET_CENTER_Z_DCL" "(B_SPROCKET_CENTER_INPUT)")
    (action_tile "B_SPROCKET_ANGLE_S_DCL" "(done_dialog 3)")
    (action_tile "B_SPROCKET_ANGLE_DCL" "(B_SPROCKET_ANGLE_INPUT)")
    (action_tile "cancel"  "(done_dialog 0)")
    (action_tile "accept"  "(B_SPROCKET_ACCEPT)")
    (setq B_sprocket_what (start_dialog))
    (cond
      ((= B_sprocket_what 4)
        (initget 1)
        (setq B_sprocket_center (getpoint "\n插入点: ")
              B_sprocket_center_x (car B_sprocket_center)
              B_sprocket_center_y (cadr B_sprocket_center)
              B_sprocket_center_z (caddr B_sprocket_center)
        )
      );end-4
      ((= B_sprocket_what 3)
       (setq B_sprocket_angle (getorient "请输入插入角度: "))
      );end-3
    );end-cond
  );end-while
);end-B_SPROCKET_ACTION_TILE

(defun B_SPROCKET
  (
   /
   B_sprocket_old_cmd;保存系统变量CMDECHO用
   B_sprocket_filletrad;保存系统变量FILLETRAD用
   B_current_layer;保存当前层变量
   B_sprocket_id;数据文件标号
   B_sprocket_chain_date_file;数据文件名变量
   B_sprocket_center;插入点变量
   B_sprocket_center_x;插入点X坐标变量
   B_sprocket_center_y;插入点Y坐标变量
   B_sprocket_center_z;插入点Z坐标变量
   B_sprocket_angle;角度变量
   B_sprocket_chain_dat_list;返回链型号数据表
   B_sprocket_chain_size_line;返回选中链型号的参数表
   B_sprocket_chain_size;返回选中链型号
   B_sprocket_chain_data_n;返回选中链型号-表中
   B_sprocket_chain_p;返回选中链节距
   B_sprocket_chain_d1;返回选中链滚子直径
   B_sprocket_chain_b1;返回选中链内节内宽
   B_sprocket_chain_h1;返回选中链条通道高度
   B_sprocket_chain_pt;返回选中链排距
   B_sprocket_chain_kn;返回选中链抗拉载荷
   B_sprocket_noteeth;链轮齿数变量
   B_sprocket_noteeth_list;链轮齿数表变量
   B_sprocket_width;链轮宽度变量
   B_sprocket_outdia;链轮齿侧凸弦直径变量
   B_sprocket_numberation_p;返回选中链节距
   B_sprocket_numberation_d;返回链轮分度圆直径
   B_sprocket_numberation_da;返回链轮齿顶圆直径
   B_sprocket_numberation_damax;返回链轮齿顶圆直径最大值
   B_sprocket_numberation_damin;返回链轮齿顶圆直径最小值
   B_sprocket_numberation_df;返回链轮齿根圆直径
   B_sprocket_numberation_ha;返回链轮分度圆齿弦高
   B_sprocket_numberation_hamax;返回链轮分度圆齿弦高最大值
   B_sprocket_numberation_hamin;返回链轮分度圆齿弦高最小值
   B_sprocket_numberation_dg;返回链轮齿侧凸缘直径
   B_sprocket_numberation_mr;返回链轮量柱测量距
   B_sprocket_groove_r1;返回链轮齿沟圆弧半径
   B_sprocket_groove_a2;返回链轮齿沟半角
   B_sprocket_groove_m;返回链轮工作段圆弧中心坐标-X
   B_sprocket_groove_t;返回链轮工作段圆弧中心坐标-Y
   B_sprocket_groove_r2;返回链轮工作段圆弧半径
   B_sprocket_groove_beita;返回链轮工作段圆弧中心角
   B_sprocket_groove_w;返回链轮齿顶圆弧中心坐标-X
   B_sprocket_groove_v;返回链轮齿顶圆弧中心坐标-Y
   B_sprocket_groove_gama;返回链轮齿形半角
   B_sprocket_groove_r3;返回链轮齿顶圆弧半径
   B_sprocket_groove_bc;返回链轮工作段直线部分长度
   B_sprocket_groove_h;返回链轮e点至齿沟圆弧中心料攥的距离
   B_sprocket_figure_bf1;返回链轮齿宽
   B_sprocket_figure_ba;返回链轮齿侧倒角
   B_sprocket_figure_rx;返回链轮齿侧半径
   B_sprocket_figure_h
   B_sprocket_figure_ra
   B_sprocket_what;窗口循环变量
   B_sprocket_last_slide;中间变量
   B_sprocket_tile;中间变量
   B_sprocket_view;视图选择变量,主视图:10401,侧视图:10402
   B_sprocket_shaft_view;心轴式样选择变量 ,驱动:10411,双轴承:10412,单轴承:10413
   B_sprocket_what_groove;齿槽形状判断变量,已设:10421,未设:10420
   B_sprocket_what_figure;轴向齿廓判断变量,已设:10431,未设:10430
   B_sprocket_what_numberaition;计算参数判断变量,已设:10441,未设:10440
   B_sprocket_what_shaft_driver;轴心判断变量1 ,已设:10451,未设:10450
   B_sprocket_what_shaft_beartwo;轴心判断变量2 ,已设:10461,未设:10460
   B_sprocket_shaft_bearing_two_dy;双轴承轴心轴承外径变量
   B_sprocket_shaft_bearing_two_dw;双轴承轴心轴承宽度变量
   B_sprocket_shaft_bearing_two_dl;双轴承轴心轴承通径变量
   B_sprocket_what_shaft_bearone;轴心判断变量3 ,已设:10461,未设:10470
   B_sprocket_shaft_bearing_one_dy;单轴承轴心轴承外径变量
   B_sprocket_shaft_bearing_one_dw;单轴承轴心轴承宽度变量
   B_sprocket_shaft_bearing_one_dl;单轴承轴心轴承通径变量
  )
  (setq B_sprocket_old_cmd (getvar "CMDECHO"))
  (setvar "CMDECHO" 0)
  (setq B_sprocket_id (load_dialog "B_SPROCKET"));装入B_DRAWING.DCL
  (setq B_sprocket_chain_date_file "B_SPROCKET_CHAIN.DAT")
  (if (null B_DATE_LIST_ONE) (load "B_DATE_LIST_ONE"))
  (setq B_sprocket_chain_dat_list (B_DATE_LIST_ONE B_sprocket_chain_date_file));装入链轮链型号表
  (B_SPROCKET_NOTEETH_LIST_BEGIN);装入链轮齿数表
  (B_SPROCKET_ACTION_TILE)
  (if (= B_sprocket_what 1)
    (progn
      (setq B_current_layer (getvar "CLAYER"));保存当前图层
      (setq B_sprocket_filletrad (getvar "FILLETRAD"))
      (B_SPROCKET_MAKE_LAYER);创建链轮图层
      (cond
        ((= B_sprocket_view 10401);画主视图
          (B_SPROCKET_DRAW_FACE_CHAIN)
          (B_SPROCKET_DRAW_FACE_CENTER)
          (B_SPROCKET_DRAW_FACE_SHAFT)
          (princ)         
        );cond-10401
        ((= B_sprocket_view 10402);画侧视图
          (B_SPROCKET_DRAW_FLANK_CHAIN)
          (B_SPROCKET_DRAW_FLANK_CENTER)
          (B_SPROCKET_DRAW_FLANK_SHAFT)
          (princ)
        );cond-10402
      );end-cond
      (setvar "FILLETRAD" B_sprocket_filletrad)
      (setvar "CLAYER" B_current_layer);返回当前图层
    );end-progn
  );end-if
  (unload_dialog B_sprocket_id)
  (princ)
);end-B_SPROCKET

2)B_SPROCKET.DCL

B_SPROCKET: dialog
   {
   aspect_ralio=0;
   label = "***链轮***  版本:试用版";
   :boxed_column
     {
     label = " ";
     :row
       {
       :column
         {
         :boxed_column
           {
           label = "当前视图&V";
           :column
             {
             children_alignment=centered;
             :image_button
               {
               key = "B_SPROCKET_VIEW_DCL";
               color                   = 0;
               width                   = 25;
               aspect_ratio            = 0.65;
               fixed_height            = true;
               fixed_width             = true;
               alignment = centered;
               }
             :popup_list
               {
               label = "视图选择&I: ";
               key = "B_SPROCKET_VIEW_S_DCL";
               list = "主  视  图\n侧  视  图";
               edit_width =10;
               }  
             }
           }
         :boxed_column
           {
           label = "插入点&P";
           :button
             {
             label = "选 择 点&E <";
             key = "B_SPROCKET_CENTER_DCL";
             alignment = centered;
             }
           :edit_box
             {
             label = "X:";
             key = "B_SPROCKET_CENTER_X_DCL";
             edit_width = 18;
             mnemonic = "X";
             }
           :edit_box
             {
             label = "Y:";
             key = "B_SPROCKET_CENTER_Y_DCL";
             edit_width = 18;
             mnemonic = "Y";
             }
           :edit_box
             {
             label = "Z:";
             key = "B_SPROCKET_CENTER_Z_DCL";
             edit_width = 18;
             mnemonic = "Z";
             }
           }
         }
       :column
         {
         :boxed_column
           {
           label = "基本参数";
           :column
             {
             children_alignment=centered;
             :row
               {
               :text_part
                 {
                 label = "当前链号&U:";     //  style name
                 width =10;
                 fixed_width = true;
                 }
               :edit_box
                 {                        // for user to enter/specify
               key = "B_SPROCKET_CHAIN_DCL";
                 edit_width = 11;
                 edit_limit = 10;
                 }
               }
             :popup_list
               {
               label = "链号选择&S:";
               key = "B_SPROCKET_CHAIN_S_DCL";
               edit_width = 10.2;
               }  
             }
           :row
             {
             :text_part
               {
               label = "当前齿数&L:";     //  style name
               width =10;
               fixed_width = true;
               }
             :edit_box
               {                        // for user to enter/specify
             key = "B_SPROCKET_NOTEETH_DCL";
             edit_width = 11;
             edit_limit = 10;
               }
             }
           :popup_list
             {
             label = "齿数系列&G:";
             key = "B_SPROCKET_NOTEETH_S_DCL";
             edit_width = 10.2;
             }  
            :row
               {
               :text_part
                 {
                 label = "链轮宽度&W:";
                 width =10;
                 fixed_width = true;
                 }
               :edit_box
                 {
               key = "B_SPROCKET_WIDTH_DCL";
                 edit_width = 11;
                 edit_limit = 10;
                 }
               }
            :row
               {
               :text_part
                 {
                 label = "齿侧直径&W:";
                 width =10;
                 fixed_width = true;
                 }
               :edit_box
                 {
               key = "B_SPROCKET_OUTDIA_DCL";
                 edit_width = 11;
                 edit_limit = 10;
                 }
               }
           }
         :row
           {
           :boxed_column
             {
             label = "插入角度";
             :button
               {
               label = "角度选择&N:";
               key = "B_SPROCKET_ANGLE_S_DCL";
               edit_width = 6;
               alignment = centered;
               }
             :edit_box
               {
               label = "角度&A:";
               key = "B_SPROCKET_ANGLE_DCL";
               edit_width = 6;
               mnemonic = "N";
               }
             }
           :column
             {         
             :button
               {
               label = "齿槽形状&E <<";
               key = "B_SPROCKET_GROOVE_DCL";
               alignment = centered;
               }
             :button
               {
               label = "轴向齿廓&F <<";
               key = "B_SPROCKET_FIGURE_DCL";
               alignment = centered;
               }
             :button
               {
               label = "参数计算&F <<";
               key = "B_SPROCKET_NUMBERAITON_DCL";
               alignment = centered;
               }
             }
           }
         }
       }
     }
   :boxed_column
     {
     label = "心轴式样";
      :row
        {
        children_alignment=centered;
        :image_button
          {
          key = "B_SPROCKET_SHAFT_DRIVER_DCL";
          color                   = 0;
          width                   = 20;
          aspect_ratio            = 0.5;
          fixed_height            = true;
          fixed_width             = true;
          alignment = centered;
          }
        :image_button
          {
          key = "B_SPROCKET_SHAFT_BEARING_TWO_DCL";
          color                   = 0;
          width                   = 20;
          aspect_ratio            = 0.5;
          fixed_height            = true;
          fixed_width             = true;
          alignment = centered;
          }
        :image_button
          {
          key = "B_SPROCKET_SHAFT_BEARING_ONE_DCL";
          color                   = 0;
          width                   = 20;
          aspect_ratio            = 0.5;
          fixed_height            = true;
          fixed_width             = true;
          alignment = centered;
          }
  
        }
     }

   :row
      {
      alignment=centered;
          :column
             {
           ok_cancel;
            errtile;
              }
      }
   :boxed_column
      {
      label = " ";
       : text
          {
          label="  >>版权所有,翻录不究<<";
          alignment=centered;
          }
       : text
          {
          label="     >>作者:B。W<<";
          alignment=centered;
          }
      }
   }

B_SPROCKET_GROOVE: dialog
   {
   aspect_ralio=0;
   label = "***齿槽形状***  版本:试用版";
       :boxed_column
         {
         label = "齿槽选择";
         children_alignment=centered;
         :popup_list
           {
           key = "B_SPROCKET_GROOVE_PATTEM_S_DCL";
           list = "三圆弧一直线齿槽";
           edit_width = 110;
           }
         :row
           {
           :text_part
             {
             label = "名称";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "代号";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "计算公式";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             label = "值";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "齿沟圆弧半径";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "r1";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "0.5025*dr+0.05";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_R1_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "齿沟半角";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "α/2";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "55-60/z";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_A2_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "工作段园弧中心-X";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "M";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "0.8*dr*SIN(a/2)";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_M_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "工作段园弧中心-Y";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "T";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "0.8*dr*COS(a/2)";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_T_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "工作段园弧半径";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "r2";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "1.3025*dr+0.05";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_R2_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "工作段园弧中心角";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "β";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "18-56/Z";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_BEITA_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "齿顶园弧中心-X";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "W";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "1.3*dr*COS(180/z)";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_W_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "齿顶园弧中心-Y";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "V";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "1.3*dr*SIN(180/z)";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_V_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "齿型半角";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "γ/2";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "17-64/z";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_GAMA_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "齿顶圆弧半径";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "r3";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "dr*[1.3*COS(γ/2)+0.8*COS(β)-1.3025]-0.05";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_R3_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "工作段直线长度";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "bc";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "dr*[1.3*SIN(γ/2)-0.8*SIN(β)]";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_BC_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         :row
           {
           :text_part
             {
             label = "e点至齿沟圆弧中心连线的距离";
             width =45;
             fixed_width = true;
             }
           :text_part
             {
             label = "H";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             label = "SQRE{r3**2-[1.3*dr-p/2-(2r1-dr)/d/2]**2}";
             width =50;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_H_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         }
       :boxed_column
         {
         label = "极限参数";
         children_alignment=centered;
        :row
           {
           :text_part
             {
             label = "   名称";
             width =25;
             fixed_width = true;
             }
           :text_part
             {
             label = "       代号";
             width =10;
             fixed_width = true;
             }
           :text_part
             {
             label = "最大齿槽";
             width =8;
             fixed_width = true;
             }
           :text_part
             {
             label = "最小齿槽";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
        :row
           {
           :text_part
             {
             label = "齿面圆弧半径";
             width =25;
             fixed_width = true;
             }
           :text_part
             {
             label = "re:";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_REMAX_DCL";
             width =8;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_REMIN_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
        :row
           {
           :text_part
             {
             label = "滚子定位圆弧半径";
             width =25;
             fixed_width = true;
             }
           :text_part
             {
             label = "ri:";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_RIMAX_DCL";
             width =8;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_RIMIN_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
        :row
           {
           :text_part
             {
             label = "滚子定位角";
             width =25;
             fixed_width = true;
             }
           :text_part
             {
             label = "a:";
             width =5;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_RAMAX_DCL";
             width =8;
             fixed_width = true;
             }
           :text_part
             {
             key="B_SPROCKET_GROOVE_RAMIN_DCL";
             width =8;
             fixed_width = true;
             }
           }
           spacer;
         }
   ok_only;
   :boxed_column
      {
      label = " ";
       : text
          {
          label="  >>版权所有,翻录不究<<";
          alignment=centered;
          }
       : text
          {
          label="     >>作者:B。W<<";
          alignment=centered;
          }
      }
   }

B_SPROCKET_FIGURE: dialog
   {
   aspect_ralio=0;
   label = "***轴向齿廓***  版本:试用版";
     :boxed_column
     {
     label = "齿廓选择";
     children_alignment=centered;
     :popup_list
       {
       key = "B_SPROCKET_FIGURE_PATTEM_S_DCL";
       list = "A型\nB型";
       edit_width = 20;
       }
     :row
       {
       :text_part
         {
         label = "名称";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "代号";
         width =30;
         fixed_width = true;
         }
       :text_part
         {
         label = "值";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "齿宽";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "bf1=0.93~0.95b1";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_FIGURE_BF1_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "倒角宽";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "ba=0.12p";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_FIGURE_BA_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "倒角半径";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "rx=p";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_FIGURE_RX_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "倒角深";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "h=0.5p";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_FIGURE_H_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "齿侧凸缘半径";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "ra=0.04p";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_FIGURE_RA_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     }
   ok_only;
   :boxed_column
      {
      label = " ";
       : text
          {
          label="  >>版权所有,翻录不究<<";
          alignment=centered;
          }
       : text
          {
          label="     >>作者:B。W<<";
          alignment=centered;
          }
      }
   }

B_SPROCKET_NUMBERAITON: dialog
   {
   aspect_ralio=0;
   label = "***参数计算***  版本:试用版";
     :boxed_column
     {
     label = "";
     children_alignment=centered;
     :row
       {
       :text_part
         {
         label = "名称";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "代号";
         width =35;
         fixed_width = true;
         }
       :text_part
         {
         label = "值";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "节距";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "p";
         width =35;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_NUMBERAITON_P_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "分度圆直径";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "d=p/sin(180/z)";
         width =35;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_NUMBERAITON_D_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "齿顶圆直径";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "da=p*[0.54+ctg(180/z)]";
         width =35;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_NUMBERAITON_DA_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "damax=d+1.25p-dr";
         width =35;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_NUMBERAITON_DAMAX_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "damin=d+(1-1.6/z)*p-dr";
         width =35;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_NUMBERAITON_DAMIN_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "齿根圆直径";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "df=d-dr";
         width =35;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_NUMBERAITON_DF_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "分度圆弦齿高";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "ha=0.27p";
         width =35;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_NUMBERAITON_HA_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "hamax=(0.625+0.8/z)*p-0.5*dr";
         width =35;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_NUMBERAITON_HAMAX_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     :row
       {
       :text_part
         {
         label = "";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "hamin=0.5*(p-dr)";
         width =35;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_NUMBERAITON_HAMIN_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
    :row
       {
       :text_part
         {
         label = "齿侧凸缘";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         label = "dg<p*ctg(180/z)-1.04h-0.76";
         width =35;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_NUMBERAITON_DG_DCL";
         width =8;
         fixed_width = true;
         }
       }
       spacer;
     }
     :boxed_column
     {
     label = "";
     children_alignment=centered;
   :row
       {
       :text_part
         {
         label = "量柱测量距";
         width =25;
         fixed_width = true;
         }
       :text_part
         {
         key="B_SPROCKET_NUMBERAITON_MR_DCL";
         width =40;
         fixed_width = true;
         }
       }
       spacer;
     }
   ok_only;
   :boxed_column
      {
      label = " ";
       : text
          {
          label="  >>版权所有,翻录不究<<";
          alignment=centered;
          }
       : text
          {
          label="     >>作者:B。W<<";
          alignment=centered;
          }
      }
   }

B_SPROCKET_SHAFT_DRIVER: dialog
   {
   aspect_ralio=0;
   label = "***驱动心轴***  版本:试用版";
     :boxed_column
     {
     label = "";
     children_alignment=centered;
     :row
       {
       :text_part
         {
         label = "链轮驱动轴直径&D:";
         width =10;
         fixed_width = true;
         }
       :edit_box
         {
         key = "B_SPROCKET_SHAFT_DRIVER_D_DCL";
         edit_width =10;
         edit_limit =10;
         }
       }
     }
   ok_only;
   :boxed_column
      {
      label = " ";
       : text
          {
          label="  >>版权所有,翻录不究<<";
          alignment=centered;
          }
       : text
          {
          label="     >>作者:B。W<<";
          alignment=centered;
          }
      }
   }

B_SPROCKET_SHAFT_BEARING_TWO: dialog
   {
   aspect_ralio=0;
   label = "***双轴承心轴***  版本:试用版";
     :boxed_column
     {
     label = "";
     children_alignment=centered;
     :row
       {
       :text_part
         {
         label = "轴承外径&D:";
         width =10;
         fixed_width = true;
         }
       :edit_box
         {
         key = "B_SPROCKET_SHAFT_BEARING_TWO_DY_DCL";
         edit_width =10;
         edit_limit =10;
         }
       }
    :row
       {
       :text_part
         {
         label = "轴承宽度&W:";
         width =10;
         fixed_width = true;
         }
       :edit_box
         {
         key = "B_SPROCKET_SHAFT_BEARING_TWO_DW_DCL";
         edit_width =10;
         edit_limit =10;
         }
       }
    :row
       {
       :text_part
         {
         label = "通孔直径&X:";
         width =10;
         fixed_width = true;
         }
       :edit_box
         {
         key = "B_SPROCKET_SHAFT_BEARING_TWO_DL_DCL";
         edit_width =10;
         edit_limit =10;
         }
       }
     }
   ok_only;
   :boxed_column
      {
      label = " ";
       : text
          {
          label="  >>版权所有,翻录不究<<";
          alignment=centered;
          }
       : text
          {
          label="     >>作者:B。W<<";
          alignment=centered;
          }
      }
   }

B_SPROCKET_SHAFT_BEARING_ONE: dialog
   {
   aspect_ralio=0;
   label = "***单轴承心轴***  版本:试用版";
     :boxed_column
     {
     label = "";
     children_alignment=centered;
     :row
       {
       :text_part
         {
         label = "轴承外径&D:";
         width =10;
         fixed_width = true;
         }
       :edit_box
         {
         key = "B_SPROCKET_SHAFT_BEARING_ONE_DY_DCL";
         edit_width =10;
         edit_limit =10;
         }
       }
    :row
       {
       :text_part
         {
         label = "外径宽度&W:";
         width =10;
         fixed_width = true;
         }
       :edit_box
         {
         key = "B_SPROCKET_SHAFT_BEARING_ONE_DW_DCL";
         edit_width =10;
         edit_limit =10;
         }
       }
    :row
       {
       :text_part
         {
         label = "轴承通径&X:";
         width =10;
         fixed_width = true;
         }
       :edit_box
         {
         key = "B_SPROCKET_SHAFT_BEARING_ONE_DL_DCL";
         edit_width =10;
         edit_limit =10;
         }
       }
     }
   ok_only;
   :boxed_column
      {
      label = " ";
       : text
          {
          label="  >>版权所有,翻录不究<<";
          alignment=centered;
          }
       : text
          {
          label="     >>作者:B。W<<";
          alignment=centered;
          }
      }
   }

3)B_JIAN.DAT

6.0,8.0,2.0,2.0,1.2,1.0
8.0,10.0,3.0,3.0,1.8,1.4
10.0,12.0,4.0,4.0,2.5,1.8
12.0,17.0,5.0,5.0,3.0,2.3
17.0,22.0,6.0,6.0,3.5,2.8
22.0,30.0,8.0,7.0,4.0,3.3
30.0,38.0,10.0,8.0,5.0,3.3
38.0,44.0,12.0,8.0,5.0,3.3
44.0,50.0,14.0,9.0,5.5,3.8
50.0,58.0,16.0,10.0,6.0,4.3
58.0,65.0,18.0,11.0,7.0,4.4
65.0,75.0,20.0,12.0,7.5,4.9
75.0,85.0,22.0,14.0,9.0,5.4
85.0,95.0,25.0,14.0,9.0,5.4
95.0,110.0,28.0,16.0,10.0,6.4
110.0,130.0,32.0,18.0,11.0,7.4
130.0,150.0,36.0,20.0,12.0,8.4
150.0,170.0,40.0,22.0,13.0,9.4
170.0,200.0,45.0,25.0,15.0,10.4
200.0,230.0,50.0,28.0,17.0,11.4
230.0,260.0,56.0,32.0,20.0,12.4
260.0,290.0,63.0,32.0,20.0,12.4
290.0,330.0,70.0,36.0,22.0,14.4
330.0,380.0,80.0,40.0,25.0,15.4
380.0,440.0,90.0,45.0,28.0,17.4
440.0,500.0,100.0,50.0,31.0,19.5

4)B_SPROCKET_CHAIN.DAT

05B,8.0,5.0,3.0,7.37,5.64,4.4
06B,9.525,6.35,5.72,8.52,10.24,8.9
08A,12.7,7.92,7.85,12.33,14.38,13.8
08B,12.7,8.51,7.75,12.07,13.92,17.8
10A,15.875,10.16,9.4,15.35,18.11,21.8
10B,15.875,10.16,9.65,14.99,16.59,22.2
12A,19.05,11.91,12.57,18.34,22.78,31.1
12B,19.05,12.07,11.68,16.39,19.46,28.9
16A,25.4,15.88,15.75,24.39,29.29,55.6
16B,25.4,15.88,17.02,21.34,31.88,60.0
20A,31.75,19.05,18.9,30.48,35.76,86.7
20B,31.75,19.05,19.56,26.68,36.45,95.0
24A,38.1,22.23,25.22,36.55,45.44,124.6
24B,38.1,25.4,25.4,33.73,48.36,160.0
28A,44.45,25.4,25.22,42.68,48.87,169.0
28B,44.45,27.94,30.99,37.46,59.56,200.0
32A,50.8,28.58,31.55,48.74,58.55,222.4
32B,50.8,29.21,30.99,42.72,58.55,250.0
36A,57.15,35.71,35.48,54.86,65.84,280.2
40A,63.5,39.68,37.85,60.93,71.55,347.0
40B,63.5,39.37,38.1,53.49,72.29,355.0
48A,76.2,47.63,47.35,73.13,87.83,500.4
48B,76.2,48.26,45.72,64.52,91.21,560.0
56B,88.9,53.98,53.34,78.64,106.6,850.0
64B,101.6,63.5,60.96,91.08,119.89,1120.0
72B,114.3,72.9,68.58,104.67,136.27,1400.0
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-30 02:23:26 | 显示全部楼层
如果你要处理多个层,那么再你设计DCL的时候,把列表框设置成可以多选就可以了,这样用户可以在层列表框里面可以多选,你程序判断下LIST_BOX的返回值就可以处理了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-5-30 03:01:54 | 显示全部楼层
对不起,还是有点不明白。当一次选取多个层时,在对话中我如何把我想设置的不同线型和颜色与每个层对应。
  我本想是每次选取一层,并为它设置线型和颜色,再选取另一层,并为它设置另外的线型和颜色,而且可以重复设置。关在是我不知道如何使它们对应起来?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-30 03:07:34 | 显示全部楼层
最初由 hqd9639 发布
[B]对不起,还是有点不明白。当一次选取多个层时,在对话中我如何把我想设置的不同线型和颜色与每个层对应。
  我本想是每次选取一层,并为它设置线型和颜色,再选取另一层,并为它设置另外的线型和颜色,而且可以重复... [/B]


你可以把LISP_BOX返回的位置和你的层数据表对应,就知道需要处理哪个层了。

对于多选的情况,返回应该是"1 2 4 5"这样的字符串,你需要写个程序把他们分离成单个的,然后用(nth pos laylist)得到具体选的是哪个层。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-6-4 03:14:18 | 显示全部楼层
XD:
  按你的指点,我在对话框中,多加了一个按钮,并建了三个空表(比如laylist,ltlist,corlist),
每次选取一层,并为它设置线型和颜色,然后点新建按钮,把层、线型、颜色分别加入上述空表,用(nth  num list)得到具体选的是哪个层,线型、颜色.虽然实现了我的要求,但觉得此法有点麻烦,请教如何实现在点取另外层就相当点按新建按钮,而不用增加一个按钮?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2002-6-8 21:38:17 | 显示全部楼层
先得到所有层名,建成表li,当然还有 '((lay lt cor)(lay1 lt cor).........)
把li加入list_box
点list_box时,get_tile ,看点了哪一个
对应'((lay lt cor)(lay1 lt cor).........)中的元素 ,改之...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-20 10:16 , Processed in 0.627397 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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