Đến nội dung


Hình ảnh
- - - - -

Thư giãn cùng AutoLisp!


  • Please log in to reply
11 replies to this topic

#1 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 06 June 2007 - 09:31 AM

Chào các bạn,
Ssg lập topic này với mong muốn giúp các bạn yêu thích lisp (nhưng còn ngại ngần) nhanh chóng vượt qua giai đoạn cơ bản ban đầu. Tên của topic ngụ ý rằng, lisp không có gì cao xa ghê gớm. Nó là một tính năng mở rộng của AutoCAD tặng cho người dùng. Hãy đến với lisp với tư thế nhẹ nhàng, thoải mái như khi bạn bắt đầu chơi trò xếp gạch (brick game), thay vì xếp các viên gạch thì xếp các chữ, số và dấu ngoặc!
Xin nói thêm, bản thân ssg không phải dân IT, cũng không là nhà sư phạm. Ssg chỉ là dân kỹ thuật, mày mò tự học lisp để phục vụ công việc của mình. Cái mà ssg muốn chia sẻ cùng các bạn là chút ít kiến thức và kinh nghiệm mà bản thân thu lượm được. Theo ssg, cách học hiệu quả nhất là thông qua ví dụ thực hành, càng đơn giản càng tốt. Khi đã có nền tảng tương đối, sẽ nâng dần độ phức tạp lên.
Để bắt đầu, bạn cần 2 điều kiện:
1) Biết sử dụng tương đối thành thạo AutoCAD
2) Có một cuốn sách về lisp (cuốn nào cũng được). Nếu vốn liếng English kha khá thì không cần sách vì Help của Acad chính là cuốn sách tuyệt vời nhất.
Bạn nào đã có chút kinh nghiệm về lập trình bằng các ngôn ngữ khác là lợi thế đáng kể, nhưng nếu không biết cũng chẳng sao, chúng ta sẽ bắt đầu từ 0.
Các bạn giải nén file train01.zip, đọc và làm theo hướng dẫn. Chúc các bạn thành công và cảm thấy thật sự được "thư giãn" với lisp!

http://www.cadviet.com/upfiles/Train01.zip

Ssg cũng kêu gọi tất cả các bạn đã am hiểu về lisp tích cực ủng hộ và giúp đỡ các bạn mới. Mong rằng, cộng đồng Lisp của CadViet ngày càng đông vui và hùng mạnh.
Cám ơn tất cả các bạn,
Ssg
  • 1

#2 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 27 June 2007 - 09:37 AM

Ssg cũng kêu gọi tất cả các bạn đã am hiểu về lisp tích cực ủng hộ và giúp đỡ các bạn mới. Mong rằng, cộng đồng Lisp của CadViet ngày càng đông vui và hùng mạnh.
Cám ơn tất cả các bạn,
Ssg


Sao lâu quá hông thấy bác viết nửa vậy.
  • 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


#3 lamtecco2

lamtecco2

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 715 Bài viết
Điểm đánh giá: 856 (rất tốt)

Đã gửi 01 July 2007 - 07:04 PM

Các bạn hãy cùng thư giãn với Acad bằng các Game nhỏ viết bằng Autolisp . Các game này cũng lấy ý tưởng từ các minigame kinh điển như Swars,Battle Ship,Troy chỉ có điều giao diện của nó chính là màn hình Acad của bạn ,không cần cài đặt và chẳng tốn chút nào tài nguyên hệ thống.

Hình đã gửi

Download!
  • 0

#4 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 July 2007 - 08:15 AM

Sao lâu quá hông thấy bác viết nửa vậy.


Thời gian qua quả thật ssg rất bận, mong các bạn thông cảm.
Mời các bạn tiếp tục "thư giãn" cùng Lisp!

http://www.cadviet.com/upfiles/Train02.rar
  • 0

#5 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 11 July 2007 - 03:03 PM

Mời các bạn tiếp tục với bài 3:

http://www.cadviet.com/upfiles/Train03.rar
  • 0

#6 h2c

h2c

    biết vẽ ellipse

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

Đã gửi 31 July 2007 - 01:08 AM

Tại sao khi viết thông báo ra màn hình , phải luôn viết "\nTHONGBAO" , mình bỏ \n đi nó vẫn viết bình thường mà ?
Trong đoạn vd của bạn :
(defun BatDauVe() (setq OldOs (getvar "osmode")) (setvar "osmode" 0))
;;;----------------------------------------------------------------
(defun KetThucVe() (setvar "osmode" OldOs) (princ))
;;;----------------------------------------------------------------
(defun NhapSoLieu()
(setq
Rong (getreal "\nChieu rong: ")
Cao (getreal "\nChieu cao: ")
CaoChop (getreal "\nChieu cao chop: ")
DiemChuan (getpoint "\nDiem chuan: ")
)
)
;;;----------------------------------------------------------------
(defun VeNha ( W H1 H2 p1 / p2 p3 p4 p5 OldOs)
(setq
p2 (polar p1 0.0 W)
p3 (polar p2 (/ pi 2) H1)
p4 (polar p3 pi W)
p5 (list (+ (car p4) (/ W 2)) (+ (cadr p4) H2))
)
(BatDauVe)
(command "line" p1 p2 p3 p4 "c")
(command "line" p3 p5 p4 "")
(KetThucVe)
)
;;;----------------------------------------------------------------
(defun C:NHA (/ Rong Cao CaoChop DiemChuan)
(NhapSoLieu)
(VeNha Rong Cao CaoChop DiemChuan)
)
Ở các biến tô đỏ , bạn chưa nhập giá trị cho nó thì chương trình biết đâu mà chạy . Bài bạn viết thật dễ hiểu , nếu có thời gian , bạn tiếp tục bài 4 như đã " quảng cáo " đi , mình đang nôn quá .
  • 0

