daiguafan 发表于 2011-2-26 19:46:41

新手求救 DCl参数太少错误

初学DCl做一个简单的矩形输入长宽后绘制矩形总是提示"参数太少“
代码如下
lisp
(DEFUN C:RECT()
(SETQ DCL_ID (LOAD_DIALOG "rec"))
(NEW_DIALOG "rect" DCL_ID)
(ACTION_TILE "accept" "(S_RECT)(DONE_DIALOG)")
(START_DIALOG)
(UNLOAD_DIALOG)
(SETQ PT_0 (GETPOINT "\nSelect rectangle lower leftpoint : "))
(SETQ PT_1 (POLAR PT_0 0 TMP_W)
PT_2 (POLAR PT_1 (/ PI 2) TMP_H)
PT_3 (POLAR PT_2 PI TMP_W))
(COMMAND "PLINE" PT_0 PT_1 PT_2 PT_3 "C")
(PRINC))
(DEFUN S_RECT()
(SETQ TMP_W (ABS (ATOF (GET_TILE "rect_w")))
TMP_H (ABS (ATOF (GET_TILE "rect_h"))))
)


dcl
rect:dialog {
    label = "rec" ;
    :edit_box {
      edit_limit = 16 ;
      edit_width = 10 ;
      fixed_width = true ;
      key = "rect_w" ;
      label = "rec width:" ;
      value = "50" ;
    }
    :edit_box {
      edit_limit = 16 ;
      edit_width = 10 ;
      fixed_width = true ;
      key = "rect_h" ;
      label = "rec   len:" ;
      value = "25" ;
    }
    ok_only;
}

请各位高手指教下

Gu_xl 发表于 2011-2-26 20:13:13

回复 daiguafan 的帖子

(UNLOAD_DIALOG)
==>
(UNLOAD_DIALOGDCL_ID )

daiguafan 发表于 2011-2-26 20:50:54

回复 Gu_xl 的帖子

谢谢斑竹,
现在不提示参数太少出错,但是提示Select rectangle lower leftpoint : 参数类型错误: numberp: nil
麻烦再次帮忙

xyp1964 发表于 2011-2-26 23:27:15

(DEFUN C:tt ()
(DEFUN S_RECT        ()
    (SETQ ww (ABS (ATOF (GET_TILE "rect_w")))
          hh (ABS (ATOF (GET_TILE "rect_h")))
    )
)
(NEW_DIALOG "rect" (LOAD_DIALOG "rec"))
(ACTION_TILE "accept" "(S_RECT)(done_dialog)")
(START_DIALOG)
(while (SETQ P1 (GETPOINT "\np1: "))
    (setq p2 (list (+ (car p1) ww) (+ (cadr p1) hh)))
    (COMMAND "rectang" "non" p1 "non" p2)
)
(princ)
)

daiguafan 发表于 2011-2-27 00:13:38

回复 xyp1964 的帖子

谢谢,楼上果然高手

月下法魂 发表于 2014-3-10 17:59:48

我也是刚学现在也碰到这种问题了
页: [1]
查看完整版本: 新手求救 DCl参数太少错误