Đến nội dung


Hình ảnh
- - - - -

lisp tìm giao điểm của 1 con dao & 1 mặt bất kì


  • Please log in to reply
19 replies to this topic

#1 Phan Van Thang

Phan Van Thang

    biết pan

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

Đã gửi 26 November 2008 - 10:11 PM

đề là: cho 1 con dao chạy chuyển động bất kì trong không gian,cho bề mặt của 1 chi tiết gia công bất kì,lâp Autolisp để tìm giao điểm của con dao & bề mặt chi tiết gia công đã cho.
con dao ở trên có thể coi là tương đương với 1 điểm mũi dao thôi...
  • 0

#2 Phan Van Thang

Phan Van Thang

    biết pan

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

Đã gửi 26 November 2008 - 11:38 PM

đề là: cho 1 con dao chạy chuyển động bất kì trong không gian,cho bề mặt của 1 chi tiết gia công bất kì,lâp Autolisp để tìm giao điểm của con dao & bề mặt chi tiết gia công đã cho.
con dao ở trên có thể coi là tương đương với 1 điểm mũi dao thôi...

E tham gia CadViet từ 2 năm nay nhưng thấy m trình còn thấp quá nên chưa gửi bài hay post bài nào lên diền đàn cả.Nay thấy mấy bác nhiệt tình quá,lại toàn nói gãi đúng chỗ ngứa nên e...phải "gãi " thôi!!!

Mấy cái phần mềm CAD_CAM_CAE có thể nói là các món khẩu vị của e,e cũng đã tìm hiểu nhiều các phần mềm đủ loậi nhưng đi sâu vào thì có lẽ chưa phải la Pro như mấy bác trên diễn đàn nhà mình(như Mr Hoanh or bác SSg...) .

e đang mắc bài này lắm,mong mấy bác trên diễn đàn giúp e sớm!!!

Thanks các bác trước!!!
  • 0

#3 Flex

Flex

    biết lệnh erase

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

Đã gửi 01 December 2008 - 08:56 PM

đề là: cho 1 con dao chạy chuyển động bất kì trong không gian,cho bề mặt của 1 chi tiết gia công bất kì,lâp Autolisp để tìm giao điểm của con dao & bề mặt chi tiết gia công đã cho.
con dao ở trên có thể coi là tương đương với 1 điểm mũi dao thôi...


Kịch bản là cho dao chạy theo dạng như thế nào?
+ Cắt theo biên dạng ngoài tiến dần vào tâm
+ Cắt theo dạng quét
+ Bề mặt được tạo bởi các face hay là dạng như thế nào?
  • 0
Phần mềm và Tiện ích trên AutoCAD
->SHD- Phần mềm TK nhà xưởng thép tiền chế
->Nhận hợp tác thiết kế nhà thép tiền chế
website: www.cad-app.com
email: flexnet@cad-app.com
ym: flex_tools

#4 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 01 December 2008 - 09:27 PM

Bạn xem có phải cái này: Vẽ biên dạng cam bằng lisp ?
  • 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 02 December 2008 - 11:27 AM

đề là: cho 1 con dao chạy chuyển động bất kì trong không gian,cho bề mặt của 1 chi tiết gia công bất kì,lâp Autolisp để tìm giao điểm của con dao & bề mặt chi tiết gia công đã cho.
con dao ở trên có thể coi là tương đương với 1 điểm mũi dao thôi...

Ý kiến ssg:
1. Bạn nêu vấn đề chưa rõ ràng. Đã có 3 người reply, nhưng chưa ai hiểu ý muốn thật sự của bạn là gì!
2. Dù chưa hiểu rõ lắm, ssg vẫn cho rằng bài này không "dễ chơi", ít nhất là với Lisp. Lisp làm việc xuất sắc với 2D, nhưng với 3D còn rất nhiều hạn chế. Lý do: AutoDesk không công khai database về 3D.
  • 0

#6 Flex

Flex

    biết lệnh erase

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

