找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 310|回复: 2

[LISP程序]:求助我的lisp出現問題

[复制链接]

已领礼包: 4个

财富等级: 恭喜发财

发表于 2003-9-29 05:02:28 | 显示全部楼层 |阅读模式

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

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

×
(defun c:sta_l (/)
  (setq dcl_id (load_dialog "sta_"))
  (new_dialog "sta_" dcl_id)
  (start_image "type_image")
  (slide_image 0 0 240 180 "estair(sta_l)")
  (end_image)

  (start_image "key1")
  (slide_image 0 0 80 30 "cmsg(cmsg8)")
  (end_image)
  (start_image "key2")
  (slide_image 0 0 80 30 "cmsg(cmsg1)")
  (end_image)
  (start_image "key3")
  (slide_image 0 0 80 30 "cmsg(cmsg2)")
  (end_image)
  (start_image "key4")
  (slide_image 0 0 80 30 "cmsg(cmsg9)")
  (end_image)
  (start_image "key5")
  (slide_image 0 0 80 30 "cmsg(cmsg10)")
  (end_image)

  (setq h  nil)
  (setq n  nil)
  (setq w  nil)
  (setq w1 nil)
  (setq hrl nil)
  (action_tile "fl_height"   "(setq h   (atof $value))")
  (action_tile "st_number"   "(setq n   (atoi $value))")
  (action_tile "st_width"    "(setq w   (atof $value))")
  (action_tile "stb_width"   "(setq w1  (atof $value))")
  (action_tile "hand_height" "(setq hrl (atof $value))")
  (if (= h nil)   (setq h 290.))
  (if (= n nil)   (setq n 17))
  (if (= w nil)   (setq w 25.))
  (if (= w1 nil)  (setq w1 1.))
  (if (= n1 nil)  (setq n1 9))
  (if (= lw nil)  (setq lw 120.))
  (if (= hrl nil) (setq hrl 90.))
  (action_tile "accept"      "(done_dialog 1)")
  (action_tile "cancel"      "(done_dialog 0)")
  (setq rslt (start_dialog))
  (unload_dialog dcl_id)
   (if (= rslt 1)
        (draw))
)
(defun sub_err(s)
  (if (/= s "Function cancelled")
     (princ (strcat "\nError: " s))
  )
  (setvar "CLAYER"    AA)
  (setvar "OSMODE"    BB)
  (setvar "ORTHOMODE" DD)
  (setvar "HIGHLIGHT" 1)
  (setq *error* olderr)
  (princ)
)
;------------------------------------
(defun DRAW (/ s1 s2 s3 s4 s5 s6 h1 ang ang1 p7 p8 l1 l2
               g1 g2 g3 g4 g5 g6 g7 g8 g9 g10 g13 p1 p2 p3 p4 p5 p6 r1 r2 r3)
(setq olderr *ERROR* )
(setq *ERROR* sub_err)
(setq AA (getvar "CLAYER"))
(setq BB (getvar "OSMODE"))
(setq DD (getvar "ORTHOMODE"))
(setvar "osmode" 32)
(setvar "cmdecho" 0)
(setq s1 (getpoint "Star point <int>:")) (terpri)
(setq qq1 s1)
(setq w (- 0 w))
(setq w1 (- 0 w1))
(setq h1 (/ h n))
(setq s1 (list (+ (car s1) w1) (cadr s1)))
(setq s2 (list (- (car s1) w1) (+ (cadr s1) h1)))
(setq s3 (list (+ (car s1) w) (+ (cadr s1) h1)))
(setq ang (angle s1 s3))
(setq ang1 (angle s2 s3))
(setvar "osmode" 0)
(setvar "highlight" 0)
;;;
;;;------------------ draw handrail line ------
;;;
(setq p1 (list (car s1) (+ (+ (cadr s1) hrl) h1)))
(setq p2 (list (car p1) (- (cadr p1) 10)))
(setq p3 (list (+ (car s1) (+ (* (- n 1) w)))
                (+ (cadr s1) (+ (* n h1) hrl))
          )
)
(setq p4 (list (car p3) (- (cadr p3) 10.)))
(command "layer" "make" mi_toil "" "line" p1 p2 p4 p3 p1 "")

(setq count 1)
;;;
;;;------------------ draw 1st zigzag line ------
;;;
(repeat n
  (setq s2 (list (- (car s1) w1) (+ (cadr s1) h1)))
  (setq s3 (list (+ (car s1) w) (+ (cadr s1) h1)))
  (setq s4 (list (+ (car s1) mi_finthk) (+ (cadr s1) mi_finthk)))
  (setq s5 (list (- (car s4) w1) (+ (cadr s4) h1)))
  (setq s6 (list (+ (car s4) w) (+ (cadr s4) h1)))
  (setq g1 (list (- (car s1) 3) (+ (cadr s2) mi_finthk)))
  (setq g2 (list (- (car g1) 2) (cadr g1)))
  (setq g3 (list (car g1) (+ (cadr g1) 10.)))
  (setq g4 (list (car g2) (+ (cadr g2) 10.)))
  (setq g5 (inters g1 g3 p2 p4 nil))
  (setq g6 (inters g2 g4 p2 p4 nil))
  (setq te (list (- (car s2) 10.) (+ (cadr s2) 3.)))
  (command "layer" "make" mi_wall "" "line" s1 s2 s3 "")
  (command "layer" "make" mi_finlyr "" "line" s4 s5 s6 "")
  (command "layer" "make" mi_toil "" "line" g1 g5 "" "line" g2 g6 "")
  (command "layer" "make" mi_text "" "text" "s" "m25" te 0 (itoa count))
  (setq count (+ count 1))
  (setq s1 s3)
)

;;;
;;;------------------ under line ------
;;;
  (setq l3 (list (car s1) (+ (cadr s1) h1)))
  (setq q1 (list (car l3) (- (cadr l3) 15.)))
  (setq q2 (list (- (car q1) 10.) (cadr q1)))
  (setq q3 (list (car qq1) (- (cadr qq1) 15.)))
  (setq q4 (list (- (car q3) 10.) (cadr q3)))
  (setq q5 (polar qq1 (+ ang (/ pi 2.)) 15.))
  (setq q6 (polar q5 ang 10.))
  (setq q7 (inters q1 q2 q5 q6 nil))
  (setq q8 (inters q3 q4 q5 q6 nil))
  (command "layer" "make" mi_wall "" "line" q7 q8 "")
  (setq q9 (polar q7 (+ ang (/ pi 2)) mi_finthk))
  (setq q10 (polar q8 (+ ang (/ pi 2)) mi_finthk))
  (setq q11 (list (car q1) (- (cadr q1) mi_finthk)))
  (setq q12 (list (- (car q11) 10) (cadr q11)))
  (setq q13 (inters q9 q10 q11 q12 nil))
  (command "layer" "make" mi_finlyr "" "line" q9 q10 "")
; --------------------------------------------------------

  (setvar "highlight" 1)
(setvar "CLAYER"    AA)
(setvar "OSMODE"    BB)
(setvar "ORTHOMODE" DD)
(setq *ERROR* olderr)
(princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-9-29 06:37:16 | 显示全部楼层
where is the dialog file "sta_" ?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

 楼主| 发表于 2003-9-29 13:33:14 | 显示全部楼层
sta_ : dialog {
  label = "Stair Section";
initial_focus = "fl_height";
: column {
    : row {
      : image_button {
                 key = "type_image";
               width = 30;
        aspect_ratio = 0.75;
               color = 0;
        }
      : boxed_row {
        label = "Variables";
          : column {
             : image {
                     key = "key1";
                   width = 10;
                  height = 2;
             }
             : image {
                     key = "key2";
                   width = 10;
                  height = 2;
             }
             : image {
                     key = "key3";
                   width = 10;
                  height = 2;
             }
             : image {
                     key = "key4";
                   width = 10;
                  height = 2;
             }
             : image {
                     key = "key5";
                   width = 10;
                  height = 2;
             }
          }
          : column {
            : edit_box {
                       key = "fl_height";
                     label = "";
                  mnemonic = "F";
                edit_width = 8;
                 alignment = right;
              allow_accept = true;
                     value = 290;
            }
            : edit_box {
                       key = "st_number";
                     label = "";
                  mnemonic = "N";
                edit_width = 8;
                 alignment = right;
                     value = 17;
            }
            : edit_box {
                       key = "st_width";
                     label = "";
                  mnemonic = "W";
                edit_width = 8;
                 alignment = right;
                     value = 25;
            }
            : edit_box {
                       key = "stb_width";
                     label = "";
                  mnemonic = "B";
                edit_width = 8;
                 alignment = right;
                     value = 1;
            }
            : edit_box {
                       key = "hand_height";
                     label = "";
                  mnemonic = "R";
                edit_width = 8;
                 alignment = right;
                     value = 90;
            }
          }
      }
    }
  }
  : button {
      label = "Other types...";
      mnemonic = "O";
      key = "stair_type";
      width = 35 ;
  }
  : spacer { width = 20; }
  ok_cancel;
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 18:35 , Processed in 0.199081 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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