Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
* * * - - 3 Bình chọn

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


  • Please log in to reply
493 replies to this topic

#321 t031285

t031285

    biết vẽ rectang

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

Đã gửi 25 June 2011 - 07:12 AM

Setq chứ không phải getq bạn ạ

Cảm ơn bạn,mình lộn,đã sửa lại nhưng sau khi nhập Bề rộng cổ móng thì nó báo:; error: bad argument type: numberp: nil.Mong các bác chỉ giúp.Thanks.
(initget 1 "D B")
(setq res (getkword "\n<M.BANG/M.DON><B/D>:"))
(setq p1 (getpoint "\nDiem chen:")
l1 (getreal "\nBe rong mong:")
l2 (getreal "\nBe rong co mong:")
l3 (/ (- l1 l2) 2)
h1 (getreal "\nChieu cao ben mong:")
h2 (getreal "\nChieu cao phan nghieng:")
h3 (getreal "\nChieu cao co mong:")
bv (getreal "\nBe day lop bao ve:")
(setq dkt 25)
(initget 6)
(setq d (getreal (strcat "\nduong kinh thep (mm) <" (itoa dkt) ">: ")))
(if (null d) (setq d dkt))
(setq n (getint "\nS.luong thep day mong:")
)



  • 0

#322 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 25 June 2011 - 08:47 AM

Cảm ơn bạn,mình lộn,đã sửa lại nhưng sau khi nhập Bề rộng cổ móng thì nó báo:; error: bad argument type: numberp: nil.Mong các bác chỉ giúp.Thanks.

(initget 1 "D B")
(setq res (getkword "\n<M.BANG/M.DON><B/D>:"))
(setq p1 (getpoint "\nDiem chen:")
l1 (getreal "\nBe rong mong:")
l2 (getreal "\nBe rong co mong:")
l3 (/ (- l1 l2) 2)
h1 (getreal "\nChieu cao ben mong:")
h2 (getreal "\nChieu cao phan nghieng:")
h3 (getreal "\nChieu cao co mong:")
bv (getreal "\nBe day lop bao ve:")
(setq dkt 25)
(initget 6)
(setq d (getreal (strcat "\nduong kinh thep (mm) <" (itoa dkt) ">: ")))
(if (null d) (setq d dkt))
(setq n (getint "\nS.luong thep day mong:")
)


Bạn xem lại ( và )
Bạn mở hàm bằng ( thì Kết thúc hàm nào thì phải ) hàm đó.
Bạn mắc phải cái lỗi là : Mở ngoặc 1 hàm nào đó, bạn chưa đóng ngoặc hàm đó, mà bạn lại mở ngoặc cho hàm khác => Thành ra bị lỗi.
Cái lỗi này Tue_NV hy vọng bạn tự sửa được
Chúc thành công
  • 0

#323 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 25 June 2011 - 08:52 AM

Mới nhìn qua đã thấy bạn thiếu dấu đóng ngoặc cho dãy setq rồi. Lisp thì không thể vội được bạn ơi
  • 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


#324 t031285

t031285

    biết vẽ rectang

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

Đã gửi 25 June 2011 - 09:06 AM

Mình đã sửa lại như vầy rồi mà vẫn báo lỗi như cũ:
(initget 1 "D B") (setq res (getkword "\n<M.BANG/M.DON><B/D>:")) (setq p1 (getpoint "\nDiem chen:") l1 (getreal "\nBe rong mong:") l2 (getreal "\nBe rong co mong:") l3 (/ (- l1 l2) 2) h1 (getreal "\nChieu cao ben mong:") h2 (getreal "\nChieu cao phan nghieng:") h3 (getreal "\nChieu cao co mong:") bv (getreal "\nBe day lop bao ve:") (setq dkt 25) (initget 6) (setq d (getreal (strcat "\nduong kinh thep (mm) <" (itoa dkt) ">: "))) (if (null d) (setq d dkt)) (setq n (getint "\nS.luong thep day mong:")) )
Mong các bác giúp đỡ,chập chững tìm hiểu nên chưa biết hết.Thanks.
  • 0

#325 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 25 June 2011 - 09:15 AM

Mình đã sửa lại như vầy rồi mà vẫn báo lỗi như cũ:

(initget 1 "D B") (setq res (getkword "\n<M.BANG/M.DON><B/D>:")) (setq p1 (getpoint "\nDiem chen:") l1 (getreal "\nBe rong mong:") l2 (getreal "\nBe rong co mong:") l3 (/ (- l1 l2) 2) h1 (getreal "\nChieu cao ben mong:") h2 (getreal "\nChieu cao phan nghieng:") h3 (getreal "\nChieu cao co mong:") bv (getreal "\nBe day lop bao ve:") (setq dkt 25) (initget 6) (setq d (getreal (strcat "\nduong kinh thep (mm) <" (itoa dkt) ">: "))) (if (null d) (setq d dkt)) (setq n (getint "\nS.luong thep day mong:")) )
Mong các bác giúp đỡ,chập chững tìm hiểu nên chưa biết hết.Thanks.

Như vầy là như nào ??? Mình thấy bạn âm thầm thêm dấu ngoặc ở cuối hàm, trong khi các hàm setq thì lại không đóng ngoặc.Bạn nên thêm cái dấu đóng ngoặc đằng sau chỗ đặt bv = Bề dày lớp bảo vệ đi ^^ Bạn không để ý lời bác Tuệ rồi :)
  • 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


#326 t031285

t031285

    biết vẽ rectang

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

Đã gửi 25 June 2011 - 09:33 AM

Thành thật cảm ơn bác,e đã sửa theo như bác nói nhưng sau khi nhập bề dày lớp bảo vệ thì nó không tiếp tục lệnh.Mong bác dành chút thời gian sửa hoàn chỉnh giùm e.Mong tin bác.
(initget 1 "D B")
(setq res (getkword "\n<M.BANG/M.DON><B/D>:"))
(setq p1 (getpoint "\nDiem chen:")
l1 (getreal "\nBe rong mong:")
l2 (getreal "\nBe rong co mong:")
l3 (/ (- l1 l2) 2)
h1 (getreal "\nChieu cao ben mong:")
h2 (getreal "\nChieu cao phan nghieng:")
h3 (getreal "\nChieu cao co mong:")
bv (getreal "\nBe day lop bao ve:"))
(setq dkt 25))
(initget 6)
(setq d (getreal (strcat "\nduong kinh thep (mm) <" (itoa dkt) ">: ")))
(if (null d) (setq d dkt))
(setq n (getint "\nS.luong thep day mong:")
)

  • -1

