Đến nội dung


Hình ảnh
- - - - -

[hỏi] nút lệnh pick point từ bản vẽ.


  • Please log in to reply
19 replies to this topic

#1 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 08 April 2012 - 06:04 PM

Tôi dang viết lisp có một hộp thoại có nút (button) tôi muốn nhấn nút này thì hộp thoại tạm thời tắt và cho phép nhận điểm bằng cách pick trên màn hình cad. anh em nào biết cách giúp tôi được không?
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 08 April 2012 - 06:11 PM

Tôi dang viết lisp có một hộp thoại có nút (button) tôi muốn nhấn nút này thì hộp thoại tạm thời tắt và cho phép nhận điểm bằng cách pick trên màn hình cad. anh em nào biết cách giúp tôi được không?

Dialoge là 1 vấn đề phức tạp. Bạn hỏi khơi khơi như vậy rất khó trả lời. Hãy post file lsp và dcl lên mới hy vọng giúp bạn được.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 08 April 2012 - 06:29 PM

Dialoge là 1 vấn đề phức tạp. Bạn hỏi khơi khơi như vậy rất khó trả lời. Hãy post file lsp và dcl lên mới hy vọng giúp bạn được.


  • 0

#4 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 08 April 2012 - 06:31 PM

Tôi không up lên được. có thể mạng bị lỗi.
  • 0

#5 Thái Hà

Thái Hà

    Chưa sử dụng CAD

  • Members
  • Pip
  • 1 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 08 April 2012 - 08:26 PM

Thế thì cũng ko ai giúp được bạn.
  • 0

#6 redsea_tq

redsea_tq

    biết lệnh erase

  • Members
  • PipPipPip
  • 102 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 08 April 2012 - 10:57 PM

Bạn nghiên cứu thêm các viết file dcl, file lsp không tạo ra được hộp thoại đâu bạn. Đúng như bác Hà nói nó rất phức tạp đó cũng là lý do mình tạm biệt lisp gần 10 năm nay và trung thành với VB cũng từ đó đến nay.
  • 0

#7 Skywings

Skywings

    biết lệnh erase

  • Members
  • PipPipPip
  • 102 Bài viết
Điểm đánh giá: 46 (tàm tạm)

Đã gửi 10 April 2012 - 06:15 PM

Tôi dang viết lisp có một hộp thoại có nút (button) tôi muốn nhấn nút này thì hộp thoại tạm thời tắt và cho phép nhận điểm bằng cách pick trên màn hình cad. anh em nào biết cách giúp tôi được không?

Với DCL và Lisp không "tạm thời" tắt hộp thoại đc, bạn phải đóng luôn hộp thoại mới có thể pick điểm trên màn hình, sau đó gọi lại hộp thoại.
  • 0

#8 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 10 April 2012 - 09:05 PM

Trên diễn đàn có ví dụ rồi mà bạn :) Bạn tìm topic về DCL của 4room nhé
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#9 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 13 April 2012 - 10:20 AM

Với DCL và Lisp không "tạm thời" tắt hộp thoại đc, bạn phải đóng luôn hộp thoại mới có thể pick điểm trên màn hình, sau đó gọi lại hộp thoại.

vậy những textbox đã nhập số liệu lại về nil à? phức tạp quá
  • 0

#10 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 13 April 2012 - 10:27 AM

vậy những textbox đã nhập số liệu lại về nil à? phức tạp quá

Không về nil đâu.
Nguyên tắc là thế này (VD thôi nhé):
- Bạn nhập vào textbox.
- Đóng tạm Dialoge, đồng thời pick điểm.
- Sau khi pick điểm xong thì gọi lại dialoge. Kết quả nhập trước khi pick điểm vẫn còn.
- Tất cả những thao tác trên được viết trong 1 lisp mà thôi.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#11 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 13 April 2012 - 10:29 AM

vậy những textbox đã nhập số liệu lại về nil à? phức tạp quá

Thì lưu biến đó trước khi tắt. Ai ép bạn đâu mà.
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#12 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 13 April 2012 - 11:12 AM

