Đến nội dung


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

Hỏi về Lisp (thuật toán, ý tưởng, coding,...)


  • Please log in to reply
2854 replies to this topic

#281 binharch77

binharch77

    biết dimcontinue

  • Members
  • PipPipPipPipPip
  • 372 Bài viết
Điểm đánh giá: 163 (tàm tạm)

Đã gửi 09 May 2009 - 04:51 PM

sau khi lấy tên của thằng block, có cách nào gọi tên một thằng attribute trong block đó với Tag định sẵn không?

cứu cứu cứu với
  • 0

#282 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 09 May 2009 - 05:34 PM

sau khi lấy tên của thằng block, có cách nào gọi tên một thằng attribute trong block đó với Tag định sẵn không?

cứu cứu cứu với

Chào bạn Binharch77,
Có đấy bạn ạ. Hãy đọc thử đoạn này bạn nhé. Cái này là mình mót của cụ JeffySander về dịch chơi để học thôi. Sai đâu bạn sửa đó nhé
http://www.cadviet.c...s/Attribute.doc

Hề hề, hơi củ chuối phải không bạn. Dùng tạm trong lúc cứu cứu vậy.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#283 binharch77

binharch77

    biết dimcontinue

  • Members
  • PipPipPipPipPip
  • 372 Bài viết
Điểm đánh giá: 163 (tàm tạm)

Đã gửi 09 May 2009 - 07:50 PM

Chào bạn Binharch77,
Có đấy bạn ạ. Hãy đọc thử đoạn này bạn nhé. Cái này là mình mót của cụ JeffySander về dịch chơi để học thôi. Sai đâu bạn sửa đó nhé
http://www.cadviet.c...s/Attribute.doc

Hề hề, hơi củ chuối phải không bạn. Dùng tạm trong lúc cứu cứu vậy.

hay thật, bác có link đủ tập khg, cho tôi với.

thank you bạn nhiều nhiều

:mellow: :mellow:
  • 0

#284 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 10 May 2009 - 11:04 AM

hay thật, bác có link đủ tập khg, cho tôi với.

thank you bạn nhiều nhiều

:mellow: :mellow:

Chào bạn Binharch77,
Đủ tập thì mình chả biết có đủ không nhưng đây là tất cả cái mà minh mót được của cụ JeffySander. Bạn xài thử coi nhé.
Không hiểu sao bữa nay không upload được qua diễn đàn. Bạn cho mình địa chỉ yahoo, mình sẽ gửi cho bạn.
Chúc bạn vui.
May quá upload được rồi. Nó đây bạn :
http://www.cadviet.c...sp_tu_hoc_3.doc

Mình đã load cái này hai lần rồi nhưng ngại tìm quá nên lại load lại. Vì thế nó mới mang số 3 bạn ạ.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#285 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 10 May 2009 - 01:47 PM

Bác làm ơn chỉ mình cad với. Mình biết cad căn bản rồi, nhưng lúc khai triển các đồ vật, hình dung các mặt cắt mình hình dung chưa wuen. Mình sin hậu tạ. anh_ldesign@yahoo.com, có jì l/l với mình nhe! Mình chờ tin Bạn!

Chào bạn Anh_ldésign,
Thế này nhé:
1/- Để có thể thành thạo việc vẽ khai triển các hình chiếu của vật thể cũng như các mặt cắt của nó, bạn cần phải thực hành nhiều nhiều thì nó sẽ quen mà thôi. Việc chỉ thêm cho bạn chỉ có thể được khi bạn post các bản vẽ cụ thể của bạn lên để mọi người góp ý. Lý thuyết căn bản chắc chắn mọi người cũng chỉ đều được học giống y sì như bạn đã học mà thôi. Chỉ có thực hành là mỗi người có khác nhau tí chút bạn ạ. Vì vậy bạn hãy yên tâm thực hành nhiều nhiều là sẽ giỏi ngay thôi.
2/- Đây là topic Hỏi về lisp nên bạn post câu hỏi sai chỗ rối. Bạn nên post các câu hỏi vào đúng topic của nó sẽ có được sự trả lời nhanh hơn và đúng hơn bạn nhé. Diễn đàn đã có khá nhiều các topic về CAD, bạn hãy vào đó để tìm hiểu thêm nhé.
Chúc bạn vui.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#286 binharch77

binharch77

    biết dimcontinue

  • Members
  • PipPipPipPipPip
  • 372 Bài viết