#327 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 25 June 2011 - 09:52 AM

(setq dkt 25))
Dư kìa ông.
  • 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


#328 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 708 (tốt)

Đã gửi 25 June 2011 - 01:13 PM

Thành thật cảm ơn bác,e đã sửa theo như bác nói nhưng sau khi nhập bề dày lớp bảo vệ thì nó không tiếp tục lệnh.Mong bác dành chút thời gian sửa hoàn chỉnh giùm e.Mong tin bác.

(initget 1 "D B")
(setq res (getkword "\n<M.BANG/M.DON><B/D>:"))
(setq p1 (getpoint "\nDiem chen:")
l1 (getreal "\nBe rong mong:")
l2 (getreal "\nBe rong co mong:")
l3 (/ (- l1 l2) 2)
h1 (getreal "\nChieu cao ben mong:")
h2 (getreal "\nChieu cao phan nghieng:")
h3 (getreal "\nChieu cao co mong:")
bv (getreal "\nBe day lop bao ve:"))
(setq dkt 25))
(initget 6)
(setq d (getreal (strcat "\nduong kinh thep (mm) <" (itoa dkt) ">: ")))
(if (null d) (setq d dkt))
(setq n (getint "\nS.luong thep day mong:")
)

Thôi thì mình sửa một lần cho bạn tham khảo vậy.

(initget 1 "D B")
(setq res (getkword "\n<M.BANG/M.DON><B/D>:"))
(setq p1 (getpoint "\nDiem chen:")
l1 (getreal "\nBe rong mong:")
l2 (getreal "\nBe rong co mong:")
l3 (/ (- l1 l2) 2)
h1 (getreal "\nChieu cao ben mong:")
h2 (getreal "\nChieu cao phan nghieng:")
h3 (getreal "\nChieu cao co mong:")
bv (getreal "\nBe day lop bao ve:")
dkt 25
)
(initget 6)
(setq d (getreal (strcat "\nduong kinh thep (mm) <" (itoa dkt) ">: ")))
(if (null d) (setq d dkt))
(setq n (getint "\nS.luong thep day mong:"))

  • 1
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#329 duchieu0205

