Đến nội dung


Hình ảnh
* * * - - 3 Bình chọn

Hướng dẫn lập trình Lisp


  • Please log in to reply
497 replies to this topic

#21 nguyen cuong

nguyen cuong

    Chưa sử dụng CAD

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

Đã gửi 21 May 2008 - 11:32 AM

xin mọi người cho mình hỏi : ai biết tài liệu học lisp nào hay không ? tài liệu tiếng việt đọc dễ hiểu ? ( tên sách và tên tác giả cho dễ tìm).cảm ơn >>>>>>>>>>>>>>
  • 0

#22 tulipden87

tulipden87

    biết vẽ line

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

Đã gửi 31 May 2008 - 04:54 PM

Các bác pro ơi!
Em mới chập chững bước vào học Lisp được khoảng 1 tuần. Em mong các bác chỉ giáo nhiều. Hiện nay em đang có một vấn đề không giải quyết được mong các bác chỉ giúp. Số là trong một số đoạn lisp em dùng một đoạn chương trình ví dụ như :
(command ".trim"........) hoặc (command ".offset" (distance A C) ......)
khi appload vào trong cad để dùng thì cứ chạy đến đoạn này thì nó lại dừng lại bắt phải chọn đối tượng (Select objects:). Em đã dùng đủ cách rồi mà vẫn không làm cho nó tự chọn được đối tượng.
Em mong các bác chỉ giáo giúp, làm thế nào để nó có thể tự chọn được đối tượng mà không bắt người sử dụng phải chọn đối tượng.
Em xin cảm ơn các bác nhiều.
  • 0

#23 vndesperados

vndesperados

    biết lệnh xref

  • Members
  • PipPipPipPipPipPipPip
  • 547 Bài viết
Điểm đánh giá: 253 (khá)

Đã gửi 31 May 2008 - 05:12 PM

Các bác pro ơi!
Em mới chập chững bước vào học Lisp được khoảng 1 tuần. Em mong các bác chỉ giáo nhiều. Hiện nay em đang có một vấn đề không giải quyết được mong các bác chỉ giúp. Số là trong một số đoạn lisp em dùng một đoạn chương trình ví dụ như :
(command ".trim"........) hoặc (command ".offset" (distance A C) ......)
khi appload vào trong cad để dùng thì cứ chạy đến đoạn này thì nó lại dừng lại bắt phải chọn đối tượng (Select objects:). Em đã dùng đủ cách rồi mà vẫn không làm cho nó tự chọn được đối tượng.
Em mong các bác chỉ giáo giúp, làm thế nào để nó có thể tự chọn được đối tượng mà không bắt người sử dụng phải chọn đối tượng.
Em xin cảm ơn các bác nhiều.


Tự chọn đối tượng là sao bạn???
Bạn có định hướng là nó sẽ chọn đối tượng nào không???
  • 1

#24 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 31 May 2008 - 06:19 PM

Các bác pro ơi!
Em mới chập chững bước vào học Lisp được khoảng 1 tuần. Em mong các bác chỉ giáo nhiều. Hiện nay em đang có một vấn đề không giải quyết được mong các bác chỉ giúp. Số là trong một số đoạn lisp em dùng một đoạn chương trình ví dụ như :
(command ".trim"........) hoặc (command ".offset" (distance A C) ......)
khi appload vào trong cad để dùng thì cứ chạy đến đoạn này thì nó lại dừng lại bắt phải chọn đối tượng (Select objects:). Em đã dùng đủ cách rồi mà vẫn không làm cho nó tự chọn được đối tượng.
Em mong các bác chỉ giáo giúp, làm thế nào để nó có thể tự chọn được đối tượng mà không bắt người sử dụng phải chọn đối tượng.
Em xin cảm ơn các bác nhiều.