Đã gửi 02 December 2008 - 01:14 PM

AutoDesk không công khai database về 3D.


Ấy chết, autoDesk công khai hết các đối tượng cơ bản về 3D đấy ạ.

Đường thì có Line, polyline3D...
Mặt thì có Face, Mesh.
Khối thì có Solid ( khoảng hơn chục), Region.

Bác không tin thì tìm cái lisp nội suy đường đồng mức dựa trên các Face trong AutoCAD. Em thấy có ai (Tây) viết rồi đấy.
  • 0
Phần mềm và Tiện ích trên AutoCAD
->SHD- Phần mềm TK nhà xưởng thép tiền chế
->Nhận hợp tác thiết kế nhà thép tiền chế
website: www.cad-app.com
email: flexnet@cad-app.com
ym: flex_tools

#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 02 December 2008 - 04:11 PM

Ấy chết, autoDesk công khai hết các đối tượng cơ bản về 3D đấy ạ.

Đường thì có Line, polyline3D...
Mặt thì có Face, Mesh.
Khối thì có Solid ( khoảng hơn chục), Region.

Bác không tin thì tìm cái lisp nội suy đường đồng mức dựa trên các Face trong AutoCAD. Em thấy có ai (Tây) viết rồi đấy.

Quả thật, ssg đã từng sục sạo nhiều nơi để tìm kiếm cái database ẩn chứa đằng sau các đối tượng 3D của AutoCAD nhưng chưa có kết quả gì! Đúng hơn là có, nhưng đọc không hiểu gì cả! Nếu bạn am hiểu về nó, ssg xin được lĩnh giáo để mở rộng tầm hiểu biết. Cụ thể, bạn có thể giải thích cho ssg rõ ý nghĩa (khái quát cũng được) của các dòng sau, mô tả một solid khối hộp chữ nhật đơn giản, trích trong file dxf của chính AutoCAD:

http://www.cadviet.c...iles/data01.zip

Xin đa tạ!
  • 0

#8 Phan Van Thang

Phan Van Thang

    biết pan

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

Đã gửi 04 December 2008 - 07:40 PM

Kịch bản là cho dao chạy theo dạng như thế nào?
+ Cắt theo biên dạng ngoài tiến dần vào tâm
+ Cắt theo dạng quét
+ Bề mặt được tạo bởi các face hay là dạng như thế nào?


Trươc hết em xin cám ơn bác Flex đã đọc bào & Reply ,Em đoán chắc bác Flex cũng là 1 Pro về mấy cái Lisp& mấy cái phấn mềm CAD-Cam nầy.
Bác hỏi đúng lắm,em cũng đang băn khoăn về mầy vấn đề này:
1.Con dao cát đi theo biên dạng từ ngoài vào,nếu tính theo tạ độ chiều cao thì mũi con dao tiến dần vào đền khi nào chiều cao(hay chính xác hơn là khoảng cách từ mũi dao đến điểm cao nhất của bề mặt chi tiết là =0).khi đó ta tìm đuợc dao điểm giữa mũi dao & bề mắt chi tiết gia công.
2.Bề mặt chi tiết đuợc vẽ theo là 1 Solid,vậy nên sẽ bao gồm có các mặt Face .

Như vậy vấn đề của bài toán vẫn chỉ là tìm ra được giao điểm của con dao & bề mặt chi tiết gia công khi chthoio dao chạy tiến vào,và sau đó phải chỉ ra đọ cao của con dao so với 1 ị trí mốc ta chọn ban đầu nào đó(có thể chọn là vị trí đầu tiên khi cho dao bắt đầu chạy tiến vào).
Trong Lisp có 1 hàm là Interference là hàm dùng để tìm giao điểm,nhưng em vãn chưa làm được...........
Kính mong mấ bác là những chuyên gia về lĩnh vực này giúp vậy.!!!!!!!!!!!
Thanks!!!!!!!
  • 0

#9 Phan Van Thang

Phan Van Thang

    biết pan

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

Đã gửi 04 December 2008 - 07:43 PM

