Inkscape to OpenSCAD converter v7

Đây là bản nâng cấp cho công cụ paths2openscad của Dan Newman, giúp tách các đường dẫn thành biến, thêm hàm hỗ trợ đổi tỷ lệ và xử lý các đường kẻ hở hiệu quả hơn cho người dùng Inkscape.

👁️
10
Lượt Xem
❤️
1
Lượt Thích
📥
0
Lượt Tải
Cập Nhật Jun 06, 2026
Chi tiết
Tải xuống
Bình Luận
Khoe bản in
Remix

Mô tả

Đây là một loạt các bản chỉnh sửa cho chương trình paths2openscad rất tuyệt vời của Dan Newman. Các cải tiến bao gồm:

  • Tách riêng các đường dẫn (paths) thành các biến để có thể sử dụng linh hoạt theo nhiều cách khác nhau.
  • Thêm các hàm hỗ trợ để giúp việc thay đổi tỷ lệ (rescale) trở nên dễ dàng hơn.
  • Tự động lưu các đường kẻ hở dưới dạng đường thẳng thay vì các đường cong kín đã được nối liền.
  • Thêm tùy chọn cho phép lưu bất kỳ đường cong kín nào dưới dạng đường thẳng nếu muốn.

Dành cho Inkscape phiên bản 0.91 trở lên.

Ghi chú

Sau khi chạy chương trình, bạn sẽ nhận được một tệp .scad với ba phần chính.

Phần đầu tiên chứa các biến toàn cục (global variables). Bạn có thể chỉnh sửa trực tiếp các giá trị này để thay đổi chiều cao và chiều rộng của tệp openSCAD kết quả. Tại đây cũng có sẵn các hàm hỗ trợ nếu bạn muốn thay đổi tỷ lệ các hình khối cho vừa với kích thước mong muốn trong openSCAD thay vì phụ thuộc vào kích thước hiển thị (tính bằng mm) trong Inkscape. (xem ở cuối).

profile_scale = 25.4/90; //được tạo trong inkscape theo đơn vị mm// các hàm hỗ trợ để xác định kích thước X,Y của profile function min_x(shape_points) = min([ for (x = shape_points) min(x[0])]); function max_x(shape_points) = max([ for (x = shape_points) max(x[0])]); function min_y(shape_points) = min([ for (x = shape_points) min(x[1])]); function max_y(shape_points) = max([ for (x = shape_points) max(x[1])]); height = 5; width = 0.20000000298;

Tiếp theo là một nhóm các định nghĩa đường kẻ. Chúng được đặt tên theo tên nội bộ của Inkscape. Tên gọi có thể dễ hiểu hoặc không, tùy thuộc vào cách bạn vẽ chúng. Thường sẽ có khá nhiều định nghĩa ở đây. Ví dụ:

path4807_0_points = [[-5.845255,2.425518],[-3.310449,-0.509821],[-1.975026,-1.552367],[-0.578824,-2.215045],[0.889731,-2.425518],[2.442214,-2.111448],[4.090197,-1.200495],[5.845255,0.379678]]; module poly_path4807(h, w, res=4) { scale([profile_scale, -profile_scale, 1]) union() { for (t = [0: len(path4807_0_points)-2]) { hull() { translate(path4807_0_points[t]) cylinder(h=h, r=w/2, $fn=res); translate(path4807_0_points[t + 1]) cylinder(h=h, r=w/2, $fn=res); } } }}

Một số hình sẽ có thêm các biến NNNN_paths bên cạnh NNNN_points, dành cho các hình phức tạp hoặc lồng nhau như chữ B in hoa chẳng hạn.

Cuối cùng là phần khối mã nơi các hình đã định nghĩa ở trên được gọi, thực thi và chuyển thành đối tượng. Ví dụ:

// Các hình khối poly_XDiv2(height, width); poly_YDiv2(height, width); poly_YDiv1(height, width); poly_rect4809(height, width); poly_YDiv3(height, width); poly_path4702(height, width); poly_path4736(height, width);

Bạn có thể comment (vô hiệu hóa) một vài dòng này nếu muốn tách riêng các hình khối cụ thể.

Cuối cùng, có 4 hàm hỗ trợ đã được thêm vào phần đầu. Nếu muốn thay đổi tỷ lệ hình khối sang kích thước khác, bạn có thể dùng các hàm này để tìm giá trị X, Y min/max của hình và điều chỉnh lại. Bạn có thể tạo một dòng mã như sau:

// Tính toán tỷ lệ phù hợp cho một đường cong tùy ý,// để chiều cao profile của nó bằng wanted_height.// với shape là biến NNN_points. new_scale = wanted_height / (max_y(shape) - min_y(shape));

Sau đó, dùng lệnh scale(new_scale) {...} trong openSCAD phía trên lệnh polygon. Điều này sẽ giúp đưa nó về đúng chiều cao mong muốn theo trục Y.

Giấy phép

Tác phẩm này được cấp phép theo

GNU General Public License v2.0

GPL 2.0

Yêu cầu ghi công
Remix & phái sinh Được phép
Sử dụng thương mại Được phép

File mô hình

TẤT CẢ FILE MÔ HÌNH (3 Tập tin)
Đang tải files, vui lòng chờ...
Vui lòng đăng nhập để bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Vui lòng đăng nhập để khoe bản in của bạn.

Chưa có bản in nào được khoe. Hãy là người đầu tiên!

Remix (0)