duchieu0205

    biết vẽ line

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

Đã gửi 27 June 2011 - 01:00 PM

Em có việc này nhờ các anh chị trên diễn đàn giúp đỡ. Em dùn hàm ssget để chọn các block có tên cho trước trong bản vẽ:

(setq nhomdau (ssget
'((-4 . "<OR")
(-4 . "<AND")(0 . "INSERT")(2 . "1a")(-4 . "AND>")
(-4 . "<AND")(0 . "INSERT")(2 . "1b")(-4 . "AND>")
(-4 . "<AND")(0 . "INSERT")(2 . "1c")(-4 . "AND>")
(-4 . "<AND")(0 . "INSERT")(2 . "1d")(-4 . "AND>")
(-4 . "<AND")(0 . "INSERT")(2 . "1e")(-4 . "AND>")
(-4 . "OR>"))
)
)
Vấn đề ở chỗ em muốn tách "nhomdau" thành các nhóm nhỏ để xử lý ví dụ như:
Các block có tên "1a" vào "nhom1"
Các block có tên "1b" vào "nhom2"
Các block có tên "1c"; "1e" ; "1d" vào "nhom3"
Mong các anh chị dành thời gian giúp đỡ cho em! Em xin được cám ơn trước mọi người
  • 0

#330 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 27 June 2011 - 02:09 PM

Em có việc này nhờ các anh chị trên diễn đàn giúp đỡ. Em dùn hàm ssget để chọn các block có tên cho trước trong bản vẽ:

(setq nhomdau (ssget
'((-4 . "<OR")
(-4 . "<AND")(0 . "INSERT")(2 . "1a")(-4 . "AND>")
(-4 . "<AND")(0 . "INSERT")(2 . "1b")(-4 . "AND>")
(-4 . "<AND")(0 . "INSERT")(2 . "1c")(-4 . "AND>")
(-4 . "<AND")(0 . "INSERT")(2 . "1d")(-4 . "AND>")
(-4 . "<AND")(0 . "INSERT")(2 . "1e")(-4 . "AND>")
(-4 . "OR>"))
)
)
Vấn đề ở chỗ em muốn tách "nhomdau" thành các nhóm nhỏ để xử lý ví dụ như:
Các block có tên "1a" vào "nhom1"
Các block có tên "1b" vào "nhom2"
Các block có tên "1c"; "1e" ; "1d" vào "nhom3"
Mong các anh chị dành thời gian giúp đỡ cho em! Em xin được cám ơn trước mọi người