Điểm đánh giá: 163 (tàm tạm)

Đã gửi 11 May 2009 - 05:12 PM

các bác ơi, cho mình hỏi.
mình có đọc chi tiết 1 cái lisp, có hàm tblsearch . vậy hàm này là gì và cách thực hiện ra sao ???
:mellow:
  • 0

#287 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 11 May 2009 - 05:50 PM

các bác ơi, cho mình hỏi.
mình có đọc chi tiết 1 cái lisp, có hàm tblsearch . vậy hàm này là gì và cách thực hiện ra sao ???
:mellow:


Chào bạn Binharch77,
Bạn tham khảo cái này nhé:
tblsearch Function




Searches a symbol table for a symbol name

(tblsearch table-name symbol [setnext])

Arguments

table-name

A string that identifies the symbol table to be searched. This argument is not case sensitive.

symbol

A string identifying the symbol name to be searched for. This argument is not case sensitive.

setnext

If this argument is supplied and is not nil, the tblnext entry counter is adjusted so the following tblnext call returns the entry after the one returned by this tblsearch call. Otherwise, tblsearch has no effect on the order of entries retrieved by tblnext.

Return Values

If tblsearch finds an entry for the given symbol name, it returns that entry in the format described for tblnext. If no entry is found, tblsearch returns nil.

Examples

The following command searches for a text style named "standard":

Command: (tblsearch "style" "standard")

((0 . "STYLE") (2 . "STANDARD") (70 . 0) (40 . 0.0) (41 . 1.0) (50 . 0.0) (71 . 0) (42 . 0.3) (3 . "txt") (4 . ""))

Cái này mình lấy trong Help Developer của Cad2004 bạn ạ. Trong đó có hầu hết các hàm cơ bản có trong Autolisp. Bạn vào đó tham khảo thử xem nhé.
Chúc bạn vui.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#288 binharch77

binharch77

    biết dimcontinue

  • Members
  • PipPipPipPipPip
  • 372 Bài viết
Điểm đánh giá: 163 (tàm tạm)

Đã gửi 11 May 2009 - 05:56 PM

Chào bạn Binharch77,
Bạn tham khảo cái này nhé:
tblsearch Function

Cái này mình lấy trong Help Developer của Cad2004 bạn ạ. Trong đó có hầu hết các hàm cơ bản có trong Autolisp. Bạn vào đó tham khảo thử xem nhé.
Chúc bạn vui.

ồ, vậy à, thế mà tớ lại đọc trong giáo trình không có cơ đấy.
thank bác phamthanhbinh nhiều nhá (sorry không gọi bác tên Bình được vì trùng tên mà :mellow: :mellow: )
bác ở trong N hay ngòai B vậy??
  • 0

#289 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 11 May 2009 - 09:17 PM

ồ, vậy à, thế mà tớ lại đọc trong giáo trình không có cơ đấy.
thank bác phamthanhbinh nhiều nhá (sorry không gọi bác tên Bình được vì trùng tên mà :mellow: :mellow: )
bác ở trong N hay ngòai B vậy??

Hề hề, không có chi là không có chi.
Mình là trong Bắc mà ngoài Nam bạn ơi. Hề hề. Cái ni là do các bác trên diễn đàn dạy mình chớ lúc đầu mình cũng có biết chi mô. Nay thấy bạn hỏi thì mình bắt chước các bác ấy pót lên cho bạn thôi mà. Không có chi là không có chi, Hề hề.
Chúc bạn luôn vui như Tết nha, 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.

#290 vanthanhfpt

vanthanhfpt

    biết vẽ line

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

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

Sao cái lisp vẽ trắc dọc cống không sử dụng được các pác nhỉ!
  • 0

-*-TO BE OR NOT TO BE-*-


#291 minhtu2004

minhtu2004

    biết lệnh chamfer

  • Members
  • PipPipPipPip
  • 219 Bài viết
Điểm đánh giá: 34 (tàm tạm)

Đã gửi 13 May 2009 - 11:45 AM

-Mình có 1 vấn đề muốn hỏi, trong lisp hàm nào để xác định được điểm đầu hoặc điểm cuối trên đọan thẳng vậy. Mong được hướng dẫn.
  • 0

-Nhận thực hiện bản vẽ 3D bằng revit.
-Liên hệ: 01664793290.


#292 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 13 May 2009 - 11:53 AM

