Đến nội dung


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

[Hỏi] Cùng nhau học LISP


  • Please log in to reply
171 replies to this topic

#121 huynhphuongdesigner

huynhphuongdesigner

    biết vẽ circle

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

Đã gửi 10 November 2011 - 09:11 AM

Hề hề hề,
Huynh hay đệ còn chửa biết. Nhưng mà:
Đúng là cái thằng fillet này cũng hơi oái oăm. Theo ngu ý của mình thì cái lỗi ni có nhẽ do cái biến x của bạn hơi bị ..... thừa. Bi giờ bạn thử nhập giá trị biến x bằng với giá trị của biến o coi sao nhé.

Bác Bình mình đã thử theo cách bạn, Cung arc và line không cắt nhau. Heee thiệt là làm khổ bác quá đi.
  • 0

#122 huynhphuongdesigner

huynhphuongdesigner

    biết vẽ circle

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

Đã gửi 10 November 2011 - 09:23 AM


(defun c:appo(/ p1 p2 p3 p4 p5 p6 p7 d1 d2 arc1 arc2 a9 os h1)
(setq p1 (getpoint "\ndiem chuan"))
(setq os (getvar "osmode"))
(getvar "osmode" 0)
;;; doi mau
(command "color" 1)
;;;;nhap khoang cach
(setq x (getreal "\nchieu cao:"))
(setq l (getreal "\nchieu dai theo truc x:"))
(setq h (getreal "\nchieu cao cung:"))
(setq o (getreal "\nkhoang cach:"))
(setq p2 (polar p1 (/ pi 2) x))
(command "line" p1 p2 "")
(setq d1 (entlast))
(setq p3 (polar p2 0.0 l))
(setq p4 (polar p3 (-(/ pi 2)) x))
(command "line" p3 p4 "")
(setq d2 (entlast))
;;;;ket thuc mot cai
(setq p5 (polar p2 0.0 (/ l 2)))
(setq p6 (polar p5 (/ pi 2) h))
;;;; ve arc
(command "arc" p3 p6 p2 "")
(setq arc1 (entlast))
;;;; offset
(command "offset" o arc1
p1 "e");;cai nay de offset luon ve phia p1, ko phu thuoc vao vi tri ban dang ve
(setq arc2 (entlast))
(setq p7 (vlax-curve-getEndPoint arc2))
(command "Pline" (nth 1(acet-geom-intersectwith arc2 d1 3)) "a" "S"
p7 (nth 0(acet-geom-intersectwith arc2 d2 3)) "L" p3 "a" "s" p6 p2 "l" "c"
);;cai nay ve lai toan bo hinh thanh mot Pline, ko can phai dung them lenh pedit de noi cac duong
;xoa cac duong cu
(entdel arc2)
(entdel d1)
(entdel d2)
(entdel arc1)
(setq h1 (getreal "\nchieu cao doi tuong:"));;doan nay ban co the dem lenh tren de lisp lam viec lien tuc
(setq a9 (entlast))
(command "extrude" a9 "" h1)
(getvar "osmode" os)
(princ)
)
bạn test lại thử xem! Mình mới áp dụng cách lấy điểm giao nhau giữa 2 đường. Bạn nhớ thanks 2 bác ở trên luôn nha!
:) thân!

Hình đã gửi
1/ Bác Hai oi: mình muốn hai cung này song song. Cái của bác đâu có song song.
2/ Nếu nhập chiều cao lien la 50 nó fillet thanh ra như hình 2.
Bác xem lại nha.
  • 0

#123 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 10 November 2011 - 09:25 AM

Cái vụ extend này bác phải coi chừng đó nghen. Vì nó phụ thuộc vào cái biến x của bạn chủ thớt. Khi x đủ to thì hổng xài extend được mà thậm chí còn phải trim đó bác ạ.