#7 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 July 2007 - 07:37 AM

Tại sao khi viết thông báo ra màn hình , phải luôn viết "\nTHONGBAO" , mình bỏ \n đi nó vẫn viết bình thường mà ?
Trong đoạn vd của bạn :
(defun BatDauVe() (setq OldOs (getvar "osmode")) (setvar "osmode" 0))
;;;----------------------------------------------------------------
(defun KetThucVe() (setvar "osmode" OldOs) (princ))
;;;----------------------------------------------------------------
(defun NhapSoLieu()
(setq
Rong (getreal "\nChieu rong: ")
Cao (getreal "\nChieu cao: ")
CaoChop (getreal "\nChieu cao chop: ")
DiemChuan (getpoint "\nDiem chuan: ")
)
)
;;;----------------------------------------------------------------
(defun VeNha ( W H1 H2 p1 / p2 p3 p4 p5 OldOs)
(setq
p2 (polar p1 0.0 W)
p3 (polar p2 (/ pi 2) H1)
p4 (polar p3 pi W)
p5 (list (+ (car p4) (/ W 2)) (+ (cadr p4) H2))
)
(BatDauVe)
(command "line" p1 p2 p3 p4 "c")
(command "line" p3 p5 p4 "")
(KetThucVe)
)
;;;----------------------------------------------------------------
(defun C:NHA (/ Rong Cao CaoChop DiemChuan)
(NhapSoLieu)
(VeNha Rong Cao CaoChop DiemChuan)
)
Ở các biến tô đỏ , bạn chưa nhập giá trị cho nó thì chương trình biết đâu mà chạy . Bài bạn viết thật dễ hiểu , nếu có thời gian , bạn tiếp tục bài 4 như đã " quảng cáo " đi , mình đang nôn quá .