Truớc tiên để chọn các Block có tên 1a,1b,1c,1d và 1e trên bản vẽ, có thể viết như sau :
(setq ss (ssget '((0 . "INSERT")(2 . "1a,1b,1c,1d,1e"))) )

Sau đó là duyệt qua tập ss này:
- lấy tên (Block Name) của từng đối tuợng
- tùy theo d/kiện lọc mà đưa vào các tập tưong ứng. (sử dụng hàm ssadd)

tham khảo :
(defun c:test(/ origin ss_1b ss_1a1c)

(defun ssfilter (ss str / e i res)
(setq res (ssadd))
(setq i -1 )
(while (setq e (ssname ss (setq i (1+ i))))
(if (wcmatch (cdr (assoc 2 (entget e))) str)
(ssadd e res) ))
res)

(setq origin (ssget '((0 . "INSERT")(2 . "1a,1b,1c,1d,1e"))) )
(setq ss_1b (ssfilter origin "1b"))
(setq ss_1a1c (ssfilter origin "1a,1c"))
)

  • 1

#331 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 June 2011 - 02:46 PM

Truớc tiên để chọn các Block có tên 1a,1b,1c,1d và 1e trên bản vẽ, có thể viết như sau :
(setq ss (ssget '((0 . "INSERT")(2 . "1a,1b,1c,1d,1e"))) )

Sau đó là duyệt qua tập ss này:
- lấy tên (Block Name) của từng đối tuợng
- tùy theo d/kiện lọc mà đưa vào các tập tưong ứng. (sử dụng hàm ssadd)

tham khảo :

(defun c:test(/ origin ss_1b ss_1a1c)

(defun ssfilter (ss str / e i res)
(setq res (ssadd))
(setq i -1 )
(while (setq e (ssname ss (setq i (1+ i))))
(if (wcmatch (cdr (assoc 2 (entget e))) str)
(ssadd e res) ))
res)

(setq origin (ssget '((0 . "INSERT")(2 . "1a,1b,1c,1d,1e"))) )
(setq ss_1b (ssfilter origin "1b"))
(setq ss_1a1c (ssfilter origin "1a,1c"))
)

Hoặc ngắn gọn hơn 1 tẹo tẹo là :
(ssget '((0 . "INSERT")(2 . "1[abcde]")))
P/S bác GiaBach : hàm lọc nếu đưa 2 + điều kiện ra làm list đối số thì đẹp hơn bác nhỉ, có thể dùng cho việc tách theo các điều kiện khác.(srr nãy e type nhầm ^^)
Tuy nhiên câu này nên post bên Hỏi về Lisp thì đúng hơn, em đã xóa bài 1 lần vì vi phạm chủ đề, nhắc nhở bạn duchieu0205 lần nữa nhé ^^
  • 1

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


#332 duchieu0205

duchieu0205

    biết vẽ line

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

Đã gửi 27 June 2011 - 03:13 PM

Cám ơn anh GiabBach! Thật là đi một ngày đàng học một sàng khôn.
  • -2

#333 hugo75

hugo75

    biết vẽ polygon

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

Đã gửi 29 June 2011 - 09:21 PM

Nhờ các bác sửa và giải thích giùm e đoạn này:
(command 	".pline" p1 "W" 0 0 (setq p (polar p1 (/ pi 2) h1)) (setq p (list (+ (car p) l3) (+ (cadr p) h2))) (setq p (polar p (/ pi 2) h3)) ""
Thắc mắc e gửi file đính kèm.Mong các bác chỉ giúp.Thanks.
http://www.cadviet.c...drawing1_68.dwg
  • 0

#334 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 29 June 2011 - 10:05 PM

Nhờ các bác sửa và giải thích giùm e đoạn này:

(command 	".pline" p1 "W" 0 0 (setq p (polar p1 (/ pi 2) h1)) (setq p (list (+ (car p) l3) (+ (cadr p) h2))) (setq p (polar p (/ pi 2) h3)) ""
Thắc mắc e gửi file đính kèm.Mong các bác chỉ giúp.Thanks.
http://www.cadviet.c...drawing1_68.dwg

Hề hề hề,
1/- Đoạn code bạn pót còn thiếu cái dấu ngoặc để đóng hàm command lại. Phải thế ni mới đúng:
(command ".pline" p1 "W" 0 0 (setq p (polar p1 (/ pi 2) h1)) (setq p (list (+ (car p) l3) (+ (cadr p) h2))) (setq p (polar p (/ pi 2) h3)) "")
2/- Đoạn code trên dùng để vẽ một đoạn polyline. Cụ thể như sau:
( : để bắt đầu một hàm lisp
command : là tên hàm lisp dùng để gọi một lệnh trong CAD
".pline" : là tên lệnh trong CAD
p1: là biến ứng với một điểm đã xác định trước dùng để bắt đầu vẽ polyline từ điểm đó.
"W": Là tham số của lệnh vẽ pline chỉ độ rộng của đường polyline
0: Chỉ độ rộng tại điểm bắt đầu của polyline được vẽ
0: Chỉ độ rộng khi kết thúc của polyline
(setq p (polar p1 (/ pi 2) h1)): là hàm xác định điểm kế tiếp p của polyline. P được lấy theo tọa độ tương đối độc cực so với p1, có độ dài là h1 và theo hướng pi/2 so với trục x.
(setq p (list (+ (car p) l3) (+ (cadr p) h2))): là hàm xác định điểm kế tiếp p của polyline. P mới được lấy theo tọa độ tuyệt đối với tọa độ x mới lớn hơn tọa độ x cũ là l3 và tọa độ y mới lớn hơn tọa độ y cũ là h2
(setq p (polar p (/ pi 2) h3)) : là hàm xác định điểm kế tiếp p của polyline. P mới này được lấy theo tọa độ tương đối độc cực so với p cũ , bạn hãy tự hiểu nốt nhé
"" : là ký tự để lisp hiểu rằng nhấn Enter trên bàn phím khi thực hiện hàm lệnh command
): để đóng hàm lệnh command lại.
3/- Từ đây bạn có thể tự bổ sung thêm một điểm p nữa vào hàm để có thể vẽ được cái polyline như bạn muốn. Hãy thử làm xem sao, chớ ngồi chờ sung chín e hơi lâu đó. Nếu bạn làm không được thì hãy post cái bạn đã làm lên để được hướng dẫn tiếp nhé.
Hề hề hề,...
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#335 790312

790312

    biết lệnh fillet

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

Đã gửi 27 July 2011 - 08:40 PM

Mình dùng đoạn lisp sau:
.....
(setq btbv 30)
(setq BV (* (getreal (strcat "Chieu day lop bao ve < " (itoa btbv) " >: ")) 5))
(if (null BV) (setq BV btbv))
......
Để mặc định lớp bảo vệ là 30 enter luôn khỏi nhập nhưng nó lại báo lỗi:; error: bad argument type: numberp: nil.Còn nếu nhập số từ bàn phím thì nó thực hiện lệnh bình thường.Mong các bác chỉ giúp.Thanks.
  • 0

#336 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 27 July 2011 - 10:09 PM

Mình dùng đoạn lisp sau:
.....
(setq btbv 30)
(setq BV (* (getreal (strcat "Chieu day lop bao ve < " (itoa btbv) " >: ")) 5))
(if (null BV) (setq BV btbv))
......

Để mặc định lớp bảo vệ là 30 enter luôn khỏi nhập nhưng nó lại báo lỗi:; error: bad argument type: numberp: nil.Còn nếu nhập số từ bàn phím thì nó thực hiện lệnh bình thường.Mong các bác chỉ giúp.Thanks.

Lỗi là đúng rồi, bởi lẽ khi bạn enter thì (getreal (strcat "Chieu day lop bao ve < " (itoa btbv) " >: ")) trả về Nil nên (* nil 5) báo lỗi.
Muốn enter đúng thì bạn phải viết, chẳng hạn như thế này:
.....
(setq btbv 30)
(setq BV (getreal (strcat "Chieu day lop bao ve < " (itoa btbv) " >: ")))
(setq BV (if (null BV) btbv (* 5 BV)))
......

  • 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.


#337 790312

790312

    biết lệnh fillet

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

Đã gửi 27 July 2011 - 10:18 PM

Lỗi là đúng rồi, bởi lẽ khi bạn enter thì (getreal (strcat "Chieu day lop bao ve < " (itoa btbv) " >: ")) trả về Nil nên (* nil 5) báo lỗi.
Muốn enter đúng thì bạn phải viết:
.....
(setq btbv 30)
(setq BV (getreal (strcat "Chieu day lop bao ve < " (itoa btbv) " >: ")))
(setq BV (if (null BV) btbv (* 5 BV)))
......

Mình muốn đặt BV bằng 30*5=150,sửa theo bạn thì nó hiểu BV=30 thôi.Bạn xem sửa giúp.
  • 0

#338 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 27 July 2011 - 10:25 PM

Mình muốn đặt BV bằng 30*5=150,sửa theo bạn thì nó hiểu BV=30 thôi.Bạn xem sửa giúp.

Định hỏi bạn vì bạn đang thiếu 1 ý, nhưng bạn đã nói rồi thì sửa như thế này:
Thay: (setq BV (if (null BV) btbv (* 5 BV)))
Bởi: (setq BV (if (null BV) (* 5 btbv) (* 5 BV)))
  • 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.


#339 hoanguct

hoanguct

    biết vẽ line

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

Đã gửi 27 July 2011 - 11:58 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

thanks bác
  • 0

#340 790312

790312

    biết lệnh fillet

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

Đã gửi 30 July 2011 - 10:29 PM

Đoạn code sau:
(COMMAND "PLINE" PTD ptc pt1 "")
(command "fillet" "r" "75")
(command "fillet" "p" "l")
Theo e hiểu sẽ vẽ 1 polyline từ điểm PTD đến ptc đến pt1.Dòng thứ 2 sẽ bo plyline này 1 góc có bán kính 75 còn dòng thứ 3 để làm gì?Mong các bác giải thích hộ.
  • 0