Đến nội dung


Hình ảnh
- - - - -

Cần giúp về Lisp Scale 1 chiều !


  • Please log in to reply
58 replies to this topic

#21 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 27 March 2009 - 11:49 AM

Xài cái thằng x, y của bác Duy sướng kịch đường tàu luôn! Giá mà có cái scalexy3D các bác nhẩy… Đừng nghĩ oan cho em CHỘ thấy bở đào mãi ! Cơ mà em vẫn hy vọng sẽ có ngày được xài scalexy3D

Hơ hơ,
Quả thật là xài cái lisp của bác Duy sướng thật, nhưng mà chửa hiểu cái kịch đường tàu của bác Haanh. Oan chi nữa mà bác còn kêu nhỉ, rõ ràng là quá bở nên bác vẫn đào đấy thôi. Chả biết khi bác vớ được cái lisp S.....exy3D thì bác sướng cỡ nào nữa nhẩy.
Rất mong mọi người trên diễn đàn sớm cho ra đời cái lisp S....exy3D để bác Haanh bớt khổ và mình được sướng lây.
Thanks các bác, thanks Cadviet nhiều nhiều.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#22 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 27 March 2009 - 12:45 PM

Rõ chán cái nhà bác BÌNH này nhá. Cho em hỏi một phát là lisp S....exy3D dùng để làm gì hở bác? Bác viết tặng em cái lisp ứ nhá .Em đâu có khổ lúc nào em cũng cười vui như tết ,đó là phương châm sống của em. Mẹ em bảo hồi em lọt lòng mẹ, em cứ nhìn cô y tá không chịu khóc cô y tá điều dưỡng tát cho em một phát vào mông để em khóc cho khí lưu thông và giãn nở phế quảnvà em cất cao tiếng cười chào đời.
Ai trêu ghẹo em chỉ cười thôi, vui vì mình có người trêu ghẹo. Hôm nọ buồn cười nhắm bác à, tự dưng có một bác trên diễn bảo em là "gay" thế mới lại gay go chớ bác. Hôm ấy em buồn cười quá cơ dưng mờ cũng phải phanh cái nụ cười ấy lai ko dám cười kịch đường tàu, chỉ sợ ông xã em lại bảo em 2 lần chín là hâm.
Em đã phải viết câu: Mong các bác thông cảm đừng đùa em phải tội! Em là gái đã có chồng!
Thiếu gì cách đùa mà phải đùa cách như thế bác nhể? Trên đời này em chỉ sợ những người ko biết đùa thôi.
  • 1

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#23 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 27 March 2009 - 02:47 PM

Rõ chán cái nhà bác BÌNH này nhá. Cho em hỏi một phát là lisp S....exy3D dùng để làm gì hở bác? Bác viết tặng em cái lisp ứ nhá .Em đâu có khổ lúc nào em cũng cười vui như tết ,đó là phương châm sống của em. Mẹ em bảo hồi em lọt lòng mẹ, em cứ nhìn cô y tá không chịu khóc cô y tá điều dưỡng tát cho em một phát vào mông để em khóc cho khí lưu thông và giãn nở phế quản và em cất cao tiếng cười chào đời.
Ai trêu ghẹo em chỉ cười thôi, vui vì mình có người trêu ghẹo. Hôm nọ buồn cười nhắm bác à, tự dưng có một bác trên diễn bảo em là "gay" thế mới lại gay go chớ bác. Hôm ấy em buồn cười quá cơ dưng mờ cũng phải phanh cái nụ cười ấy lai ko dám cười kịch đường tàu, chỉ sợ ông xã em lại bảo em 2 lần chín là hâm.
Em đã phải viết câu: Mong các bác thông cảm đừng đùa em phải tội! Em là gái đã có chồng!
Thiếu gì cách đùa mà phải đùa cách như thế bác nhể? Trên đời này em chỉ sợ những người ko biết đùa thôi.

Ô hay, cái nhà bác Haanh này chóng quên thế nhẩy,
Cái lisp ấy nà do bác yêu cầu, dùng làm gì bác chả nói, chỉ bảo là muốn được xài thôi. Chả qua nà mình bớt đi mấy cái chữ ở giữa cho nó dễ đọc thôi, đỡ phải uốn nưỡi dăm ba cái chứ còn nội dung đâu có gì khác mà bác nại hỏi vậy. Tên lisp là tí hay tèo đâu có quan trọng chi mà bác, cái cần là lội dung của ló chứ bác nhẩy.
Còn cái việc viết thì thực ra mình cũng mới tập tọng chút ít, nói như các cụ nà chưa sạch nước cản. Bởi vậy mà chửa thể hứa với bác được là ứ hay ừ. Dưng mà bác cứ trình bày rõ cái ý tưởng của bác ra, biết đâu phải ngày đẹp giời, tâm ý phấn khởi, thông minh đột xuất mình lại tòi ra được thằng cu lisp ấy cũng nên. Biết đâu được ấy bác nhẩy.
Cứ nghe nhà bác nói thì té ra bác củng lì đáo để. Cô y tá ấy hiền chứ phải mình thì ...... Ở nhà mình, từ bé đến nhớn, các cụ toàn lôi mình ra dọa ma trẻ con thôi. Đứa nào mà ọ ẹ là, " Thằng, anh, chú, bác, ông Bình đến kìa" thế là chúng nó im ngay tắp lự. Hề hề, oai chưa?
Chả cứ ông xã, mà đến ông huyện, ông tỉnh cũng bảo vậy cả ấy mà. Chứ còn mình thì mình bảo hai lần chín thì nhừ hết còn gì.
Ghét của nào trời trao của ấy, thế nào cũng vớ được của không biết đùa là gì cho mà xem. Hề hề, hãy đợi đới.
  • 2
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#24 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 29 March 2009 - 04:22 PM