-Mình có 1 vấn đề muốn hỏi, trong lisp hàm nào để xác định được điểm đầu hoặc điểm cuối trên đọan thẳng vậy. Mong được hướng dẫn.

Có 2 cách :
Cách 1 :
Điểm đầu : (cdr(assoc 10 (entget(car(entsel)))))
Điểm cuối : (cdr(assoc 11 (entget(car(entsel)))))

Cách 2 : Tổng quát nhất : áp dụng cho Line, Pline, Spline..

Điểm đầu : (vlax-curve-getStartPoint (car(entsel)))
Điểm cuối : (vlax-curve-getendPoint (car(entsel)))
  • 1

#293 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 13 May 2009 - 11:57 AM

-Mình có 1 vấn đề muốn hỏi, trong lisp hàm nào để xác định được điểm đầu hoặc điểm cuối trên đọan thẳng vậy. Mong được hướng dẫn.

Chào bạn Minhtu2004,
Vấn đề phụ thuộc ở chỗ đoạn thẳng của bạn được vẽ bằng lệnh gì bạn ạ. Nếu bạn dùng lisp thì nhìn chung là bạn phải hiểu được các mã DXF của các đối tượng trong CAD. Mỗi loại đối tượng sẽ có các mã DXF khác nhau. Căn cứ vào đó bạn sẽ có thể lấy được các thông số bạn muốn của đối tượng bạn ạ.
Bạn hãy bình tâm đọc kỹ tài liệu mình đã gửi cho bạn qua tin nhắn. Nếu chưa nhận được thì báo lại để mình gửi lại hay bạn tự download về ở đây nhé

http://www.cadviet.c...sp_tu_hoc_3.doc

Chúc bạn vui và hãy nhớ rằng Dục tốc bất đạt bạn ạ.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#294 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 13 May 2009 - 11:59 AM

Có 2 cách :
Cách 1 :
Điểm đầu : (cdr(assoc 10 (entget(car(entsel)))))
Điểm cuối : (cdr(assoc 11 (entget(car(entsel)))))

Cách 2 : Tổng quát nhất : áp dụng cho Line, Pline, Spline..

Điểm đầu : (vlax-curve-getStartPoint (car(entsel)))
Điểm cuối : (vlax-curve-getendPoint (car(entsel)))

Bác Tue_NV ơi,
Ở cách 2 bác phải dùng hàm (vl-load-com) trước đã phải không bác?
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#295 tuan_thietkedien

tuan_thietkedien

    biết lệnh mirror

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

Đã gửi 13 May 2009 - 02:43 PM

Có 2 cách :
Cách 1 :
Điểm đầu : (cdr(assoc 10 (entget(car(entsel)))))
Điểm cuối : (cdr(assoc 11 (entget(car(entsel)))))

Cách 2 : Tổng quát nhất : áp dụng cho Line, Pline, Spline..

Điểm đầu : (vlax-curve-getStartPoint (car(entsel)))
Điểm cuối : (vlax-curve-getendPoint (car(entsel)))


Bạn Tue cho mình hỏi bạn có cách lấy thông tin góc của 1 đoạn thẳng hay không.
Ví dụ : Mình vẽ tạm đoạn thẳng này -------------- , đoạn này góc là 0 hoặc 180 độ.
  • 0

#296 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 13 May 2009 - 02:53 PM

Bạn Tue cho mình hỏi bạn có cách lấy thông tin góc của 1 đoạn thẳng hay không.
Ví dụ : Mình vẽ tạm đoạn thẳng này -------------- , đoạn này góc là 0 hoặc 180 độ.

Cái này đơn giản mà bạn. Học hồi phổ thông. Hình học giải tích
Cho 1 đoạn thẳng AB .
Điểm A có tọa độ A(xa,ya)
Điểm B có tọa độ B(xb,yb)
Vậy thì góc AB sẽ là :
tan a = |(yb-ya)|/|(xb-xa)|

Bạn sử dụng Code theo ý mình xây dựng thử xem
Chú ý : Lisp không có hàm tan . Bạn sử dụng hàm sin và cos => tan = sin/cos

Hoặc nhanh hơn bạn sử dụng hàm
(angle pt1 pt2)
  • 1

#297 tuan_thietkedien

tuan_thietkedien

    biết lệnh mirror

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

Đã gửi 13 May 2009 - 03:16 PM

Cái này đơn giản mà bạn. Học hồi phổ thông. Hình học giải tích
Cho 1 đoạn thẳng AB .
Điểm A có tọa độ A(xa,ya)
Điểm B có tọa độ B(xb,yb)
Vậy thì góc AB sẽ là :
tan a = |(yb-ya)|/|(xb-xa)|