Khi dùng (command "xxxx" ...), bạn phải cung cấp đủ và đúng kiểu các đối số cần thiết y như khi user nhập lệnh trực tiếp. Nếu không, Acad có 1 trong 2 cách hành xử:
1- Báo lỗi và thoát lệnh lisp đang chạy
2- Yêu cầu người dùng nhập cho đủ
Xét về logic, giả sử có tính năng "tự chọn" như bạn nói thì khi chạy chương trình, nó "thích" chọn đối tượng nào để thực thi lệnh cũng được à? Thật ra thì có thể lập trình như vậy nếu bạn muốn, chỉ e rằng các đối tượng được chọn không đúng ý của bạn lẫn của user!
Tóm lại, không có chuyện "tự chọn" đối tượng. Hoặc là bạn chọn, hoặc là user chọn.
Nếu cần, bạn hãy post lên 1 bản vẽ *.dwg làm ví dụ và nêu rõ bạn muốn chương trình làm những việc gì, mọi người mới có thể giúp bạn được.
  • 1

#25 tulipden87

tulipden87

    biết vẽ line

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

Đã gửi 02 June 2008 - 11:55 PM

Em cảm ơn bác.
Bây giờ trong file .dwg của em chỉ chứa một đoạn thẳng. Ý của em là muốn dùng lệnh offset để tạo thêm một đoạn thẳng nữa nhưng chương trình sẽ tự chọn đoạn thằng đã có sẵn kia mà ko bắt người sử dụng phải chọn nó, tức là lệnh offset sẽ chạy một mạch mà ko yêu cầu người sử dụng phải động chân động tay thêm.
Mong các bác giúp đỡ.
  • 0

#26 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 03 June 2008 - 07:02 AM

Em cảm ơn bác.
Bây giờ trong file .dwg của em chỉ chứa một đoạn thẳng. Ý của em là muốn dùng lệnh offset để tạo thêm một đoạn thẳng nữa nhưng chương trình sẽ tự chọn đoạn thằng đã có sẵn kia mà ko bắt người sử dụng phải chọn nó, tức là lệnh offset sẽ chạy một mạch mà ko yêu cầu người sử dụng phải động chân động tay thêm.
Mong các bác giúp đỡ.