Ý của em muốn nhờ các bác Bình nói riêng và các bác khác trên diễn đàn làm cho cái lisp đơn giản cái khung ảnh có họa tiết trang trí, các loại cửa tủ, cửa tủ bếp chỉ cấn Scale theo hai chiều x, y vì chiều dầy Z luôn cố định.
  • 0

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#25 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 02 April 2009 - 03:48 PM

Hiện mình đã chỉnh lại cái lisp này 1 chút cho tiện dùng
-Tên lệnh: SCXY
-Thao tác:
+Nhập lệnh SCXY.
+Chọn đối tượng.
+Chọn điểm chuẩn (để phóng)
+Vẽ hình chử nhật chuẩn (bằng cách chọn 2 điểm chéo góc).
+Vẽ hình chử nhật đích (bằng cách chọn 2 điểm chéo góc).
Xong!

Đây !!!
  • 4

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


#26 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 02 April 2009 - 04:43 PM

Em ko rành về lisp em .Nếu có thể dùng thêm chức năng scale nhập con số tỷ lệ được ko bác? Giống như scale một chiều gõ lệnh XSC. Nếu được bác chỉnh cho thêm thì hay biết mấy.
  • 0

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#27 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 03 April 2009 - 07:07 AM

Em ko rành về lisp em .Nếu có thể dùng thêm chức năng scale nhập con số tỷ lệ được ko bác? Giống như scale một chiều gõ lệnh XSC. Nếu được bác chỉnh cho thêm thì hay biết mấy.

Theo gợi ý của các bạn mình hoàn thiện lệnh SCXY như sau:
*Giải nén ra bạn được 1 file lsp và 1 file dcl. File lisp thì để đâu cũng được còn file dcl thì để chổ nào cho cad tìm thấy (nằm trong Support File Search Path)
-Tên lệnh SCXY.
-Chọn đói tượng.
-Chọn điểm chuẩn (để phóng).
-Lên cái bảng như này.

Hình đã gửi

*Bạn chọn Pick thì nó thoát khỏi bảng:
-Bạn vẽ hình chử nhật chuẩn (pick 2 điểm góc)
-Bạn vẽ hình chử nhật đến (pick 2 điểm góc)
Xong!
*Nếu muốn nhập tỉ lệ thì nhập giá trị vào 2 ô trên.
-Mặc định tỉ lệ theo 2 trục điều là 1.
-Giá trị nhập có thể theo dạng : 0.2 hoặc 2/3 gì cũng được.
-Nhấn nút Dong y.
Xong!
*Lưu ý khi chọn chế độ pick điểm thì các giá trị trong 2 ô là bao nhiêu kệ lisp sẽ không quan tâm tới 2 giá trị này.
Đây!!
  • 9

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


#28 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 07 August 2009 - 08:07 AM

Hình đã gửi

Chào anh Duy
Lisp thật hay. Cảm ơn anh. Tue_NV có một số vướng mắc chưa tỏ, anh giải thích dùm em tí nhé

;Viet boi: KTS_DUY BINH SON - QUANG NGAI


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;





;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;