đúng bác ah. Mà e thấy chủ thớt setq điểm hơi bị ngược. Nếu là e thì "điểm chuẩn" ko phải là p1 đâu, mà là p2. vì từ p2 mới vẽ ra dc cái arc1, còn p1 thì chỉ có ý nghĩa định hướng mà thôi, sau này cũng ko xài lại p1 nữa. Nếu setq p2 là chuẩn thì ko cần phải setq thêm p1 và p4. chỉ cần p2 và p3 là đủ vẽ rồi!?
hehhe, cảm ơn bác vụ (acet-geom-intersectwith...) nhờ vậy em thoát cái vụ extend phiền phức!
  • 0
Hình đã gửi

#124 huynhphuongdesigner

huynhphuongdesigner

    biết vẽ circle

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

Đã gửi 10 November 2011 - 09:39 AM


đúng bác ah. Mà e thấy chủ thớt setq điểm hơi bị ngược. Nếu là e thì "điểm chuẩn" ko phải là p1 đâu, mà là p2. vì từ p2 mới vẽ ra dc cái arc1, còn p1 thì chỉ có ý nghĩa định hướng mà thôi, sau này cũng ko xài lại p1 nữa. Nếu setq p2 là chuẩn thì ko cần phải setq thêm p1 và p4. chỉ cần p2 và p3 là đủ vẽ rồi!?
hehhe, cảm ơn bác vụ (acet-geom-intersectwith...) nhờ vậy em thoát cái vụ extend phiền phức!

Bác Hải giải thích các hàm này nha: (setq p7 (vlax-curve-getEndPoint arc2))
(command "Pline" (nth 1(acet-geom-intersectwith arc2 d1 3)) "a" "S"
p7 (nth 0(acet-geom-intersectwith arc2 d2 3)) "L" p3 "a" "s" p6 p2 "l" "c"
). Mình chưa hiểu lắm
  • 0

#125 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 10 November 2011 - 09:40 AM

Hình đã gửi 1/ Bác Hai oi: mình muốn hai cung này song song. Cái của bác đâu có song song. 2/ Nếu nhập chiều cao lien la 50 nó fillet thanh ra như hình 2. Bác xem lại nha.


SRR bạn, mình sửa lại rồi đó!
  • 1
Hình đã gửi

#126 huynhphuongdesigner

huynhphuongdesigner

    biết vẽ circle

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

Đã gửi 10 November 2011 - 09:53 AM

SRR bạn, mình sửa lại rồi đó!

Bác thật tuyệt vời. Sau mình không nghỉ ra Pline. Heeee. Thanks kiu các bác: Bình, Hai, Ha, ketxu. Mong các bác giúp đỡ thêm.....
  • 0

#127 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 10 November 2011 - 09:54 AM

Bạn sửa 2 dòng sau:
Dòng 1
(if (/= "" (setq s (getstring "\nTen diem :" )))
Thành
(if (and (/= "" (setq s (getstring "\nTen diem :" ))) (/= "" (setq cd (getreal "\nCao do: "))))
Và dòng 2

(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3)) f)
Thành
(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3) "\t" (rtos cd 2 3)) f)
  • 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.


#128 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 10 November 2011 - 10:07 AM

Bác Hải giải thích các hàm này nha: (setq p7 (vlax-curve-getEndPoint arc2))
(command "Pline" (nth 1(acet-geom-intersectwith arc2 d1 3)) "a" "S"
p7 (nth 0(acet-geom-intersectwith arc2 d2 3)) "L" p3 "a" "s" p6 p2 "l" "c"
). Mình chưa hiểu lắm


1). (vlax-curve-getEndPoint arc2) : lấy điểm cuối của đường cong arc2
2). (acet-geom-intersectwith arc2 d1 3) : lấy danh sách các giao điểm của đường arc2 và đường d1. Số 3 là xét đến cả việc kéo dài cả 2 đường arc2 và d1 khi tìm điểm giao.
Còn lại thì chắc là dễ với bạn rồi.
Thân thương!
  • 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.


#129 trinhngoctri

trinhngoctri

    biết vẽ pline

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

Đã gửi 10 November 2011 - 10:13 AM