Không về nil đâu.
Nguyên tắc là thế này (VD thôi nhé):
- Bạn nhập vào textbox.
- Đóng tạm Dialoge, đồng thời pick điểm.
- Sau khi pick điểm xong thì gọi lại dialoge. Kết quả nhập trước khi pick điểm vẫn còn.
- Tất cả những thao tác trên được viết trong 1 lisp mà thôi.

phương pháp đóng tạm như thế nào? bạn có thể cho mình biết câu lệnh được không?
  • 0

#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 13 April 2012 - 11:15 AM

phương pháp đóng tạm như thế nào? bạn có thể cho mình biết câu lệnh được không?

Nếu không có gì tối mật trong cái dialoge của bạn thì bạn nên gởi lsp+dcl lên, chứ nói hơi khó.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#14 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 13 April 2012 - 11:19 AM

Nếu không có gì tối mật trong cái dialoge của bạn thì bạn nên gởi lsp+dcl lên, chứ nói hơi khó.

ok . mình đã làm theo phương pháp lưu biến tạm . nhưng tui muốn lệnh tạm đóng nhé. http://www.4shared.c...PEeZlD/VGD.html
  • 0

#15 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 13 April 2012 - 11:27 AM

ok . mình đã làm theo phương pháp lưu biến tạm . nhưng tui muốn lệnh tạm đóng nhé. http://www.4shared.c...PEeZlD/VGD.html

File bé thì up trực tiếp lên Cadviet luôn đi. Tôi qua bên đó down bị lỗi hoài.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#16 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 13 April 2012 - 02:28 PM

LISP:
(defun C:vgd ()
(setq dcl_id (load_dialog "VD1.dcl"))
(if (not (new_dialog "VD1" dcl_id))
(progn
(alert "The VD1.DCL file could not be loaded!")
(exit)
)
)
(setq ve 0)
(setq mySlideName1 "C:/Program Files/AutoCAD 2005/TIENICHKS/SLD/gd1.sld")
(setq mySlideName2 "C:/Program Files/AutoCAD 2005/TIENICHKS/SLD/gd2.sld")
(setq mySlideName3 "C:/Program Files/AutoCAD 2005/TIENICHKS/SLD/gd3.sld")
(setq mySlideName4 "C:/Program Files/AutoCAD 2005/TIENICHKS/SLD/gd4.sld")
(setq myKey "sld")
(action_tile "but1" "(upDateImage mySlideName1 myKey)")
(action_tile "but2" "(upDateImage mySlideName2 myKey)")
(action_tile "but3" "(upDateImage mySlideName3 myKey)")
(action_tile "but4" "(upDateImage mySlideName4 myKey)")
(action_tile "ve" "(setq ve 1)(luuchon)(done_dialog)")
(action_tile "cancel" "(done_dialog)")
(start_dialog)
(unload_dialog dcl_id)
(princ)

(cond
((and (= ve 1) (= chon "but1"))
(progn
(VEKIEU1 1 )
)
)
((and (= ve 1) (= chon "but2"))
(progn
(VEKIEU1 2)
)
)
((and (= ve 1) (= chon "but3"))
(progn
(VEKIEU1 3)
)
)
((and (= ve 1) (= chon "but4"))
(progn
(VEKIEU1 4)
)
)
)

)
(defun upDateImage (sldName key)
(setq width (dimx_tile key))
(setq height (dimy_tile key))
(start_image key)
(fill_image 0 0 width height 0)
(slide_image 0 0 width height sldName)
(end_image)
)
(defun luuchon()
(setq chon(get_tile "mychoice"))
)
; doan hop thoai ve chi tiet 88 88888888888888888888888888888888888888888888888888888888888888
(defun VEKIEU1(x)
(command "style" "textbangtoado" ".Vnarial narrowH" 0.5 "" "" "n" "n")
(setq dcl_id (load_dialog "VD2.dcl"))
(setq wn 2)
(setq MCD "")
(setq DV "")
(setq Dgiua "")
(setq Dtruoc "")
(setq Dsau "")
(while (>= wn 2)
(if (null (new_dialog "VD2" dcl_id))
(progn
(alert "The VD2.DCL file could not be loaded!")
(exit)
)
) ; het hàm if
(set_tile "MCD" MCD) ; giu cho cac edit_box khong mat gia tri da nhap
(set_tile "DV" DV) ; giu cho cac edit_box khong mat gia tri da nhap
(set_tile "Dgiua" Dgiua) ; giu cho cac edit_box khong mat gia tri da nhap
(set_tile "Dtruoc" Dtruoc) ; giu cho cac edit_box khong mat gia tri da nhap
(set_tile "Dsau" Dsau) ; giu cho cac edit_box khong mat gia tri da nhap
(action_tile "PMCD" "(saveVars)(done_dialog 4)")
(action_tile "PDV" "(saveVars)(done_dialog 5)")
(action_tile "PDgiua" "(saveVars)(done_dialog 6)")
(action_tile "PDtruoc" "(saveVars)(done_dialog 7)")
(action_tile "PDsau" "(saveVars)(done_dialog 8)")
(action_tile "accept" "(saveVars)(done_dialog 9)")
(action_tile "cancel" "(done_dialog 1)")
(setq wn (start_dialog))
(cond
((= wn 4)
(progn
(Setq MCDP(getpoint "\n Pick diem MCD"))
)
)
((= wn 5)
(progn
(Setq DVP(getpoint "\n Pick diem DV"))
)
)
((= wn 6)
(progn
(Setq DgiuaP(getpoint "\n Pick diem D giua"))
)
)
((= wn 7)
(progn
(Setq DtruocP(getpoint "\n Pick diem D truoc:"))
)
)
((= wn 8)
(progn
(Setq DsauP(getpoint "\n Pick diem D sau"))
)
)
((= wn 9)
(progn
(cond
((= x 1)
(gd1 DgiuaP MCDP DVP DtruocP DsauP Dgiua MCD DV Dtruoc Dsau)
)
((= x 2)
(gd2 DgiuaP MCDP DVP DtruocP DsauP Dgiua MCD DV Dtruoc Dsau)
)
((= x 3)
(gd3 DgiuaP MCDP DVP DtruocP DsauP Dgiua MCD DV Dtruoc Dsau)
)
((= x 4)
(gd4 DgiuaP MCDP DVP DtruocP DsauP Dgiua MCD DV Dtruoc Dsau)
)
)
)
)
((= wn 0)
(Prompt "nguoi dung da thoat khoi hop thoai")
)
)
)
(unload_dialog dcl_id)
(princ)
)
(defun saveVars()
(setq MCD(get_tile "MCD"))
(setq DV (get_tile "DV"))
(setq Dgiua (get_tile "Dgiua"))
(setq Dtruoc (get_tile "Dtruoc"))
(setq Dsau (get_tile "Dsau"))
)