Lệnh AO -> lisp sẽ chạy "một mạch". Còn việc có đúng ý user hay không thì người lập trình không chịu trách nhiệm!
(defun C:AO( / ss e);;;AutoOffset!
(setq
ss (ssget "X" '((0 . "LINE")))
e (ssname ss 0)
)
(command "offset" 10 e (list 0 0 0) "")
)

  • 1

#27 tulipden87

tulipden87

    biết vẽ line

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

Đã gửi 03 June 2008 - 11:37 PM

Thanks bác nhiều!
  • 0

#28 zikuku

zikuku

    Chưa sử dụng CAD

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

Đã gửi 17 July 2008 - 10:54 AM

Thanks a lot!!
  • 0

#29 duc_cavico

duc_cavico

    Chưa sử dụng CAD

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

Đã gửi 20 July 2008 - 12:20 AM

Tự tay mình lập một chương trình Lisp có gì khác so với nhờ ai đó làm? Chưa cần xét kết quả, điểm khác nhau rất cơ bản là bạn sẽ có được cái cảm giác rất là khoái chí (không thể diễn tả) khi chạy thử chương trình.
Ssg lập topic này không ngoài mục đích tạo điều kiện cho các bạn tự mình tìm hiểu và khám phá cái cảm giác "khoái chí không thể diễn tả" nói trên.
Với tinh thần "Share is Receive", ssg cũng mong các bạn đã thành thạo Lisp quan tâm giúp đỡ các bạn mới để cộng đồng Lisp của CadViet ngày càng đông vui và tạo được nhiều chương trình hữu ích.
Để bắt đầu, ssg post lại một bài viết cũ, nhưng có lẽ vẫn còn mới đối với một số bạn. Hy vọng sẽ giúp được chút gì đó cho các bạn mới tiếp cận với Lisp:

http://www.cadviet.c...les/Relax_1.zip

Download, giải nén rồi đọc file *.doc

Về Lisp em mới được tiếp cận " về mặt khái niệm" :rolleyes: . Mong rằng các bậc tiền bối chỉ giáo nhiều nhiều.
  • 0

#30 Snowman

Snowman

    biết lệnh mirror

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

Đã gửi 20 July 2008 - 10:36 PM

Lệnh AO -> lisp sẽ chạy "một mạch". Còn việc có đúng ý user hay không thì người lập trình không chịu trách nhiệm!

(defun C:AO( / ss e);;;AutoOffset!
(setq
ss (ssget "X" '((0 . "LINE")))
e (ssname ss 0)
)
(command "offset" 10 e (list 0 0 0) "")
)

Bác SSg làm thế này là hại người ta rồi còn gì nữa :rolleyes: :gun:
Người ta chưa hiểu biết nhiều mà bác cho người ta một công cụ "chạy một mạch mà không cần động tay động chân" (chắc hắn cũng không hiểu công cụ đó chạy một mạch như thế nào :lol: ) vừa làm cho họ ...lười lao động, vừa làm cho họ ...lười suy nghĩ.
@ tulipden87:
Không có một lisp nào chạy một mạch mà không cần động chân động tay đâu. Chí ít ra là bạn cũng phải ...động não xem nó sẽ làm gì, làm như thế nào chứ
Lisp thực ra cũng chỉ làm thay cho bạn những động tác mà bạn phải click, type, di chuột, ... còn thuật toán của lisp chính là suy nghĩ, tính toán của bạn để giải quyết 1 vấn đề. Nếu bạn lười động tay động chân (ví dụ vậy :gun: ) thì lisp của bạn viết ra cũng không thể làm việc "chăm chỉ" thay bạn được.
Ý mình là nếu bạn "động tay động chân, động não" nhiều, bạn sẽ có được nhiều kinh nghiệm, nhiều cách tư duy mới, sáng tạo và từ đó mới có được những thuật toán lisp "chạy một mạch" không cần động tay động chân được :gun:
  • 0

. - ' * ' - .. - ... "Sống trong đời sống cần có một tấm lòng..." . - ' * ' - .. -
-----------------------------------------------------------------------------------

Hình đã gửi Hình đã gửi


#31 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 21 July 2008 - 07:12 AM

Bác SSg làm thế này là hại người ta rồi còn gì nữa <_< :rolleyes:
Người ta chưa hiểu biết nhiều mà bác cho người ta một công cụ "chạy một mạch mà không cần động tay động chân" (chắc hắn cũng không hiểu công cụ đó chạy một mạch như thế nào :lol: ) vừa làm cho họ ...lười lao động, vừa làm cho họ ...lười suy nghĩ.
@ tulipden87:
Không có một lisp nào chạy một mạch mà không cần động chân động tay đâu. Chí ít ra là bạn cũng phải ...động não xem nó sẽ làm gì, làm như thế nào chứ
Lisp thực ra cũng chỉ làm thay cho bạn những động tác mà bạn phải click, type, di chuột, ... còn thuật toán của lisp chính là suy nghĩ, tính toán của bạn để giải quyết 1 vấn đề. Nếu bạn lười động tay động chân (ví dụ vậy :gun: ) thì lisp của bạn viết ra cũng không thể làm việc "chăm chỉ" thay bạn được.
Ý mình là nếu bạn "động tay động chân, động não" nhiều, bạn sẽ có được nhiều kinh nghiệm, nhiều cách tư duy mới, sáng tạo và từ đó mới có được những thuật toán lisp "chạy một mạch" không cần động tay động chân được :gun:


Ssg cũng có cùng quan điểm với bạn, nhưng bạn cho rằng ssg "hại người ta" có lẽ không xác đáng.
Bạn đọc lại bài trả lời trước của ssg sẽ thấy:

Xét về logic, giả sử có tính năng "tự chọn" như bạn nói thì khi chạy chương trình, nó "thích" chọn đối tượng nào để thực thi lệnh cũng được à? Thật ra thì có thể lập trình như vậy nếu bạn muốn, chỉ e rằng các đối tượng được chọn không đúng ý của bạn lẫn của user!
Tóm lại, không có chuyện "tự chọn" đối tượng. Hoặc là bạn chọn, hoặc là user chọn.


Đã nói vậy, nhưng có thể bạn tulip chưa hiểu nhiều về lisp và vẫn chưa thông. Đoạn lisp mình post là một ví dụ phản diện, ai chạy lisp trên cũng thấy rõ cái bất hợp lý của nó và tự khắc sẽ hiểu ra vấn đề.
  • 0

#32 ngmtuong

ngmtuong

    biết zoom

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

Đã gửi 24 August 2008 - 08:25 PM

chào các bác!
em muốn hỏi dùng lisp để vẽ hình chữ nhật có bo tròn các đỉnh thì viết thế nào?
em nghĩ mãi nhưng chưa viết dc
thanks!
  • 0

#33 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 25 August 2008 - 07:21 AM

chào các bác!
em muốn hỏi dùng lisp để vẽ hình chữ nhật có bo tròn các đỉnh thì viết thế nào?
em nghĩ mãi nhưng chưa viết dc
thanks!


(command "rectangle" "f" (getreal "\nRadius:") pause)
  • 0

#34 letaphuquy

letaphuquy

    Chưa sử dụng CAD

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

Đã gửi 05 December 2008 - 08:16 AM

thaks các bác
  • 0

#35 tiger99

tiger99

    biết vẽ line

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

Đã gửi 07 December 2008 - 09:34 AM

Tự tay mình lập một chương trình Lisp có gì khác so với nhờ ai đó làm? Chưa cần xét kết quả, điểm khác nhau rất cơ bản là bạn sẽ có được cái cảm giác rất là khoái chí (không thể diễn tả) khi chạy thử chương trình.
Ssg lập topic này không ngoài mục đích tạo điều kiện cho các bạn tự mình tìm hiểu và khám phá cái cảm giác "khoái chí không thể diễn tả" nói trên.
Với tinh thần "Share is Receive", ssg cũng mong các bạn đã thành thạo Lisp quan tâm giúp đỡ các bạn mới để cộng đồng Lisp của CadViet ngày càng đông vui và tạo được nhiều chương trình hữu ích.
Để bắt đầu, ssg post lại một bài viết cũ, nhưng có lẽ vẫn còn mới đối với một số bạn. Hy vọng sẽ giúp được chút gì đó cho các bạn mới tiếp cận với Lisp:

http://www.cadviet.c...les/Relax_1.zip

Download, giải nén rồi đọc file *.doc

Hay quá đi thôi cách này học thực tế ví dụ sinh động dễ hiểu cám ơn bác ssg nhé.Bác tiếp tục phát huy nhé.
  • 0

#36 Who am I

Who am I

    biết vẽ line

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

Đã gửi 10 December 2008 - 01:39 PM

Giá mà cadviet.com xuấn bản cuốn "Hướng dẫn lập trình Lisp' thì hay biết mấy!
  • 0

#37 undo

undo

    biết pan

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

Đã gửi 23 December 2008 - 03:42 PM

Tự tay mình lập một chương trình Lisp có gì khác so với nhờ ai đó làm? Chưa cần xét kết quả, điểm khác nhau rất cơ bản là bạn sẽ có được cái cảm giác rất là khoái chí (không thể diễn tả) khi chạy thử chương trình.
Ssg lập topic này không ngoài mục đích tạo điều kiện cho các bạn tự mình tìm hiểu và khám phá cái cảm giác "khoái chí không thể diễn tả" nói trên.
Với tinh thần "Share is Receive", ssg cũng mong các bạn đã thành thạo Lisp quan tâm giúp đỡ các bạn mới để cộng đồng Lisp của CadViet ngày càng đông vui và tạo được nhiều chương trình hữu ích.
Để bắt đầu, ssg post lại một bài viết cũ, nhưng có lẽ vẫn còn mới đối với một số bạn. Hy vọng sẽ giúp được chút gì đó cho các bạn mới tiếp cận với Lisp:

http://www.cadviet.c...les/Relax_1.zip

Download, giải nén rồi đọc file *.doc

em vừa đọc xong cái file của pác up lên, em thấy bài viết này hay, nó làm cho một người chưa biết gì về lish như em được mở rộng tầm mắt, nhưng quả thật với pác...em còn mơ hồ lắm...giống như đi giữa sương mù trời đà lạt ấy! Pác đã giúp, nay em tham lam xin pác đây hoặc các pác trong diễn đàn, ai biết tên sách hay file nào nói đầy đủ về lish (đầy đủ tức là từ A cho tới Zách đấy các pác à), thì up lên cho mọi người cùng học hỏi.... cám ơn pác đây nhiều nhiều !!!
  • 0

#38 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 23 December 2008 - 04:02 PM

em vừa đọc xong cái file của pác up lên, em thấy bài viết này hay, nó làm cho một người chưa biết gì về lish như em được mở rộng tầm mắt, nhưng quả thật với pác...em còn mơ hồ lắm...giống như đi giữa sương mù trời đà lạt ấy! Pác đã giúp, nay em tham lam xin pác đây hoặc các pác trong diễn đàn, ai biết tên sách hay file nào nói đầy đủ về lish (đầy đủ tức là từ A cho tới Zách đấy các pác à), thì up lên cho mọi người cùng học hỏi.... cám ơn pác đây nhiều nhiều !!!


Sách và tài liệu về lisp thì khá nhiều. Đây là một trong số đó mà tôi đã đọc và cảm thấy phù hợp với mình. Bạn có thể tham khảo. Trong tài liệu này tôi tự dịch ra tiếng Việt để học nên có thể có nhiều sai sót do trình độ còn kém. Bạn có thể tham khảo bản gốc bằng tiếng Anh mà tôi vẫn giữ nguyên trong đó. Chỗ nào bạn không rõ có thể post lên để cùng trao đổi nhé.
http://www.cadviet.c...sp_tu_hoc_1.doc
  • 5
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#39 undo

undo

    biết pan

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

Đã gửi 23 December 2008 - 04:26 PM

Sách và tài liệu về lisp thì khá nhiều. Đây là một trong số đó mà tôi đã đọc và cảm thấy phù hợp với mình. Bạn có thể tham khảo. Trong tài liệu này tôi tự dịch ra tiếng Việt để học nên có thể có nhiều sai sót do trình độ còn kém. Bạn có thể tham khảo bản gốc bằng tiếng Anh mà tôi vẫn giữ nguyên trong đó. Chỗ nào bạn không rõ có thể post lên để cùng trao đổi nhé.
http://www.cadviet.c...sp_tu_hoc_1.doc


Em dow ve rồi pác à! :s_big: để tối nay về em luyện, em cảm ơn pác nhá, em mới nhờ mà đã có người giúp rồi, ôi!sống trên đời quý nhau cái tình người là thế. Bữa nào rảnh em với pác đi làm vài ve nhẩy !!! :cheers:
  • 0

#40 vminh_ct

vminh_ct

    biết lệnh stretch

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

Đã gửi 02 February 2009 - 11:17 PM

Bác ssp cho em hỏi đoạn code này có nghĩa như thế nào,các hàm if, not ,tblsearch có nghĩa là như thế nào???
(defun layer_style ()
(if (not (tblsearch "layer" "7TEXT_45" ))
(command "-layer" "new" "7TEXT_45" "color" 45 "7TEXT_45" ""))
(if (not (tblsearch "layer" "8THEP_1" ))
(command "-layer" "new" "8THEP_1" "color" 1 "8THEP_1" ""))
(if (not (tblsearch "layer" "1TIM_99" ))
(command "-layer" "new" "1TIM_99" "color" 99 "1TIM_99" "L" "DASHDOT" "1TIM_99" "")))
  • 0
" Sống trên đời cần có 1 tấm lòng,để gió mãi cuốn đi"