Trước tiên cám ơn bạn đã có phản hồi, mình nghĩ chắc mọi người ít quan tâm nên chưa tiếp tục. Xin reply bạn:
1) "\n" nghĩa là xuống dòng (new line), dùng nó khi mình muốn thông báo hiện ra ở đầu dòng, bất kể trước đó như thế nào.
2) Bạn chú ý dòng: (defun VeNha ( W H1 H2 p1 / p2 p3 p4 p5 OldOs). Hàm VeNha có 4 tham số (parameter): W, H1, H2 và p1 (bạn tô đỏ còn thiếu p1!), đương nhiên là chúng đã được khai báo ở dạng variable, không cần value. Khi áp dụng, bạn phải cung cấp cho VeNha đủ các tham số như khi define function.
Bạn chú ý, ở function NhapSoLieu, mình có thể viết:
(defun NhapSoLieu()
(setq
W (getreal "\nChieu rong: ")
H1 (getreal "\nChieu cao: ")
H2 (getreal "\nChieu cao chop: ")
p1 (getpoint "\nDiem chuan: ")
)
)
và áp dụng:
(NhapSoLieu)
(VeNha W H1 H2 p1)
Nhưng nếu viết như vậy, người đọc dễ bị đánh lừa vì các biến khi định nghĩa hàm và áp dụng hàm có tên giống hệt nhau. Mình đã cố tình dùng (VeNha Rong Cao CaoChop DiemChuan) để người đọc không bị ám ảnh về hình thức mà chú trọng hơn đến bản chất của hàm.
Tóm lại là gì? Bạn xem lại câu kết ở cuối bài 2 sẽ hiểu ý mình.
Chúc vui.
  • 0

#8 tienlagiay_dxt

tienlagiay_dxt

    biết lệnh trim

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

Đã gửi 07 August 2007 - 02:23 PM

Trước tiên cám ơn bạn đã có phản hồi, mình nghĩ chắc mọi người ít quan tâm nên chưa tiếp tục. Xin reply bạn:
1) "\n" nghĩa là xuống dòng (new line), dùng nó khi mình muốn thông báo hiện ra ở đầu dòng, bất kể trước đó như thế nào.
2) Bạn chú ý dòng: (defun VeNha ( W H1 H2 p1 / p2 p3 p4 p5 OldOs). Hàm VeNha có 4 tham số (parameter): W, H1, H2 và p1 (bạn tô đỏ còn thiếu p1!), đương nhiên là chúng đã được khai báo ở dạng variable, không cần value. Khi áp dụng, bạn phải cung cấp cho VeNha đủ các tham số như khi define function.
Bạn chú ý, ở function NhapSoLieu, mình có thể viết:
(defun NhapSoLieu()
(setq
W (getreal "\nChieu rong: ")
H1 (getreal "\nChieu cao: ")
H2 (getreal "\nChieu cao chop: ")
p1 (getpoint "\nDiem chuan: ")
)
)
và áp dụng:
(NhapSoLieu)
(VeNha W H1 H2 p1)
Nhưng nếu viết như vậy, người đọc dễ bị đánh lừa vì các biến khi định nghĩa hàm và áp dụng hàm có tên giống hệt nhau. Mình đã cố tình dùng (VeNha Rong Cao CaoChop DiemChuan) để người đọc không bị ám ảnh về hình thức mà chú trọng hơn đến bản chất của hàm.
Tóm lại là gì? Bạn xem lại câu kết ở cuối bài 2 sẽ hiểu ý mình.
Chúc vui.

ban mau ra tiep phan 4 nhu da hua di ssg, rat nhiu` fan dang cho` ban
  • 0

#9 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 13 August 2007 - 07:16 AM

Thời gian rồi ssg rất bận, mong các bạn thông cảm.
Mời các bạn tiếp tục:

http://www.cadviet.com/upfiles/Relax.zip
  • 0

#10 vbao

vbao

    biết lệnh array

  • CADViet Team
  • PipPipPip
  • 184 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 14 August 2007 - 09:02 AM

Thời gian rồi ssg rất bận, mong các bạn thông cảm.
Mời các bạn tiếp tục:

http://www.cadviet.com/upfiles/Relax.zip


cảm ơn anh ssg, bài viết rất súc tích
  • 0

#11 linhepu

linhepu

    Chưa sử dụng CAD

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

Đã gửi 14 August 2007 - 09:53 AM

Cảm on SSG đã đề xướng topic này, mình biết lisp rất cần thiết cho dân kỹ thuật, mình hiện tại là dân hệ thống điện, tuy sử dụng cad không nhiêu như dân xây dựng và kiến trúc nhưng có một số lĩnh vực mà thấy nếu áp dụng và thì rất tốt.
Nhất là làm tư vấn điện. Nên mình đang học lisp, rất mong được sự trao đổi của mọi người.
Có ai có file lisp về phần chạy tạo mặt cắt dọc tuyến thì cho mình tham khảo với.
  • 0

#12 tivanteo

tivanteo

    biết vẽ circle

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

Đã gửi 31 March 2010 - 10:21 PM

Chào các bạn,
Ssg lập topic này với mong muốn giúp các bạn yêu thích lisp (nhưng còn ngại ngần) nhanh chóng vượt qua giai đoạn cơ bản ban đầu. Tên của topic ngụ ý rằng, lisp không có gì cao xa ghê gớm. Nó là một tính năng mở rộng của AutoCAD tặng cho người dùng. Hãy đến với lisp với tư thế nhẹ nhàng, thoải mái như khi bạn bắt đầu chơi trò xếp gạch (brick game), thay vì xếp các viên gạch thì xếp các chữ, số và dấu ngoặc!
Xin nói thêm, bản thân ssg không phải dân IT, cũng không là nhà sư phạm. Ssg chỉ là dân kỹ thuật, mày mò tự học lisp để phục vụ công việc của mình. Cái mà ssg muốn chia sẻ cùng các bạn là chút ít kiến thức và kinh nghiệm mà bản thân thu lượm được. Theo ssg, cách học hiệu quả nhất là thông qua ví dụ thực hành, càng đơn giản càng tốt. Khi đã có nền tảng tương đối, sẽ nâng dần độ phức tạp lên.
Để bắt đầu, bạn cần 2 điều kiện:
1) Biết sử dụng tương đối thành thạo AutoCAD
2) Có một cuốn sách về lisp (cuốn nào cũng được). Nếu vốn liếng English kha khá thì không cần sách vì Help của Acad chính là cuốn sách tuyệt vời nhất.
Bạn nào đã có chút kinh nghiệm về lập trình bằng các ngôn ngữ khác là lợi thế đáng kể, nhưng nếu không biết cũng chẳng sao, chúng ta sẽ bắt đầu từ 0.
Các bạn giải nén file train01.zip, đọc và làm theo hướng dẫn. Chúc các bạn thành công và cảm thấy thật sự được "thư giãn" với lisp!

http://www.cadviet.com/upfiles/Train01.zip

Ssg cũng kêu gọi tất cả các bạn đã am hiểu về lisp tích cực ủng hộ và giúp đỡ các bạn mới. Mong rằng, cộng đồng Lisp của CadViet ngày càng đông vui và hùng mạnh.
Cám ơn tất cả các bạn,
Ssg

mọi người tham khảo lisp này vừa giải trí vừa học tập
http://www.cadviet.c...94911152004.zip
  • 0