; //////////////// DOAN CHUONG TRINH VE HSGD KIEU 1 /////////////////////////////////////////////////////////////

(defun gd1 (p1 p2 p3 p4 p5 tendinh1 tenmocmcd tenmocdv tendinh2 tendinh3)
(defun str (n)
(vl-string-right-trim "." (vl-string-right-trim "0" (rtos n 2 2)))
)
(setq
p1p2 (strcat (str (distance p1 p2)) " m")
p2p3 (strcat (str (distance p2 p3)) " m")
p3p1 (strcat (str (distance p3 p1)) " m")
)
(command "style" "textbangtoado" ".Vnarial narrow" 1.8 "" "" "n" "n")
(setq gocp1p2 (/ (* (angle p1 p2) 180) pi))
(setq gocp1p3 (/ (* (angle p1 p3) 180) pi))
(setq gocp2p1p3 (abs (- gocp1p2 gocp1p3)))
(if (> gocp2p1p3 180) (setq gocp2p1p3 (- 360 gocp2p1p3)))
(setq dpg1 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp2p1p3 180.0)) 1 3)))
(setq gocp2p1 (/ (* (angle p2 p1) 180) pi))
(setq gocp2p3 (/ (* (angle p2 p3) 180) pi))
(setq gocp1p2p3 (abs (- gocp2p1 gocp2p3)))
(if (> gocp1p2p3 180) (setq gocp1p2p3 (- 360 gocp1p2p3)))
(setq dpg2 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp1p2p3 180.0)) 1 3)))
(setq gocp3p1 (/ (* (angle p3 p1) 180) pi))
(setq gocp3p2 (/ (* (angle p3 p2) 180) pi))
(setq gocp1p3p2 (abs (- gocp3p1 gocp3p2)))
(if (> gocp1p3p2 180) (setq gocp1p3p2 (- 360 gocp1p3p2)))
(setq dpg3 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp1p3p2 180.0)) 1 3)))
(setq gocp1p4 (/ (* (angle p1 p4) 180) pi))
(setq gocp1p2 (/ (* (angle p1 p2) 180) pi))
(setq gocp4p1p2 (abs (- gocp1p4 gocp1p2)))
(if (> gocp4p1p2 180) (setq gocp4p1p2 (- 360 gocp4p1p2)))
(setq dpg4 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp4p1p2 180.0)) 1 3)))
(setq gocp1p5 (/ (* (angle p1 p5) 180) pi))
(setq gocp1p3 (/ (* (angle p1 p3) 180) pi))
(setq gocp5p1p3 (abs (- gocp1p5 gocp1p3)))
(if (> gocp5p1p3 180) (setq gocp5p1p3 (- 360 gocp5p1p3)))
(setq dpg5 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp5p1p3 180.0)) 1 3)))