Bạn sửa 2 dòng sau:
Dòng 1
(if (/= "" (setq s (getstring "\nTen diem :" )))
Thành
(if (and (/= "" (setq s (getstring "\nTen diem :" ))) (/= "" (setq cd (getreal "\nCao do: "))))
Và dòng 2

(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3)) f)
Thành
(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3) "\t" (rtos cd 2 3)) f)

xin chân thành cảm ơn, niếu bạn ở Nha Trang thì trưa đi cà phê với mình nhé
  • 0

#130 trinhngoctri

trinhngoctri

    biết vẽ pline

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

Đã gửi 10 November 2011 - 10:14 AM

xin chân thành cảm ơn, niếu bạn ở Nha Trang thì trưa đi cà phê với mình nhé

mà sao mình không gửi bài mới được nhỉ
  • 0

#131 huynhphuongdesigner

huynhphuongdesigner

    biết vẽ circle

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

Đã gửi 10 November 2011 - 10:15 AM


1). (vlax-curve-getEndPoint arc2) : lấy điểm cuối của đường cong arc2
2). (acet-geom-intersectwith arc2 d1 3) : lấy danh sách các giao điểm của đường arc2 và đường d1. Số 3 là xét đến cả việc kéo dài cả 2 đường arc2 và d1 khi tìm điểm giao.
Còn lại thì chắc là dễ với bạn rồi.
Thân thương!

Thanks kiu bác HA. Những lệnh này nằm trong tài liệu nào vậy bạn? Bạn có thể gởi cho mình xem thêm nha.
  • 0

#132 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 10 November 2011 - 10:17 AM

xin chân thành cảm ơn, niếu bạn ở Nha Trang thì trưa đi cà phê với mình nhé


Nhấn "Like this" thay cà phê cũng được, ngộ nhỡ mình ở NT và muốn uống bia thì sao?
  • 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.


#133 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 10 November 2011 - 10:28 AM

P/s mọi người : do có nhiều câu hỏi trong 1 topic, mình hợp nhất chủ đề bạn huynhphuongdesigner lập với chủ đề cùng nhau học lisp để 4room đỡ rối.
Thực ra diễn đàn đang có 3 topic dành cho việc hỏi về các chủ đề lisp, mức độ có khác nhau đôi chút (Hỏi về lisp (giải thuật) - Hướng dẫn lập trình lisp (Tut) - Cùng nhau học Lisp (Begin)..)
- Với các topic cần độc lập, các bạn hãy để tiền tố [Hỏi] đằng trước tiêu đề, và yêu cầu những người khác không bàn đến các vấn đề khác ngoài topic, cũng như hỏi câu hỏi khác trong topic của người khác (nếu không liên quan), như bạn trinhngoctri ở trên.
Mong mọi người thông cảm.
Cảm ơn mọi người :)
  • 2

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


#134 trinhngoctri

trinhngoctri

    biết vẽ pline

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

Đã gửi 10 November 2011 - 10:31 AM

Bia thì mình không biết uống, bác sĩ bảo thế, cái dạ dày của mình không thích 45 độ, khổ thế đấy,
sao bạn giỏi thế mới hỏi đã biết ngay mình mo hết 1 buổi chiều hôm qua mà không được
  • 0

#135 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 10 November 2011 - 10:37 AM

Thanks kiu bác HA. Những lệnh này nằm trong tài liệu nào vậy bạn? Bạn có thể gởi cho mình xem thêm nha.

Các hàm VLAX : trong help của Cad đã có.
Các hàm ACET: lưu truyền trong dân gian, chưa tìm ra tài liệu. Nhưng trên CADViet đã có bài giới thiệu khá nhiều về các hàm này, bạn chịu khó tìm nhé. Hoặc siêu hơn thì tự vào các file lsp trong thư mục express của cad, mở nó ra và tự tìm hiểu, mênh mông bát ngát.
Thân thương!
  • 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.


#136 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 10 November 2011 - 11:05 AM