Ấy chết, autoDesk công khai hết các đối tượng cơ bản về 3D đấy ạ.

Đường thì có Line, polyline3D...
Mặt thì có Face, Mesh.
Khối thì có Solid ( khoảng hơn chục), Region.

Bác không tin thì tìm cái lisp nội suy đường đồng mức dựa trên các Face trong AutoCAD. Em thấy có ai (Tây) viết rồi đấy.

về vấn đề này em đồng ý với bác Flex,đúng là AutoDesk hoàn toàn công khia hết các đối tượng 3D!!!
Có gì bác Mr.SSg xem lại nhé?
  • 0

#10 Flex

Flex

    biết lệnh erase

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

Đã gửi 04 December 2008 - 09:10 PM

Quả thật, ssg đã từng sục sạo nhiều nơi để tìm kiếm cái database ẩn chứa đằng sau các đối tượng 3D của AutoCAD nhưng chưa có kết quả gì! Đúng hơn là có, nhưng đọc không hiểu gì cả! Nếu bạn am hiểu về nó, ssg xin được lĩnh giáo để mở rộng tầm hiểu biết. Cụ thể, bạn có thể giải thích cho ssg rõ ý nghĩa (khái quát cũng được) của các dòng sau, mô tả một solid khối hộp chữ nhật đơn giản, trích trong file dxf của chính AutoCAD:

http://www.cadviet.c...iles/data01.zip

Xin đa tạ!


Đọc file data.txt này thì Flex chịu.

Nhưng để tạo một chi tiết đơn giản thì không khó, Đó là tổ hợp các phép toán (Hợp, Giao, Trừ...) của các solid. Tuy nhiên đó là việc của người thiết kế. Nếu mình muốn tự động hoá thiết kế thành các chi tiết như vậy thì ta mới phải làm.
Về phần tìm quỹ đạo của các đường ăn dao thì theo như Flex ta làm như sau:
+ Đầu bài:
-Cho một khối Solid3d
-Kịch bản chạy dao (Cách ăn dao)
+Công việc làm là:
-Tìm đường giao của mặt ăn dao với khối solid đã cho. Cái này đơn giản bằng cách lấy đường sinh của mặt cát với khối solid đã cho, tương tự như cách tìm đường đồng mức với mô hình địa hình bên trắc địa vẫn làm.

Tuần sau nếu rảnh Flex sẽ viết một CT đơn giản thử xem thế nào.
  • 0
Phần mềm và Tiện ích trên AutoCAD
->SHD- Phần mềm TK nhà xưởng thép tiền chế
->Nhận hợp tác thiết kế nhà thép tiền chế
website: www.cad-app.com
email: flexnet@cad-app.com
ym: flex_tools

#11 Phan Van Thang

Phan Van Thang

    biết pan

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

Đã gửi 06 December 2008 - 12:18 AM

Đọc file data.txt này thì Flex chịu.

Nhưng để tạo một chi tiết đơn giản thì không khó, Đó là tổ hợp các phép toán (Hợp, Giao, Trừ...) của các solid. Tuy nhiên đó là việc của người thiết kế. Nếu mình muốn tự động hoá thiết kế thành các chi tiết như vậy thì ta mới phải làm.
Về phần tìm quỹ đạo của các đường ăn dao thì theo như Flex ta làm như sau:
+ Đầu bài:
-Cho một khối Solid3d
-Kịch bản chạy dao (Cách ăn dao)
+Công việc làm là:
-Tìm đường giao của mặt ăn dao với khối solid đã cho. Cái này đơn giản bằng cách lấy đường sinh của mặt cát với khối solid đã cho, tương tự như cách tìm đường đồng mức với mô hình địa hình bên trắc địa vẫn làm.

Tuần sau nếu rảnh Flex sẽ viết một CT đơn giản thử xem thế nào.