(setq diemchen (getpoint "chon diem ve so do dau dinh:"))
(command "insert" "C:\\Program Files\\AutoCAD 2005\\TIENICHKS\\BLO\\gd1.dwg" diemchen "" "" "" dpg2 dpg3 dpg1 p3p1 p2p3 p1p2 dpg5 dpg4 tendinh1 tenmocmcd tenmocdv tendinh2 tendinh3)
)

; //////////////// DOAN CHUONG TRINH VE HSGD KIEU 2 /////////////////////////////////////////////////////////////
(defun gd2 (p1 p2 p3 p4 p5 tendinh1 tenmocmcd tenmocdv tendinh2 tendinh3)
(defun str (n)
(vl-string-right-trim "." (vl-string-right-trim "0" (rtos n 2 2)))
)
(setq p1p2 (str (distance p1 p2))
p2p3 (str (distance p2 p3))
p3p1 (str (distance p3 p1))
)
(command "style" "textbangtoado" ".Vnarial narrow" 1.8 "" "" "n" "n")
(setq gocp1p2 (/ (* (angle p1 p2) 180) pi))
(setq gocp1p5 (/ (* (angle p1 p5) 180) pi))
(setq gocp2p1p5 (abs (- gocp1p2 gocp1p5)))
(if (> gocp2p1p5 180) (setq gocp2p1p5 (- 360 gocp2p1p5)))
(setq dpg1 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp2p1p5 180.0)) 1 3)))
(setq gocp2p1 (/ (* (angle p2 p1) 180) pi))
(setq gocp2p3 (/ (* (angle p2 p3) 180) pi))
(setq gocp1p2p3 (abs (- gocp2p1 gocp2p3)))
(if (> gocp1p2p3 180) (setq gocp1p2p3 (- 360 gocp1p2p3)))
(setq dpg2 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp1p2p3 180.0)) 1 3)))
(setq gocp3p1 (/ (* (angle p3 p1) 180) pi))
(setq gocp3p2 (/ (* (angle p3 p2) 180) pi))
(setq gocp1p3p2 (abs (- gocp3p1 gocp3p2)))
(if (> gocp1p3p2 180) (setq gocp1p3p2 (- 360 gocp1p3p2)))
(setq dpg3 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp1p3p2 180.0)) 1 3)))
(setq gocp1p4 (/ (* (angle p1 p4) 180) pi))
(setq gocp1p2 (/ (* (angle p1 p2) 180) pi))
(setq gocp4p1p2 (abs (- gocp1p4 gocp1p2)))
(if (> gocp4p1p2 180) (setq gocp4p1p2 (- 360 gocp4p1p2)))
(setq dpg4 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp4p1p2 180.0)) 1 3)))
(setq gocp1p5 (/ (* (angle p1 p5) 180) pi))
(setq gocp1p3 (/ (* (angle p1 p3) 180) pi))
(setq gocp5p1p3 (abs (- gocp1p5 gocp1p3)))
(if (> gocp5p1p3 180) (setq gocp5p1p3 (- 360 gocp5p1p3)))
(setq dpg5 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp5p1p3 180.0)) 1 3)))