(DEFUN c:scxy()
(setq oldvalue (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(setq donvi (/ (getvar "viewsize") 40))
(princ "Chon doi tuong can scale: ")
(setq ss (ssget))
(setq dc (getpoint "\nChon diem goc: "))
(setq diemvt1 (polar dc pi donvi))
(setq diemvt2 (polar dc (* 2 pi) donvi))
(setq diemvt3 (polar dc (/ pi 2) donvi))
(setq diemvt4 (polar dc (- 0 (/ pi 2)) donvi))
(grdraw diemvt1 diemvt2 2)
(grdraw diemvt3 diemvt4 2)
(scxyg)


(princ)
)

;;;;;;;;;;;;;
(defun scxyp ()
(setq diem1 (getpoint "\nDiem thu nhat cua hinh chu nhat chuan: "))
(setq diem2 (getcorner diem1"\nDiem thu hai cua hinh chu nhat chuan: "))
(setq diem11 (list (car diem1) (cadr diem2)))
(setq diem22 (list (car diem2) (cadr diem1)))
(grdraw diem1 diem11 3)
(grdraw diem11 diem2 3)
(grdraw diem2 diem22 3)
(grdraw diem1 diem22 3)
(setq daichuany (distance diem1 diem22))
(setq daichuanx (distance diem2 diem22))

(setq diem1 (getpoint diem1"\nDiem thu nhat cua hinh chu nhat den: "))
(setq diem2 (getcorner diem1"\nDiem thu hai cua hinh chu nhat den: "))
(setq diem11 (list (car diem1) (cadr diem2)))
(setq diem22 (list (car diem2) (cadr diem1)))
(grdraw diem1 diem11 4)
(grdraw diem11 diem2 4)
(grdraw diem2 diem22 4)
(grdraw diem1 diem22 4)
(setq daideny (distance diem1 diem22))
(setq daidenx (distance diem2 diem22))
(setq tilex (/ daidenx daichuanx))
(setq tiley (/ daideny daichuany))
(command "block" "blocktrunggian" dc ss "")
(Command "Insert" "blocktrunggian" dc tiley tilex 0 "")
(Command "Explode" "last")
(Command "Purge" "B" "blocktrunggian" "Y" "Y")
(setvar "CMDECHO" oldvalue)
(setvar "MODEMACRO" "**CHUC BAN LAM VIEC HIEU QUA**")
(princ)
)
;;;;;;;;;;;;;
(defun scxyg ()

(setq tilexb "1")
(setq tileyb "1")

(setq DCL_ID (load_dialog "scalexy.DCL"))
(new_dialog "tilescxy" DCL_ID)
(setq dial(load_dialog "scalexy.dcl"))

(action_tile "btn_pick" "(done_dialog 1)")
(action_tile "btn_dongy" "(done_dialog 2)")
(action_tile "btn_thoi" "(done_dialog 3)")
(set_tile "tilexb" tilexb)
(action_tile "tilexb" "(setq tilexb (get_tile \"tilexb\"))")
(set_tile "tileyb" tileyb)
(action_tile "tileyb" "(setq tileyb (get_tile \"tileyb\"))")

(setq phepchon (start_dialog))
(cond

((= phepchon 1) (scxyp))
((= phepchon 2) (dongysc))
((= phepchon 3) (thoi))
)
(Princ)
)
;;;;;;;;;;;;;;;;;
(defun dongysc ()
(setq tilex tilexb)
(setq tiley tileyb)
(command "block" "blocktrunggian" dc ss "")
(Command "Insert" "blocktrunggian" dc tiley tilex 0 "")
(Command "Explode" "last")
(Command "Purge" "B" "blocktrunggian" "Y" "Y")
(setvar "CMDECHO" oldvalue)
(setvar "MODEMACRO" "**CHUC BAN LAM VIEC HIEU QUA**")
(Princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(Defun thoi ()
(xlbqpqd32)
(princ "\nPHAM QUOC DUY Binh Son - Quang ngai")
(setvar "MODEMACRO" "**CHUC BAN LAM VIEC HIEU QUA** PHAM QUOC DUY - BINH SON - QUANG NGAI")
(Princ)
)
[\codebox]
Anh cho em hỏi chổ này một chút nhé :

(defun scxyg ()

(setq tilexb "1")
(setq tileyb "1")

(setq DCL_ID (load_dialog "scalexy.DCL"))
(new_dialog "tilescxy" DCL_ID)
(setq dial(load_dialog "scalexy.dcl"))

[color="#4169E1"](action_tile "btn_pick" "(done_dialog 1)")
(action_tile "btn_dongy" "(done_dialog 2)")
(action_tile "btn_thoi" "(done_dialog 3)")
(set_tile "tilexb" tilexb)
(action_tile "tilexb" "(setq tilexb (get_tile \"tilexb\"))")
(set_tile "tileyb" tileyb)
(action_tile "tileyb" "(setq tileyb (get_tile \"tileyb\"))")[/color]

(setq phepchon (start_dialog))
(cond

((= phepchon 1) (scxyp))
((= phepchon 2) (dongysc))
((= phepchon 3) (thoi))
)
(Princ)
)

Em biết rằng các key "btn_pick"; "btn_dongy"; "btn_thoi" chính là các key ở trong file scxy.dcl
Nhưng em chưa hiểu lắm về hàm action_tile trong Lisp và các hàm done_dialog và tham số 1;2;3 trong hàm done_dialog có nghĩa gì cũng như biến phepchon?
(action_tile "btn_pick" "(done_dialog 1)")
(action_tile "btn_dongy" "(done_dialog 2)")
(action_tile "btn_thoi" "(done_dialog 3)")


(cond

((= phepchon 1) (scxyp))
((= phepchon 2) (dongysc))
((= phepchon 3) (thoi))
)


Anh và mọi người có thể giải thích dùm Tue_NV một chút được không?
Cảm ơn anh Duy và mọi người
  • 0

#29 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 07 August 2009 - 09:09 AM

Chào anh Duy
Lisp thật hay. Cảm ơn anh. Tue_NV có một số vướng mắc chưa tỏ, anh giải thích dùm em tí nhé
Em biết rằng các key "btn_pick"; "btn_dongy"; "btn_thoi" chính là các key ở trong file scxy.dcl
Nhưng em chưa hiểu lắm về hàm action_tile trong Lisp và các hàm done_dialog và tham số 1;2;3 trong hàm done_dialog có nghĩa gì cũng như biến phepchon?
(action_tile "btn_pick" "(done_dialog 1)")
(action_tile "btn_dongy" "(done_dialog 2)")
(action_tile "btn_thoi" "(done_dialog 3)")
(cond

((= phepchon 1) (scxyp))
((= phepchon 2) (dongysc))
((= phepchon 3) (thoi))
)
Anh và mọi người có thể giải thích dùm Tue_NV một chút được không?
Cảm ơn anh Duy và mọi người

Quả thật nói ra thì hơi xấu hổ chứ kiến thức về dcl của mình rất ít.
Vốn là mình coi trong sách thấy có 1 lệnh làm xuất hiện hộp thoại gồm 3 button khi nhấn vào thì thực hiện lệnh nguyên gốc của cad. Rồi mình mò mẩm pha chế thêm đến chừng thực hiện được cho khi nhấn nút thì thực hiện cho các lệnh lisp (nói chung là mò lâu lắm hư hoài rồi có ngày cũng được). Mình lưu đoạn lisp đó lại và sau đó chơi trò lắp ghép. Nói chung mình chấp nhận làm cứ làm như thế thì nó được như thế chứ không hiểu rành cho lắm nên không giải thích cho bạn được. :bigsmile:
  • 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


#30 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 07 August 2009 - 09:20 AM

Quả thật nói ra thì hơi xấu hổ chứ kiến thức về dcl của mình rất ít.
Vốn là mình coi trong sách thấy có 1 lệnh làm xuất hiện hộp thoại gồm 3 button khi nhấn vào thì thực hiện lệnh nguyên gốc của cad. Rồi mình mò mẩm pha chế thêm đến chừng thực hiện được cho khi nhấn nút thì thực hiện cho các lệnh lisp (nói chung là mò lâu lắm hư hoài rồi có ngày cũng được). Mình lưu đoạn lisp đó lại và sau đó chơi trò lắp ghép. Nói chung mình chấp nhận làm cứ làm như thế thì nó được như thế chứ không hiểu rành cho lắm nên không giải thích cho bạn được. :bigsmile:

Có gì đâu anh. Anh em mình giống nhau ở chổ là mò mẩm, học mò là chính mà anh. Và cái vui nhất là công việc lắp ghép nó thành công. Sướng lắm anh à
Đọc code và file dcl em hiểu một ít rồi.
Em muốn tìm tài liệu về Dcl đề học, nhưng tìm trên diễn đàn nhiều mà không có.

Nếu anh và mọi người có tài liệu về dcl thì cho Tue_NV xin để làm tài liệu để học tập

Xin chân thành cảm ơn anh Duy và mọi người :bigsmile:
  • 0

#31 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 07 August 2009 - 09:48 AM

Có gì đâu anh. Anh em mình giống nhau ở chổ là mò mẩm, học mò là chính mà anh. Và cái vui nhất là công việc lắp ghép nó thành công. Sướng lắm anh à
Đọc code và file dcl em hiểu một ít rồi.
Em muốn tìm tài liệu về Dcl đề học, nhưng tìm trên diễn đàn nhiều mà không có.

Nếu anh và mọi người có tài liệu về dcl thì cho Tue_NV xin để làm tài liệu để học tập

Xin chân thành cảm ơn anh Duy và mọi người :bigsmile:

Bạn mua cuốn sách dạy lisp thì phía sau thế nào cũng có phần nói về dcl thôi. Bạn ở Đà Nẳng thì các nhà sách lớn chắc là có sách dạy lisp mà. Mình hồi đi SG có mua được cuốn dạy lisp của thầy Lộc nhưng nay bị mất tập 1 chỉ còn tập 2 nói về dcl thôi <_< . Mà sách thì không up lên được.
  • 0

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


#32 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 07 August 2009 - 10:41 AM

Anh Tue_NV đã tìm kiếm trong các trang sau chưa?

http://www.cadviet.c...;sa=Search#1151
  • 1

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#33 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 07 August 2009 - 11:04 AM

Anh Teu_NV đã tìm kiếm trong các trang sau chưa?

http://www.cadviet.c...;sa=Search#1151

Cám ơn em. Anh đã tìm rồi và cái anh cần tìm chính là cuốn ebook viết về hộp thoại DCL.

Và Tue_NV tìm khắp rồi nhưng không có.
Mọi người ai có ebook này thì cho Tue_NV xin với.

Cảm ơn mọi người rất nhiều
  • 0

#34 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 07 August 2009 - 11:28 AM

Cám ơn em. Anh đã tìm rồi và cái anh cần tìm chính là cuốn ebook viết về hộp thoại DCL.

Và Tue_NV tìm khắp rồi nhưng không có.
Mọi người ai có ebook này thì cho Tue_NV xin với.

Cảm ơn mọi người rất nhiều

Hề hề,
Lâu quá rồi hổng gặp được các bác, về thằng DCL thì đúng như bác Duy nói, hầu hết các tài liệu về lisp đều có nói đến nó ở phần cuối, sau khi đã giới thiệu các vấn đề cơ bản về lisp. Nhìn chung theo mình hiểu thì thằng này chỉ để tăng thêm độ oai cho lisp thôi bác Tue_NV và các bác ạ. Có nó thì dùng hơi sướng hơn một tẹo. Mình cũng đã vọc tí ti về nó theo kiểu mà bác Duy đã dạy, cứ cắt cắt dán dán ý mà. Thực ra nó không quá khó nhưng do chỉ để giải quyết khâu oai nên ít người chịu cày sâu bừa kỹ mà thôi. Bác Tue_Nv muốn có tài liệu ebook về nó thì có thể tham khảo ở đây nhé
http://www.cadviet.c...lisp_tu_hoc.rar

Cái này là mình cũng mót trên diễn đàn về rồi tự dịch để cày thôi, có gì sai sót mong bác luợng thứ. Phần tiếng Anh mình vẫn giữ nguyên gốc của cụ Jeffy Sander đó. Hy vọng là bác sẽ xài được nó.
Chúc bác và các bác khác trên diễn đàn luôn mạnh giỏi.
  • 2
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#35 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 07 August 2009 - 12:07 PM

Hề hề,
Cái này là mình cũng mót trên diễn đàn về rồi tự dịch để cày thôi,

Bác Bình ơi! Dạo này cánh đồng làng em có nhiều khoai run run lắm. Hôm nào bác mót được nhiều nhiều khoai cố gắng tạt vào nhà em chơi nhá! Em sẽ luộc khoai giúp đảm bảo ko nát đâu. Anh Dậu nhà em dạo này khoẻ rồi bác ạ! Các cháu nhà em vưỡn hỏi thăm bác Bình luôn luôn bác ạ!
Em cũng mót được tải khoai nhờ bác thẩm định và phân loại giúp em:


Tổng quan về AutoLisp - Ngôn ngữ lập trình trong Tự động hóa thiết kế
Autocad
1. Giới thiệu về Autolisp
1.1. Sơ lược về LISP
LISP – List Processing là một chuẩn ngôn ngữ lập trình được John McCarthy phát triển vào năm 1956 trong dự án nghiên cứu AI (Artificial Intelligence). Phiên bản đầu tiên LISP 1.5 được giới thiệu vào đầu thập niên 60 và phát triển với nhiều biến thể như: BBNLisp, Interlisp, MacLisp, NIL (New Implementation of Lisp), Franz Lisp…Vào thập niên 70 và đầu những năm 80 đã có máy tính chuyên dụng như Lisp Machines được thiết riêng để chạy những chương trình LISP. Đến năm 1981 để chuẩn hóa LISP các nhà lập trình đã tập hợp và chuẩn hóa thành chuẩn Common LISP. Năm 1984 Golden Common LISP trở thành chuẩn chính thức cho máy tính IBM và sau này phát triển thành XLISP- tiền thân của Autolisp ngày nay.

1.2. Lịch sử phát triển của Autolisp
AutoLisp được phát triển từ XLISP là ngôn ngữ lập trình trên môi trường AutoCAD và được công bố phiên bản đầu tiên 2.18 vào tháng 01 năm 1986. Cùng với sự phát triển của AutoCAD các phiên bản của Autolisp ngày càng được hoàn thiện với nhiều tính năng mới, có thể kể đến một vài phiên bản tiêu biểu như sau:
- Chính thức giới thiệu phiên bản 2.5 tích hợp vào AutoCAD R7 với một số tính tăng cơ bản về các tương tác với đối tượng trong bản vẽ
- Phiên bản 2.6 tích hợp vào AutoCAD R7 với chức năng 3D và một số hàm mới getcorner, getkword, và initget.
- Phiên bản tích hợp vào AutoCAD R12 giới thiệu một số hàm GUI (Graphic User Interface) và ngôn ngữ điều khiển hộp thoại DCL (Dialog Control Language).
- Phiên bản Visual LISP™ giới thiệu cùng với AutoCAD R14 là một môi trường phát triển Autolisp độc lập, trực quan với sự hỗ trợ của các công cụ gỡ rối.
- Visual LISP™ được chính thức tích hợp vào AutoCAD 2000 và từ đó đến nay được bổ sung nhiều tích năng mới.

1.3. Ưu và nhược điểm của Autolisp
1.3.1. Ưu điểm
Làm việc rất tốt và dễ dàng với điểm và các yếu tố hình học.
Rất mềm dẻo, không khắt khe.
Không cần trình dịch - lập trình và thực hiện lệnh.
Chạy được trên tất các các hệ điều hành với cùng 1 file Lisp.
Quản lý đối tượng với List - một kiểu dữ liệu với nhiều ưu điểm vượt trội trong quản lý tọa độ điểm.
Mã nguồn mở và cộng đồng phát triển Autolisp rất rộng lớn.

1.3.2 Nhược điểm
Hình thức bên ngoài không hấp dẫn.
Cú pháp khó hiểu.
Hạn chế, không có trình biên dịch.
Ngôn ngữ trung gian nên thực thi chậm.
Hầu như không thể tương tác với hệ thống.

2. Những khó khăn khi tiếp cận với Autolisp
Có thể khẳng định chắc chắn một điều là Autolisp là một ngôn ngữ rất dễ tiếp cận so với một số ngôn ngữ lập trình khác vì nó là ngôn ngữ lập trình theo kịch bản (Script). Tuy nhiên, để tiếp cận được với Autolisp yêu cầu người học phải có kiến thức nền về lập trình và nắm vững về AutoCAD, đồng thời phải có kiến thức nhất định về hình học. Chương trình Autolisp là một tổ hợp những kịch bản được định trước nằm điều khiển AutoCAD thực thi theo suy nghĩ của người thiết kế.

Đa số mọi người muốn học Autolisp là để giải quyết những bài toán trong lĩnh vực chuyên môn của mình. Để tiếp cận và ứng dụng tốt Autolisp trong công việc yêu cầu người lập trình phải có sự liên hệ với nhu cầu công việc thực tế, điều này phụ thuộc rất lớn vào sở trường của mỗi người. Bạn đang thực hiện một vài thao tác để hoàn thiện bản vẽ của mình và bạn chợt nhận ra nó cứ lặp lại liên tục. Một ý tưởng nảy ra là bạn cần thực hiện một đoạn chương trình Autolisp để tự động thực hiện các thao tác này và chương trình Autolisp được hoàn thành. Điều này có thể giải thích được vì sao một số người lại cảm thấy khó khăn khi tiếp cận với Autolisp mặt dù khả năng tư duy về lập trình của họ khá tốt.

3. Một số khái niệm và cú pháp lập trình
3.1. Giới thiệu
Một chương trình Autolisp luôn bắt đầu bằng dấu “(“ và kết thúc bằng dấu “)”. Một chương trình Autolisp đơn giản như sau:
Code: (defun myProg()
(princ "Tecco 533")
(princ)
)
Autolisp là ngôn ngữ trả về giá trị sau khi thực thi lệnh. Bạn có thể kiểm tra điều này bằng cách mở AutoCAD và gỏ dòng lệnh sau: (+ 1 2)
Kết quả trả về là 3.

3.2. Biến
Để gán giá trị trong Autolisp bạn cần sử dụng từ khóa setq với cú pháp: (setq a 1)
Để kiểm tra giá trị của biến dùng từ khóa ! với cú pháp: !a
Giống một số ngôn ngữ lập trình khác Autolisp cũng qui định cách đặt tên biến như sau:
- Không dùng các ký tự đặc biệt: *, &, ^, $...
- Không dùng các từ khóa của AutoCAD: LINE, PLINE, MIRROR…
- Tên biến không phân biệt chữ hoa và chữ thường

3.3. Hàm
Autolisp qui định từ khóa defun để định nghĩa hàm thực thi với cú pháp:
Code: (defun myProg()
(princ "Tecco 533")
(princ)
)
Ngoài ra Autolisp còn sử dụng từ khóa C: sẽ khai báo với AutoCAD là chương trình sẽ thực thi bằng lệnh tại dấu nhắc lệnh Command với cú pháp:
Code: (defun C:myProg()
(princ "Tecco 533")
(princ)
)
Với hàm đầu tiên để thực thi bạn phải gõ Command: (myProg) tại dòng nhắc lệnh còn với hàm thứ hai bạn chỉ cần gỏ Command: myProg giống như một lệnh trong AutoCAD.

3.4. Kiểu dữ liệu
Một số kiểu dữ liệu thông dụng trong Autolisp như sau:
String: Chuổi gồm các ký tự và số
Integers: Số tự nhiên
Real: Số thực
List: Kiểu dữ liệu đặc trưng và cũng là thế mạnh của LISP so với các ngôn ngữ lập trình khác.
Associated List: Đây là kiểu dữ liệu định nghĩa các đối tượng trong AutoCAD.
Dựa trên các kiểu dữ liệu trên Autolisp phân loại các nhóm hàm dựng sẵn như sau:
- Hàm xử lý chuổi: substr, strlen, strcase, strcat
- Hàm xử lý số: abs, atof, atoi, fix, float, itoa
- Hàm xử lý List: car, cdr, cadr, caddr, caar, cddr, foreach, list, cons, nth
- Hàm chuyển đổi: fix, float, itoa, atoi, atof, rtos, angtos
- Hàm toán học: +, -, *, /, +1, -1, cos, atan, sin, sqrt, expt
Hàm lựa chọn thực thể: entsel, ssget
Hàm xử lý tập chọn: ssadd, ssdel, sslength, ssname
Hàm xử lý đối tượng: entget, entlast, entnext, entdel, entmod, entupd
Hàm xử lý file: pen, close, read-line, write-line

3.5. Bảng mã DXF
AutoCAD định nghĩa một đối tượng trên bản vẽ theo kiểu dữ liệu Associated List như sau:
((-1 . ) (0 . "LINE") (5 . "22") (100 . "AcDbEntity") (67 . 0) (8 . "0") (62 . 4) (100 . "AcDbLine") (10 3.39219 5.3243 0.0) (11 8.72878 3.10374 0.0) (210 0.0 0.0 1.0))
Đây là một tập hợp các cặp đôi (mã số . dữ liệu) được qui định trước. Tùy theo đối tượng và thuộc tính đối tượng mà Associated List sẽ có những tham số khác nhau. Các mã số này tuân theo một qui định trong bảng định nghĩa cho trước gọi là bảng mã DXF. Để có thể đều khiển được các đối tượng trong bản vẽ AutoCAD yêu cầu người lập trình phải hiểu rất rõ về bảng mã DXF này.

3.6. Dữ liệu mở rộng
AutoCAD dùng các mã số từ 1000 đến 1042 để biểu diễn các dữ liệu mở rộng. Với dữ liệu mở rộng người lập trình có thể đánh dấu đối tượng trên AutoCAD để thực hiện các thao tác tiếp theo. Một ứng dụng điển hình trên AutoCAD sử dụng dữ liệu mở rộng này là chương trình Nova-TDN của Công ty tin học Hài Hòa. Thông qua dữ liệu mở rộng chương trình có thể phân biệt được đâu là tim tuyến, đâu là trắc dọc, cắt ngang…Toàn bộ dữ liệu mở rộng được định nghĩa trong Associated List với mã số -3.
Ví dụ:
Code: ((-3 ("TECCO533" (1000 . "Tim tuyen"))))

3.7. Điều kiện
Cũng giống với một số ngôn ngữ lập trình khác Autolisp hỗ trợ người lập trình 02 cú pháp điều kiện là điều kiện xác định If và điều kiện lựa chọn Cond với cú pháp như sau:
Code: (if <điều kiện>


)
(cond
( )
( )
...
( )
)

3.8. Vòng lặp
Autolisp không hỗ trợ vòng lặp For mà chỉ hỗ trợ 02 vòng lặp Repeat và While với cú pháp như sau:
Code: (while < điều kiện >

)
(repeat

)

3.9. Ngôn ngữ điều khiển hộp thoại DCL
Autolisp cung cấp cho người lập trình một ngôn ngữ điều khiển hộp thoại DCL để giải quyết về giao diện tương tác với người sử dụng. Thông qua ngôn ngữ DCL người lập trình có thể thiết kế các Form nhập liệu trực quan giúp cho chương trình trở nên thân thiện hơn.

3.10. Hướng đối tượng
Bản thân Autolisp không phải là ngôn ngữ lập trình hướng đối tượng, nhưng cùng với xu hướng phát triển của lập trình hướng đối tượng bắt đầu từ Visual LISP™ cho AutoCAD R14 hãng AutoDesk đã tích hợp vào AutoCAD công nghệ ActiveX với kỹ thuật lập trình hướng đối tượng VLA (Visual LISP ActiveX). Thông qua công nghệ ActiveX người lập trình có thể diểu khiển tất các các đối tượng trên bản vẽ qua các thuộc tính và phương thức của nó. Điều đặc biệt là người lập trình có thể can thiệp đến một số chức năng như in ấn, định dạng hệ thống AutoCAD mà trước đây Autolisp không can thiệp được. Các chương trình sử dụng công nghệ ActiveX phải được dịch qua chuẩn ARX mới thực thi được trên AutoCAD.

4. Kết luận
Autolisp là một ngôn ngữ lập trình đơn giản, dễ tiếp cận và hiệu quả công việc nó đem lại là đáng kể. Hãy bắt đầu Autolisp với những công việc thường ngày. Những đoạn chương trình Autolisp đơn nhưng có thể giảm được thời gian đáng kể trong việc hoàn thiện các bản vẽ. Một chương trình Autolisp thành công không phải là chương trình có qui mô lớn đến vài chục ngàn dòng lệnh mà đó là chương hiệu quả, giải quyết được các yêu cầu của người thiết kế và tiết kiệm được thời gian thực hiện công việc.

5. Giới thiệu một số địa chỉ tham khảo
5.1. Website hướng dẫn học Autolisp
http://www.jefferyps...m/autolisp.html
Bạn đọc có thể tham khảo các tài liệu giới thiệu chi tiết về các hàm dựng sẵn trong Autolisp cũng như các tài liệu giới thiệu về bảng DXF tại đây. Ngoài ra tại website này bạn có thể download miễn phí nhiều chương trình Autolisp rất hay.
http://www.afralisp.com/lispa/lisp.htm
Website hướng dẫn học Autolisp khá chi tiết và đầy đủ. Bạn có thể tham khảo bất kỳ nội dung gì liên quan đến Autolisp tại đây

5.2. Download các chương trình Autolisp
http://xarch.tu-graz...t/autocad/lisp/
http://home.pacifier.com/~nemi/
http://www.autolisppage.com
http://www.caddigest.com
http://www.autolisp.co.uk/
http://www.simplecad.com

Nguồn bài viết của: http://diendan.uct2.edu.vn
  • 0

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#36 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 07 August 2009 - 02:28 PM

Tổng quan về AutoLisp - Ngôn ngữ lập trình trong Tự động hóa thiết kế
........
Nguồn bài viết của: http://diendan.uct2.edu.vn

Sao vậy ta?
Bài này từ CADViet ra mà: http://www.cadviet.c...?showtopic=2836
  • 0

#37 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 07 August 2009 - 04:27 PM

Cám ơn em. Anh đã tìm rồi và cái anh cần tìm chính là cuốn ebook viết về hộp thoại DCL.
Và Tue_NV tìm khắp rồi nhưng không có.
Mọi người ai có ebook này thì cho Tue_NV xin với.
Cảm ơn mọi người rất nhiều

Bạn tham khảo trang : OpenDCL
  • 1

#38 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 07 August 2009 - 05:55 PM

Sao vậy ta?
Bài này từ CADViet ra mà: http://www.cadviet.c...?showtopic=2836

Em tìm kiếm trên mạng thấy nó ở trang này:
http://my.opera.com/...ng-hoa-thiet-ke

Và rất nhiều trang trong đây nữa:

http://www.google.co...&...1i Google

LỜI THỀ CỎ MAY
(Phạm Công Trứ, Việt Nam)
……………………..
Nếu ko nhớ nhầm , em đã có lần nhắc anh về tên tác giả bài thơ!
Những bài thơ và bài viết của các tác chưa nổi chỉ đăng tải trên mạng có thể không cần ghi tên tuổi cũng tạm chấp nhận được. Nhưng với những tác giả đã thành danh anh phải ghi tên tác giả mới trọn tình vẹn nghĩa.
Tìm kiếm trên Google em thấy có một số bài viết và hình ảnh của các tác giả có tên tuổi trên diễn đàn CADViet, đăng tải ở một số trang Web khác. Không thấy họ ghi tên tác giả hoặc nguồn gốc bài viết, dù đó ko phải là bài viết của em nhưng em cũng thấy bức xúc và day dứt một nỗi buồn...Em thấy buồn vì sự "lập lờ đánh lận con đen" Tỉ dụ có thành viên mới vào diễn đàn đã từng đọc bài viết , hình ảnh mẹo sử dụng CAD mà họ đã đọc ở các trang Web khác , rồi họ lại thấy bài viết đó hình ảnh đó trên diễn đàn CADViet họ sẽ nghĩ gì??? Nếu họ nghĩ rằng diễn đàn mình có người copy bài của diễn đàn khác anh có thấy đau lòng và bức xúc ko ???
Em đã chán ngấy cái việc góp ý người khác lắm rồi nhiều khi mang vạ vào thân mà chờ được vạ thì má đã sưng rồi anh ạ!
Em thấy anh là người dễ tính nhưng cũng chỉ dám góp ý anh lần này nữa và cũng là lần cuối. Chỉ mong anh hiểu em và thông cảm cho em thôi! Chúc anh vui khoẻ và trẻ mãi đến già!
Vẫn còn hai câu hỏi của em chưa thấy anh trả lời???

www.cadviet.com © cadviet 2007
Ghi rõ nguồn www.cadviet.com khi phát hành lại thông tin từ trang web này.
Mọi vấn đề liên quan xin liên hệ email: webmaster@cadviet.com


  • 0

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#39 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 07 August 2009 - 06:13 PM

Chào anh Duy
Lisp thật hay. Cảm ơn anh. Tue_NV có một số vướng mắc chưa tỏ, anh giải thích dùm em tí nhé
...
Em biết rằng các key "btn_pick"; "btn_dongy"; "btn_thoi" chính là các key ở trong file scxy.dcl
Nhưng em chưa hiểu lắm về hàm action_tile trong Lisp và các hàm done_dialog và tham số 1;2;3 trong hàm done_dialog có nghĩa gì cũng như biến phepchon?
(action_tile "btn_pick" "(done_dialog 1)")
(action_tile "btn_dongy" "(done_dialog 2)")
(action_tile "btn_thoi" "(done_dialog 3)")
(cond

((= phepchon 1) (scxyp))
((= phepchon 2) (dongysc))
((= phepchon 3) (thoi))
)
Anh và mọi người có thể giải thích dùm Tue_NV một chút được không?
Cảm ơn anh Duy và mọi người


Cú pháp: (done_dialog [status]) -> kết thúc dialog

Khi done_dialog thực hiện xong, nó sẽ trả về giá trị "status" cho start_dialog. Có 4 trường hợp xảy ra:

1- Done_dialog kết hợp với button OK (key quy định là accept): start_dialog = 1

2- Done_dialog kết hợp với button Cancel (key quy định là cancel): start_dialog = 0

3- Nếu chương trình kết thúc vì lý do gì đó mà các dialog vẫn ở trạng thái open, AutoCAD sẽ tự động gọi term_dialog để kết thúc. Khi đó: start_dialog = -1

Các trường hợp trên, không cần tham số khi gọi done_dialog.

4- Nếu done_dialog kết hợp với các key khác, không thuộc 3 trường hợp trên, có thể gọi done_dialog với tham số là số nguyên n>1 (n = 1 cũng được, như bạn Duy đã dùng). Khi đó, start_dialog = n
Xử lý n thế nào là tuỳ ý đồ lập trình.

Bạn Duy dùng biến phepchon là để không phải lặp lại kiểu như:
(cond
((= start_dialog 1) (scxyp))
((= start_dialog 2) (dongysc))
((= start_dialog 3) (thoi))
)
Như vậy không ổn vì start_dialog chỉ được phép gọi 1 lần khi thực thi một dialog.
  • 3

#40 vostro 1500

vostro 1500

    biết zoom

  • Members
  • Pip
  • 17 Bài viết
Điểm đánh giá: 27 (tàm tạm)

Đã gửi 22 August 2009 - 06:18 PM

Hiện mình đã chỉnh lại cái lisp này 1 chút cho tiện dùng
-Tên lệnh: SCXY
-Thao tác:
+Nhập lệnh SCXY.
+Chọn đối tượng.
+Chọn điểm chuẩn (để phóng)
+Vẽ hình chử nhật chuẩn (bằng cách chọn 2 điểm chéo góc).
+Vẽ hình chử nhật đích (bằng cách chọn 2 điểm chéo góc).
Xong!

Đây !!!


Mình dùng cái này của bác thật tuyệt vời. Có 1 thắc mắc nhỏ:
Hình như đối tượng Scale bị "bung" ra phải ko bác? Cụ thể là mình thử với hình chữ nhật (vẽ bằng REC) rồi scale -> 4 đoạn thẳng ghép lại.
  • 0