Bác Flex nói đúng rồi đó,nhưng khio viết Lisp em còn măc nhiều quá,mong bac tranh thủ help em cái!!!còn 1 vvấn đề nữa là sau khi tìm được giao điểm ta cũng phải chỉ ra chiều cao của giao điểm vừa tìm so với gốc toạ độ vị trí mũi dao ban đẩu.
thứ 2 là cách ăn dao là cho mũi dao chạy từ trên xuống,tức khoảng cách từ mũi dao đền bề mặt Solid càng nhỏ dần,đền khi chạm (tức khoảng cách đó =0) thì ra chính giao điểm cần tìm.
thanks !!!
  • 0

#12 Flex

Flex

    biết lệnh erase

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

Đã gửi 06 December 2008 - 03:00 PM

Bác Flex nói đúng rồi đó,nhưng khio viết Lisp em còn măc nhiều quá,mong bac tranh thủ help em cái!!!còn 1 vvấn đề nữa là sau khi tìm được giao điểm ta cũng phải chỉ ra chiều cao của giao điểm vừa tìm so với gốc toạ độ vị trí mũi dao ban đẩu.
thứ 2 là cách ăn dao là cho mũi dao chạy từ trên xuống,tức khoảng cách từ mũi dao đền bề mặt Solid càng nhỏ dần,đền khi chạm (tức khoảng cách đó =0) thì ra chính giao điểm cần tìm.
thanks !!!


Tớ thử viết một CT xem thế nào. Bạn vào đây lấy để xem thử lệnh là E2, chạy trên CAD04-06:
http://cad-app.com/d...cuttingpath.zip
Hình đã gửi
  • 0
Phần mềm và Tiện ích trên AutoCAD
->SHD- Phần mềm TK nhà xưởng thép tiền chế
->Nhận hợp tác thiết kế nhà thép tiền chế
website: www.cad-app.com
email: flexnet@cad-app.com
ym: flex_tools

#13 transu

transu

    biết vẽ spline

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

Đã gửi 06 December 2008 - 05:56 PM

Tớ thử viết một CT xem thế nào. Bạn vào đây lấy để xem thử lệnh là E2, chạy trên CAD04-06:
http://cad-app.com/d...cuttingpath.zip
Hình đã gửi

các bác chỉ dùm em cái lisp này dùng để làm gì. đa tạ
  • 0

#14 Phan Van Thang

Phan Van Thang

    biết pan

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

Đã gửi 10 December 2008 - 10:43 PM

các bác chỉ dùm em cái lisp này dùng để làm gì. đa tạ

thankss bác Flex nhiêu!!!
nhưng bác có file đuôi .lsp thì up hộ em cai,file đuôi .arx em dùng các phiên bản cad khác nhau hay bị lỗi or là không đọc đuợc!!!
  • 0

#15 Flex

Flex

    biết lệnh erase

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

Đã gửi 11 December 2008 - 11:05 AM

thankss bác Flex nhiêu!!!
nhưng bác có file đuôi .lsp thì up hộ em cai,file đuôi .arx em dùng các phiên bản cad khác nhau hay bị lỗi or là không đọc đuợc!!!


Cái này mình viết bằng C++ nên bạn chỉ có thể dùng đúng phiên bản cad tương ứng thôi, Bạn dùng cad gì để mình dịch lại theo ròi gửi cho.
Lien lac theo email của tớ nhé.
  • 0
Phần mềm và Tiện ích trên AutoCAD
->SHD- Phần mềm TK nhà xưởng thép tiền chế
->Nhận hợp tác thiết kế nhà thép tiền chế
website: www.cad-app.com
email: flexnet@cad-app.com
ym: flex_tools

#16 Phan Van Thang

Phan Van Thang

    biết pan

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

Đã gửi 11 December 2008 - 02:09 PM

Cái này mình viết bằng C++ nên bạn chỉ có thể dùng đúng phiên bản cad tương ứng thôi, Bạn dùng cad gì để mình dịch lại theo ròi gửi cho.
Lien lac theo email của tớ nhé.

mình dùng cad 2007,ban up lại cho mình ngay nhé?m đang cần mà!!!
thankss!!!
  • 0

