Đến nội dung


Hình ảnh
- - - - -

Nút button trong Dialog


  • Please log in to reply
3 replies to this topic

#1 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 28 May 2010 - 01:18 PM

Mình tạo một nút button trong dialog và khi mình gán action cho key của nút gặp một số vấn đề mong các bạn giải đáp.
- Mình muốn khi ấn vào nút, Cad cho mình chọn một điểm trên bản vẽ và quay lại hộp hội thoại.
Mình mới chỉ bắt được điểm nhưng không quay lại được hội thoại mong các bạn chỉ giáo.
  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#2 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 28 May 2010 - 03:28 PM

Mình tạo một nút button trong dialog và khi mình gán action cho key của nút gặp một số vấn đề mong các bạn giải đáp.
- Mình muốn khi ấn vào nút, Cad cho mình chọn một điểm trên bản vẽ và quay lại hộp hội thoại.
Mình mới chỉ bắt được điểm nhưng không quay lại được hội thoại mong các bạn chỉ giáo.

Chào bạn 18011985,
Bạn hãy sử dụng vòng lặp while trong file lisp trước khi gọi hộp thoại. Điều kiện của vòng lặp này chính là giá tri của biến hộp thoại sẽ nhận khi bạn chọn cái nút bạn cần. Như vậy trước khi vào vòng lặp While bạn phải đặt biến hộp thoại về giá trị này.
Chúc bạn thành công.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1432 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 28 May 2010 - 03:35 PM

Mình tạo một nút button trong dialog và khi mình gán action cho key của nút gặp một số vấn đề mong các bạn giải đáp.
- Mình muốn khi ấn vào nút, Cad cho mình chọn một điểm trên bản vẽ và quay lại hộp hội thoại.
Mình mới chỉ bắt được điểm nhưng không quay lại được hội thoại mong các bạn chỉ giáo.

Bạn chú ý hàm (start_dialog)
Tham khảo :
(defun C:ex(/  dcflag dcTag pt)
(setq dcTag (load_dialog "toado.DCL"))
(while (not (vl-position dcFlag '(1 0)))
(if (not (new_dialog "ToaDo" dcTag))
(progn
(alert "\nKhong tim duoc file dcl")
(exit)))
(if pt
(progn
(set_tile "X" (rtos (car pt )))
(set_tile "Y" (rtos (cadr pt)))))
(action_tile "PickPt" "(done_dialog 2)")
(setq dcflag (start_dialog))
(if (= dcflag 2) (setq pt (getpoint "Chon diem :")) )
);while
(setq dcTag (unload_dialog dcTag))
)


File toado.DCL
ToaDo : dialog { label = "Toa do diem.";
: edit_box { label = "Toa do X"; edit_width = 15; key = "X"; }
: edit_box { label = "Toa do Y"; edit_width = 15; key = "Y"; }
: button { label = "Pick point"; key = "PickPt"; }
:spacer {height=1;}
ok_cancel;
}

  • 1

#4 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 01 June 2010 - 07:36 AM

Bạn chú ý hàm (start_dialog)
Tham khảo :

(defun C:ex(/  dcflag dcTag pt)
(setq dcTag (load_dialog "toado.DCL"))
(while (not (vl-position dcFlag '(1 0)))
(if (not (new_dialog "ToaDo" dcTag))
(progn
(alert "\nKhong tim duoc file dcl")
(exit)))
(if pt
(progn
(set_tile "X" (rtos (car pt )))
(set_tile "Y" (rtos (cadr pt)))))
(action_tile "PickPt" "(done_dialog 2)")
(setq dcflag (start_dialog))
(if (= dcflag 2) (setq pt (getpoint "Chon diem :")) )
);while
(setq dcTag (unload_dialog dcTag))
)


File toado.DCL
ToaDo : dialog { label = "Toa do diem.";
: edit_box { label = "Toa do X"; edit_width = 15; key = "X"; }
: edit_box { label = "Toa do Y"; edit_width = 15; key = "Y"; }
: button { label = "Pick point"; key = "PickPt"; }
:spacer {height=1;}
ok_cancel;
}

Cảm ơn gia_bach cuối cùng thì mình đã hiểu việc quay lại dialog kiểu gì. Chân thành cảm ơn bạn.
  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.