(setq diemchen (getpoint "chon diem ve so do dau dinh:"))
(command "insert" "C:\\Program Files\\AutoCAD 2005\\TIENICHKS\\BLO\\gd2.dwg" diemchen "" "" "" dpg2 dpg3 dpg1 p3p1 p2p3 p1p2 dpg5 dpg4 tendinh1 tenmocmcd tenmocdv tendinh2 tendinh3)
)
; //////////////// DOAN CHUONG TRINH VE HSGD KIEU 3 /////////////////////////////////////////////////////////////

(defun gd3 (p1 p2 p3 p4 p5 tendinh1 tenmocmcd tenmocdv tendinh2 tendinh3)
(defun str (n)
(vl-string-right-trim "." (vl-string-right-trim "0" (rtos n 2 2)))
)
(setq
p1p2 (strcat (str (distance p1 p2)) " m")
p2p3 (strcat (str (distance p2 p3)) " m")
p3p1 (strcat (str (distance p3 p1)) " m")
)
(command "style" "textbangtoado" ".Vnarial narrow" 1.8 "" "" "n" "n")
(setq gocp1p2 (/ (* (angle p1 p2) 180) pi))
(setq gocp1p3 (/ (* (angle p1 p3) 180) pi))
(setq gocp2p1p3 (abs (- gocp1p2 gocp1p3)))
(if (> gocp2p1p3 180) (setq gocp2p1p3 (- 360 gocp2p1p3)))
(setq dpg1 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp2p1p3 180.0)) 1 3)))
(setq gocp2p1 (/ (* (angle p2 p1) 180) pi))
(setq gocp2p3 (/ (* (angle p2 p3) 180) pi))
(setq gocp1p2p3 (abs (- gocp2p1 gocp2p3)))
(if (> gocp1p2p3 180) (setq gocp1p2p3 (- 360 gocp1p2p3)))
(setq dpg2 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp1p2p3 180.0)) 1 3)))
(setq gocp3p1 (/ (* (angle p3 p1) 180) pi))
(setq gocp3p2 (/ (* (angle p3 p2) 180) pi))
(setq gocp1p3p2 (abs (- gocp3p1 gocp3p2)))
(if (> gocp1p3p2 180) (setq gocp1p3p2 (- 360 gocp1p3p2)))
(setq dpg3 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp1p3p2 180.0)) 1 3)))
(setq gocp1p4 (/ (* (angle p1 p4) 180) pi))
(setq gocp1p2 (/ (* (angle p1 p2) 180) pi))
(setq gocp4p1p2 (abs (- gocp1p4 gocp1p2)))
(if (> gocp4p1p2 180) (setq gocp4p1p2 (- 360 gocp4p1p2)))
(setq dpg4 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp4p1p2 180.0)) 1 3)))
(setq gocp1p5 (/ (* (angle p1 p5) 180) pi))
(setq gocp1p3 (/ (* (angle p1 p3) 180) pi))
(setq gocp5p1p3 (abs (- gocp1p5 gocp1p3)))
(if (> gocp5p1p3 180) (setq gocp5p1p3 (- 360 gocp5p1p3)))
(setq dpg5 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp5p1p3 180.0)) 1 3)))

