Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
Phan Van Thang

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

Các bài được khuyến nghị

đề 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...

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
đề 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!!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
đề 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?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
đề 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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Ấ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.com/upfiles/data01.zip

 

Xin đa tạ!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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!!!!!!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Ấ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é?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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.com/upfiles/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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Đọ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 !!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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/download/cuttingpath.zip

Solid1.jpg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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!!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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é.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khá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é.

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

thankss!!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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 đó.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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!!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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/download/vcredist_x86.zip thì sẽ chạy được.

 

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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/download/vcredist_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?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×