Hướng dẫn add file stl vào matlab năm 2024

Lập trình đồ họa mình đề cập là hiển thị trạng thái của một vật thể, đối tượng trong quá trình mô phỏng. Chẳng hạn, mô tả mức nước trong bình chứa, mô tả vị trí cánh tay con lắc ngược, mô phỏng robot ... Như vậy ở đây có cả đối tượng đồ họa 2-D, 3-D.Mình không đề cập đến GUI vì 2 cái này khác nhau, mặc dù có thể nhúng lập trình đồ họa vào trong lúc tạo GUI.Gần đây, qua bt thày giao về nhà mình có tìm hiểu chút ít về vấn đề này, đồng thời muốn chia sẻ cùng học hỏi. Mình trình bày thông qua ví dụ về robot, các bạn có thể mở rộng hoàn toàn tương tự sang các đối tượng khác. Nhiều bạn quan tâm đến mô phỏng đồ họa robot bằng Simmechanics kết hợp Solidwork. Mình rất thích dùng Solidwork nhưng không thích dùng Simmechanics vì mình chỉ quan tâm đến mô tả toán học của robot. Ban đầu, mình chỉ trình bày về tạo đối tượng đồ họa đơn giản: tạo bình mức, tạo robot 2-D, tao robot 3-D đơn giản..Gọi là đơn giản vì chỉ sử dụng lệnh plot hay plot3...Nếu các bạn quan tâm, mình sẽ trình bày thêm về lập trình đồ họa MATLAB nâng cao, sử dụng lệnh patch (đây là một lệnh rất thuuuuu' viiiiiiii. ) Ví dụ về lập trình mô phỏng robot đơn giản: Ở đây có robot cylinder, theta là khối lượng vật robot cầm.

Hướng dẫn add file stl vào matlab năm 2024
Khối đồ họa được nhúng đoạn script ở dưới để các bạn tham khảo:
Hướng dẫn add file stl vào matlab năm 2024

Code:

function drawRobot(u) height_tower = u(1); length_arm = u(2); angle_arm = u(3); t = u(4); p = plot3(length_arm*cos(angle_arm), length_arm*sin(angle_arm), height_tower,'*'); set(p,'Color','red'); persistent tower_handle persistent arm_handle if t==0, figure(1) track_width=10; hold on; tower_handle = drawTower(height_tower, [],'normal'); arm_handle = drawArm(height_tower, length_arm, angle_arm, [],'normal'); axis([-track_width, track_width, -track_width, track_width, 0, track_width]); else title('Robot Cylinder Three Degrees of Freedom'); xlabel('T.V.Vuong, Automatics Control'); axis square grid on; drawTower(height_tower, tower_handle); drawArm(height_tower, length_arm, angle_arm, arm_handle); end function handle = drawTower(height_tower, handle, mode) X = [0, 0]; Y = [0, 0]; Z = [0, height_tower]; if isempty(handle), handle = plot3(X,Y,Z,'LineWidth',3,'EraseMode', mode); else set(handle,'XData',X,'YData',Y,'ZData',Z); end function handle = drawArm(height_tower, length_arm, angle_arm, handle, mode) X = [0, length_arm*cos(angle_arm)]; Y = [0, length_arm*sin(angle_arm)]; Z = [height_tower, height_tower]; if isempty(handle), handle = plot3(X,Y,Z,'LineWidth',3,'EraseMode', mode); else set(handle,'XData',X,'YData',Y,'ZData',Z); end

Kết quả khi cho giá trị đặt là tọa độ (10,10,10) nhờ bộ đk,thu được:

Hướng dẫn add file stl vào matlab năm 2024
Đường màu xanh là robot,đường màu đỏ là quỹ đạo trạng thái của end-effector. Trong quá trình mô phỏng, bạn sẽ thấy nó chuyển động ntn. Một số ví dụ khác (khó hơn, sử dụng lệnh patch và khó hơn nữa có thể sử dụng cả file vẽ Solidwork, mình sẽ trình bày nếu nhiều bạn quan tâm):
Hướng dẫn add file stl vào matlab năm 2024
Mình gửi kèm file mô phỏng. Trong đó có nhiều file các bạn chỉ quan tâm file drawRobot thôi há.2 file Simulink 1 là version R2010b dự phòng và 1 bản mình convert sang R2009a, chạy được file nào thì chạy. Upload trên diễn đàn khó quá, chuyển sang mediafire: http://www.mediafire.com/?8r11n2rqfsrttam

All MATLAB functions that import/export file data accept absolute/relative filenames. You can easily generate absolute/relative filenames using fullfile:

Sign in to comment.

Answers (1)

Hướng dẫn add file stl vào matlab năm 2024

  • Direct link to this answer

  • #### Direct link to this answer

If the folder in which the file is added in MATLAB path you could just give the filename to import it. If not you could use the above mentioned procedure

For more information on how to add a path to MATLAB path you could refer to the following link

See Also

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

An Error Occurred

Unable to complete the action because of changes made to the page. Reload the page to see its updated state.