(setq diemchen (getpoint "chon diem ve so do dau dinh:"))
(command "insert" "C:\\Program Files\\AutoCAD 2005\\TIENICHKS\\BLO\\gd3.dwg" diemchen "" "" "" dpg2 dpg3 dpg1 p3p1 p2p3 p1p2 dpg5 dpg4 tendinh1 tenmocmcd tenmocdv tendinh2 tendinh3)
;(command "mirror" "L" "" diemchen "@20<90" "y" "")
)
; //////////////// DOAN CHUONG TRINH VE HSGD KIEU 4 /////////////////////////////////////////////////////////////
(defun gd4 (p1 p2 p3 p4 p5 tendinh1 tenmocmcd tenmocdv tendinh2 tendinh3)
(defun str (n)
(vl-string-right-trim "." (vl-string-right-trim "0" (rtos n 2 2)))
)
(setq p1p2 (str (distance p1 p2))
p2p3 (str (distance p2 p3))
p3p1 (str (distance p3 p1))
)
(command "style" "textbangtoado" ".Vnarial narrow" 1.8 "" "" "n" "n")
(setq gocp1p2 (/ (* (angle p1 p2) 180) pi))
(setq gocp1p5 (/ (* (angle p1 p5) 180) pi))
(setq gocp2p1p5 (abs (- gocp1p2 gocp1p5)))
(if (> gocp2p1p5 180) (setq gocp2p1p5 (- 360 gocp2p1p5)))
(setq dpg1 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp2p1p5 180.0)) 1 3)))
(setq gocp2p1 (/ (* (angle p2 p1) 180) pi))
(setq gocp2p3 (/ (* (angle p2 p3) 180) pi))
(setq gocp1p2p3 (abs (- gocp2p1 gocp2p3)))
(if (> gocp1p2p3 180) (setq gocp1p2p3 (- 360 gocp1p2p3)))
(setq dpg2 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp1p2p3 180.0)) 1 3)))
(setq gocp3p1 (/ (* (angle p3 p1) 180) pi))
(setq gocp3p2 (/ (* (angle p3 p2) 180) pi))
(setq gocp1p3p2 (abs (- gocp3p1 gocp3p2)))
(if (> gocp1p3p2 180) (setq gocp1p3p2 (- 360 gocp1p3p2)))
(setq dpg3 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp1p3p2 180.0)) 1 3)))
(setq gocp1p4 (/ (* (angle p1 p4) 180) pi))
(setq gocp1p2 (/ (* (angle p1 p2) 180) pi))
(setq gocp4p1p2 (abs (- gocp1p4 gocp1p2)))
(if (> gocp4p1p2 180) (setq gocp4p1p2 (- 360 gocp4p1p2)))
(setq dpg4 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp4p1p2 180.0)) 1 3)))
(setq gocp1p5 (/ (* (angle p1 p5) 180) pi))
(setq gocp1p3 (/ (* (angle p1 p3) 180) pi))
(setq gocp5p1p3 (abs (- gocp1p5 gocp1p3)))
(if (> gocp5p1p3 180) (setq gocp5p1p3 (- 360 gocp5p1p3)))
(setq dpg5 (vl-string-subst (chr 176) "d" (angtos (* pi (/ gocp5p1p3 180.0)) 1 3)))

(setq diemchen (getpoint "chon diem ve so do dau dinh:"))
(command "insert" "C:\\Program Files\\AutoCAD 2005\\TIENICHKS\\BLO\\gd4.dwg" diemchen "" "" "" dpg2 dpg3 dpg1 p3p1 p2p3 p1p2 dpg5 dpg4 tendinh1 tenmocmcd tenmocdv tendinh2 tendinh3)
; (command "mirror" "L" "" diemchen "@20<90" "y" "")
)
DCL:

VD1 : dialog {
label = "V&#207; h&#229; s&#172; g&#246;i &#174;&#216;nh";
: column {
: boxed_row {
: radio_column {
key = "mychoice";
: radio_button {
key = "but1";
label = "Lo&#185;i 1: MC&#167; v&#181; &#167;V c&#239;ng ph&#221;a thu&#203;n chi&#210;u tuy&#213;n";
}
: radio_button {
key = "but2";
label = "Lo&#185;i 2: MC&#167; v&#181; &#167;V kh&#184;c ph&#221;a thu&#203;n chi&#210;u tuy&#213;n";
}
: radio_button {
key = "but3";
label = "Lo&#185;i 3: MC&#167; v&#181; &#167;V c&#239;ng ph&#221;a Ng&#173;&#238;c chi&#210;u tuy&#213;n";
}
: radio_button {
key = "but4";
label = "Lo&#185;i 4: MC&#167; v&#181; &#167;V kh&#184;c ph&#221;a Ng&#173;&#238;c chi&#210;u tuy&#213;n";
}
}
}

:image {
key = "sld";
height = 20;
width = 80;
color = 105;
is_enabled = true;
is_tab_stop = true;
}
: boxed_row {
: button {
key = "ve";
label = "Nh&#203;p th&#171;ng s&#232; v&#207;";
is_default = true;
height = 2.5;
}
: button {
key = "cancel";
label = "Tho&#184;t";
is_default = true;
is_cancel = true;
height = 2.5;
}

}
}
}
DCL2:

VD2 : dialog {
label = "V&#207; h&#229; s&#172; g&#246;i &#174;&#216;nh";
: column {
: boxed_column {
: boxed_row {
: edit_box {
key = "MCD";
label = "T&#170;n m&#232;c MC&#167;:";
edit_width = 15;
width = 30;
value = "";
initial_focus = true;
alignment = left;
}
: retirement_button {
key = "PMCD";
label = "Ch&#228;n &#174;i&#211;m MCD";
mnemonic = "H";
width = 30;
alignment = right;
}
}
// ........
: boxed_row {
: edit_box {
key = "DV";
label = "T&#170;n m&#232;c &#167;V:";
edit_width = 15;
width = 30;
value = "";
initial_focus = true;
alignment = left;
}
: retirement_button {
key = "PDV";
label = "Ch&#228;n &#174;i&#170;m DV";
mnemonic = "H";
width = 30;
}
}
// ........
: boxed_row {
: edit_box {
key = "Dgiua";
label = "T&#170;n &#174;&#216;nh g&#246;i:";
edit_width = 15;
width = 30;
value = "";
initial_focus = true;
alignment = left;
}
: retirement_button {
key = "PDgiua";
label = "Ch&#228;n D gui";
mnemonic = "H";
width = 30;
}
}
// ........
: boxed_row {
: edit_box {
key = "Dtruoc";
label = "T&#170;n &#174;&#216;nh ph&#221;a MC&#167;:";
edit_width = 15;
width = 30;
value = "";
initial_focus = true;
alignment = left;
}
: retirement_button {
key = "PDtruoc";
label = "Ch&#228;n D c&#239;ng ph&#221;a MC&#167; ";
mnemonic = "H";
width = 30;
}
}
// ........
: boxed_row {
: edit_box {
key = "Dsau";
label = "T&#170;n &#174;&#216;nh ph&#221;a &#167;V:";
edit_width = 15;
width = 30;
value = "";
initial_focus = true;
alignment = left;
}
: retirement_button {
key = "PDsau";
label = "Ch&#228;n D c&#239;ng ph&#221;a &#167;V";
mnemonic = "H";
width = 30;

}
}


}
: boxed_row {
: button {
key = "accept";
label = "V&#207; HSG&#167;";
is_default = true;
height = 3;
width = 20;
}
: button {
key = "cancel";
label = "Tho&#184;t";
is_default = false;
is_cancel = true;
height = 3;
width = 20;
}
}
}
}

  • 0

#17 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 13 April 2012 - 02:41 PM

không hieur sao không thể up lên cadviet được. copy code vậy:

Đây là trích từ 1 dialoge của tôi để bạn tham khảo:

(defun C:XYZ()
(setq dial (load_dialog "File_DCL.dcl"))
(setq flag 3)
(while (and (> flag 0) (/= flag 1))
(if (not (new_dialog "Ten_Dialoge" dial)) (exit))
(action_tile "Cancel" "(done_dialog 0)")
(action_tile "Accept" "(done_dialog 1)")
(action_tile "Ve_Point" "(done_dialog 2)")
(setq flag (start_dialog))
(cond ((= flag 2) (Goi_Ham_Pick_Point))))
(unload_dialog dial)
(princ))

  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#18 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 13 April 2012 - 02:44 PM

Lưu ý chủ topic cho code vào thẻ CODE
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#19 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 13 April 2012 - 03:07 PM

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=63157&hl=&fromsearch=1
(defun C:XYZ()
(setq dial (load_dialog "File_DCL.dcl"))
(setq flag 3)
(while (and (> flag 0) (/= flag 1))
(if (not (new_dialog "Ten_Dialoge" dial)) (exit))
(action_tile "Cancel" "(done_dialog 0)")
(action_tile "Accept" "(done_dialog 1)")
(action_tile "Ve_Point" "(done_dialog 2)")
(setq flag (start_dialog))
(cond ((= flag 2) (Goi_Ham_Pick_Point))))
(unload_dialog dial)
(princ))

cảm ơn DOAN VAN HA nhe
  • 0

#20 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 13 April 2012 - 03:08 PM

Lưu ý chủ topic cho code vào thẻ CODE

cho vào thẻ như thế nào vậy anh ketxu? mò không ra.
  • 0