Bạn sử dụng Code theo ý mình xây dựng thử xem
Chú ý : Lisp không có hàm tan . Bạn sử dụng hàm sin và cos => tan = sin/cos

Hoặc nhanh hơn bạn sử dụng hàm
(angle pt1 pt2)


Bạn Tue cho mình hỏi thêm tí nha.
Mình đang muốn giải quyết vấn đề chèn block mũi tên vào 1 Polyline. Mình dùng lệnh Insert.
Lisp sẽ quét vào Polyline và tìm được góc Polyline đó.
Nếu Polyline có 1 đầu tiếp xúc với 1 hình khác vậy có cách nào làm lisp hiểu và chỉ chèn block vào phía đầu Polyline chưa tiếp xúc với hình nào hay không?

http://www.cadviet.c...Drawing2_20.dwg

Vấn đề tìm góc mình sẽ tìm hiểu về hàm sin và cos, vì mấy lệnh này mình chưa bao giờ dùng cả. :mellow:


http://www.cadviet.c...les/Drawing2_20.
  • 0

#298 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 14 May 2009 - 08:04 AM

Bạn Tue cho mình hỏi thêm tí nha.
Mình đang muốn giải quyết vấn đề chèn block mũi tên vào 1 Polyline. Mình dùng lệnh Insert.
Lisp sẽ quét vào Polyline và tìm được góc Polyline đó.
Nếu Polyline có 1 đầu tiếp xúc với 1 hình khác vậy có cách nào làm lisp hiểu và chỉ chèn block vào phía đầu Polyline chưa tiếp xúc với hình nào hay không?

http://www.cadviet.c...Drawing2_20.dwg

Vấn đề tìm góc mình sẽ tìm hiểu về hàm sin và cos, vì mấy lệnh này mình chưa bao giờ dùng cả. :mellow:
http://www.cadviet.c...les/Drawing2_20.

Lisp thì có thể hiểu được Nếu Polyline có 1 đầu tiếp xúc với 1 hình khác
"và chỉ chèn block vào phía đầu Polyline chưa tiếp xúc,"

đầu Pline chưa tiếp xúc có thể là điểm đầu và điểm cuối. Nếu hiểu thì Lisp sẽ hiểu cả điểm đầu và điểm cuối đều không tiếp xúc đấy bạn Tuanthietkedien à. Bạn muốn chèn vào đầu nào. Bạn hãy nói rõ ý
  • 1

#299 Nguyenduccanh

Nguyenduccanh

    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 May 2009 - 08:20 AM

alo.xin chào anh em, minh đang rất cần anh em giúp đỡ. mình đang làm tài liệu về dòng thấm.anh em nào có ko gửi cho mình với .
  • 0

#300 minhtu2004

minhtu2004

    biết lệnh chamfer

  • Members
  • PipPipPipPip
  • 219 Bài viết
Điểm đánh giá: 34 (tàm tạm)

Đã gửi 14 May 2009 - 08:21 AM

Chào bạn Minhtu2004,
Vấn đề phụ thuộc ở chỗ đoạn thẳng của bạn được vẽ bằng lệnh gì bạn ạ. Nếu bạn dùng lisp thì nhìn chung là bạn phải hiểu được các mã DXF của các đối tượng trong CAD. Mỗi loại đối tượng sẽ có các mã DXF khác nhau. Căn cứ vào đó bạn sẽ có thể lấy được các thông số bạn muốn của đối tượng bạn ạ.
Bạn hãy bình tâm đọc kỹ tài liệu mình đã gửi cho bạn qua tin nhắn. Nếu chưa nhận được thì báo lại để mình gửi lại hay bạn tự download về ở đây nhé

http://www.cadviet.c...sp_tu_hoc_3.doc

Chúc bạn vui và hãy nhớ rằng Dục tốc bất đạt bạn ạ.

Xin lỗi ban ThanhBinh gì đó nha. Nếu như xem tài liệu mà hiểu được vấn đề thì mình không lên diễn đàn này để nhờ giúp đỡ, có những cái đơn giản với người này nhưng không đơn giản với người khác. Giống bạn lúc mới bắt đầu viết lisp thôi đúng hok.
  • 0

-Nhận thực hiện bản vẽ 3D bằng revit.
-Liên hệ: 01664793290.