Bạn sửa 2 dòng sau:
Dòng 1
(if (/= "" (setq s (getstring "\nTen diem :" )))
Thành
(if (and (/= "" (setq s (getstring "\nTen diem :" ))) (/= "" (setq cd (getreal "\nCao do: "))))
Và dòng 2

(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3)) f)
Thành
(write-line (strcat s "\t" (rtos (car pt) 2 3) "\t" (rtos (cadr pt) 2 3) "\t" (rtos cd 2 3)) f)

Hề hề hề,
Bác DoanVanHa ơi, bác định giả nhời ai thì bác nên có cái trích dẫn của người đó chứ nó không đầu không đuôi thế này, thiệt là khổ lắm lắm vì chả biết chỗ mô mà mò. Sở dĩ mình muốn vầy là để còn kiếm tí mót về làm vốn, nhưng bác cất kỹ quá chả mót được.
Hề hề hề,
Chúc bác vui và luôn mạnh.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#137 trinhngoctri

trinhngoctri

    biết vẽ pline

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

Đã gửi 10 November 2011 - 11:16 AM

NHỜ ANH EM VIẾT LISP NÀY NHÉ.
là thế này. Khi mình kích chuột vô các Mốc A, Mốc B, Mốc C v.v.....(Block) thì các thông sô được xuất sang *.txt hay excel gì cũng được. xin chân thành cảm ơn

TÊN K. CÁCH GÓC CAO DỘ
A 0 0 5.935
B 30.371 1620 28' 38" 5.800
C 28.499 0 6.321
  • 0

#138 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 10 November 2011 - 11:19 AM

Bia thì mình không biết uống, bác sĩ bảo thế, cái dạ dày của mình không thích 45 độ, khổ thế đấy,
sao bạn giỏi thế mới hỏi đã biết ngay mình mo hết 1 buổi chiều hôm qua mà không được

Hề hề hề,
Bác ấy giỏi vì bác ấy "THÍCH UỐNG BIA".
Bạn mò cả buổi chiều vì bạn "KHÔNG BIẾT UỐNG" do "bác sĩ bảo thế". Mà bác sĩ thì làm sao mà giỏi Lisp được?????
Hề hề hề,
Nếu bạn cứ chịu khó nghe lời " bác sĩ " như vầy thì e rằng sẽ còn lâu lâu bạn mới theo kịp bác ấy được và lần sau bạn sẽ còn phải mò cả ngày chứ chả phải mò một buổi chiều đâu.
Hề hề hề......
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#139 trinhngoctri

trinhngoctri

    biết vẽ pline

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

Đã gửi 10 November 2011 - 11:21 AM

làm thế nào để mình chèn phai cad lên trên này được. hả bác. xin các bác đừng cười nhé
  • 0

#140 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 10 November 2011 - 11:23 AM

Hề hề hề,
Bác DoanVanHa ơi, bác định giả nhời ai thì bác nên có cái trích dẫn của người đó chứ nó không đầu không đuôi thế này, thiệt là khổ lắm lắm vì chả biết chỗ mô mà mò. Sở dĩ mình muốn vầy là để còn kiếm tí mót về làm vốn, nhưng bác cất kỹ quá chả mót được.
Hề hề hề,
Chúc bác vui và luôn mạnh.

Chào bác 3 Hề!
1). Tôi bị 1 cái lỗi mouse kỳ quặc: vào "trả lời" là chuột chết, vào "sửa" hoặc "sử dụng trình soạn thảo đầy đủ" thì chuột sống, nên bực mình chơi "sử dụng trình soạn thảo đầy đủ" luôn, thành ra thiếu trích dẫn. Ngay bài viết này tôi cũng phải dùng mẹo: vào "trả lời" để có trích dẫn, rồi gởi, sau đó vào "sửa" để viết lại đây.
2). Tôi đã viết cho bạn ấy ngay dưới bài viết của bạn ấy, mà tự dưng bây giờ không thấy nó nữa, thành ra ai đọc cũng như cụt đầu cụt đuôi vậy mới tức chứ.
3). Bác nói hơi bị ngược đời: tôi mót bác chứ sao bác mót tôi?
Thân thương!
  • 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.