#17 Flex

Flex

    biết lệnh erase

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

Đã gửi 11 December 2008 - 08:14 PM

mình dùng cad 2007,ban up lại cho mình ngay nhé?m đang cần mà!!!
thankss!!!

Bạn vào download lại, cad07,08,09 chạy file FCuttingPath08, gọi lệnh load ap, sau đó chọn file load vào cad.
sau khi load vào cad bạn chọn lệnh E2, ví cụ vẫn file solid đó.
  • 0
Phần mềm và Tiện ích trên AutoCAD
->SHD- Phần mềm TK nhà xưởng thép tiền chế
->Nhận hợp tác thiết kế nhà thép tiền chế
website: www.cad-app.com
email: flexnet@cad-app.com
ym: flex_tools

#18 Phan Van Thang

Phan Van Thang

    biết pan

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

Đã gửi 11 December 2008 - 09:32 PM

Bạn vào download lại, cad07,08,09 chạy file FCuttingPath08, gọi lệnh load ap, sau đó chọn file load vào cad.
sau khi load vào cad bạn chọn lệnh E2, ví cụ vẫn file solid đó.

mình ko thể Load vào cad được!!!m đã thử chạy cad 2007 & cả 2004 đều ko được!!!
hay bạn up toàn bộ phần chương trình lên theo kiêu file văn bản để mình xem thuật toàn là gì thôi?
thanks!!!
  • 0

#19 Flex

Flex

    biết lệnh erase

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

Đã gửi 11 December 2008 - 09:57 PM

mình ko thể Load vào cad được!!!m đã thử chạy cad 2007 & cả 2004 đều ko được!!!
hay bạn up toàn bộ phần chương trình lên theo kiêu file văn bản để mình xem thuật toàn là gì thôi?
thanks!!!


Thuật toán có gì đâu:
+Chọn khối solid
+ Lấy min,max point của khối ->xác định gốc 0,0,0; chiều cao của khối...
+ Chia thành các khoảng cao đều
+ Lấy các mặt cắt của khối bằng giao MP ngang có cao độ tương đối theo các khoảng cao đều-> vẽ mặt cắt ra thôi.

Có thể máy bạn thiếu thư viện của chương trình. vcredist_x86.zip
Bạn down thư viện này về cài: http://cad-app.com/d...credist_x86.zip thì sẽ chạy được.

PS: bạn có thể trao đổi với tôi qua YM
  • 0
Phần mềm và Tiện ích trên AutoCAD
->SHD- Phần mềm TK nhà xưởng thép tiền chế
->Nhận hợp tác thiết kế nhà thép tiền chế
website: www.cad-app.com
email: flexnet@cad-app.com
ym: flex_tools

#20 Phan Van Thang

Phan Van Thang

    biết pan

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

Đã gửi 13 December 2008 - 01:23 PM

Thuật toán có gì đâu:
+Chọn khối solid
+ Lấy min,max point của khối ->xác định gốc 0,0,0; chiều cao của khối...
+ Chia thành các khoảng cao đều
+ Lấy các mặt cắt của khối bằng giao MP ngang có cao độ tương đối theo các khoảng cao đều-> vẽ mặt cắt ra thôi.

Có thể máy bạn thiếu thư viện của chương trình. vcredist_x86.zip
Bạn down thư viện này về cài: http://cad-app.com/d...credist_x86.zip thì sẽ chạy được.

PS: bạn có thể trao đổi với tôi qua YM

thanks bác Flex nhiều !!!
Thuật toán như vậy là đúng rồi,m thử viết bằng Lisp chắc là OK ,nhưng không biết cái này viết bằng VBA được ko nhi?
chứ C++ mình kém lắm.
thanks bác vì đã rất nhiệt tình,lần sau có vấn đề gì ta lại trao đổi,đặc biệt là mấy phần mềm 3d như CATIA,or CIMATRON....ấy,ko biết bác có thích ko?
  • 0