PerfectVector
Bởi Irene Kim

Kiểm tra thứ tự đường AxiDraw trước khi vẽ SVG

So sánh các bản xem trước SVG ngoại tuyến của AxiDraw để kiểm tra thứ tự đường dẫn, sự đảo ngược và chuyển động bằng bút giơ lên ​​từ giấy. Bảo toàn hình học bản vẽ và hiểu những gì SVG đã lưu giữ lại.

12 phút đọc
Trên trang này

Để tối ưu hóa việc di chuyển bút SVG trong AxiDraw, trước tiên hãy xác nhận rằng các đường dẫn sẽ vẽ các điểm bạn muốn. Sau đó so sánh các bản xem trước ngoại tuyến với cùng hình dạng và cài đặt cố định. Việc sắp xếp lại có thể rút ngắn chuyển động của bút khi bút được nâng lên mà không làm giảm số lần nâng hoặc thay đổi hình vẽ.

Giữ SVG gốc của bạn. Bản xem trước bên dưới kiểm tra thứ tự và đảo ngược đường dẫn tùy chọn; nó không tái tạo lại các đường trung tâm, sửa chữa các đường viền không mong muốn hoặc sắp xếp lại vĩnh viễn các đối tượng SVG ban đầu. Thử nghiệm của chúng tôi sử dụng tám nét mở được tạo sẵn, không phải đường viền được vector hóa từ PerfectVector hoặc bản vẽ bằng bút vật lý.

Thử với hình ảnh của chính bạn
Mở công cụ đầy đủ
Dùng thử miễn phí. Thả ảnh vào để xem trước bản vector của bạn, không cần đăng ký.

Chẩn đoán các bước nhảy trước khi thay đổi thứ tự

Chuyển động của bút chạm vào giấy là con đường tạo nên dấu vết. Chuyển động của bút giơ lên ​​khỏi giấy là chuyển động giữa các dấu khi bút giơ lên. Một bức vẽ ngắn có thể có chuyển động dài bằng bút nhấc lên khỏi giấy khi các vật thể liên tiếp nằm cách xa nhau.

Bản xem trước hiển thị những gìĐiều cần giải quyết trước tiên
Hai cạnh xung quanh một đường nên là một nétXây dựng tuyến đường đơn dự định
Một chu vi trống nơi bạn muốn có một khu vực bóng mờTạo đường dẫn bút tô điểm rõ ràng
Đánh dấu đúng nhưng lặp lại nhiều lần trên trangSo sánh cài đặt trình tự đường dẫn và đảo ngược hướng đường dẫn bên dưới
Các đường không mong muốn được vẽ giữa các dấu riêng biệtKiểm tra hình học bút xuống và nối đường dẫn trước khi chấp nhận bất kỳ tuyến đường ngắn hơn nào

Đo Độ dài đường dẫn SVG sẽ trả lời hình học của bản vẽ dài bao nhiêu. Bản thân nó không bao gồm hành trình của máy giữa các đường dẫn đó.

Tham chiếu CLI AxiDraw phân biệt các cài đặt này: 0 thường tuân theo thứ tự tài liệu với khả năng nối có sẵn, 1 cũng sắp xếp lại các đường dẫn và 2 cũng cho phép đảo ngược đường dẫn. Việc kết nối các đường vẽ liền kề là một quyết định riêng biệt. Để so sánh, chúng tôi vô hiệu hóa nó bằng min_gap = -1 để các nét liền kề không thể trở thành một dấu liên tục.

Sự đảo ngược có thể quan trọng đối với công việc nhạy cảm với hướng. Nếu bản vẽ phải tuân theo một trình tự hoặc hướng viết cụ thể thì lộ trình di chuyển ngắn hơn với bút giơ lên ​​không đủ lý do để chấp nhận cài đặt 2. Các lớp cũng hạn chế việc sắp xếp; Các nhóm lồng nhau không nên được coi là duy trì trình tự vẽ được tối ưu hóa. Kiểm tra bản xem trước thực tế cho tài liệu của bạn.

Chạy ba bản xem trước ngoại tuyến trên SVG không thay đổi

Ví dụ này yêu cầu Python và API Python AxiDraw chính thức. Chúng tôi đã thử nghiệm API 3.9.6 với Python 3.9.6. Làm theo hướng dẫn cài đặt chính thức nếu mô-đun không được cài đặt trong môi trường Python mà bạn sử dụng.

Tham chiếu API Python xác định bản xem trước là mô phỏng ngoại tuyến. Đặt preview = True sau plot_setup và trước plot_run. Đoạn script bên dưới luôn đặt và xác nhận nó; nó không chứa cuộc gọi kết nối thiết bị.

Lưu ví dụ nhỏ này dưới dạng eight-strokes.svg hoặc sử dụng bản sao SVG của riêng bạn:

<svg xmlns="http://www.w3.org/2000/svg" width="100mm" height="80mm" viewBox="0 0 100 80">
  <g fill="none" stroke="#152b3b" stroke-width="0.4">
    <path id="stroke-0" d="M 10 20 L 18 20"/>
    <path id="stroke-1" d="M 88 60 L 80 60"/>
    <path id="stroke-2" d="M 20 20 L 28 20"/>
    <path id="stroke-3" d="M 78 60 L 70 60"/>
    <path id="stroke-4" d="M 30 20 L 38 20"/>
    <path id="stroke-5" d="M 68 60 L 60 60"/>
    <path id="stroke-6" d="M 40 20 L 48 20"/>
    <path id="stroke-7" d="M 58 60 L 50 60"/>
  </g>
</svg>

Thiết bị cố định có khung nhìn 100 × 80 mm và kích thước viewBox phù hợp. Ánh xạ mỗi đơn vị tọa độ tới 1 mm ở đây, tuân theo ánh xạ khung nhìn và khung nhìn của SVG. Mỗi trong số tám nét của nó dài 8 mm.

Lưu thông tin sau dưới dạng preview-orders.py:

from pathlib import Path
import json
import sys
from pyaxidraw import axidraw
 
source = Path(sys.argv[1]).resolve()
destination = Path(sys.argv[2])
destination.mkdir()  # Use a new directory; preserve previous results.
reports = []
for order in (0, 1, 2):
    ad = axidraw.AxiDraw()
    ad.plot_setup(str(source))
    ad.options.preview = True
    ad.options.rendering = 3
    ad.options.reordering = order
    ad.options.random_start = False
    ad.options.auto_rotate = False
    ad.options.report_time = False
    ad.params.min_gap = -1
    assert ad.options.preview is True
    output = ad.plot_run(True)
    if ad.errors.code:
        raise RuntimeError(f"Preview error: {ad.errors.code}")
    (destination / f"preview-order-{order}.svg").write_text(output)
    reports.append({
        "order": order,
        "pen_down_m": ad.distance_pendown,
        "pen_up_m": ad.distance_total - ad.distance_pendown,
        "pen_lifts": ad.pen_lifts,
    })
report = json.dumps(reports, indent=2)
(destination / "distances.json").write_text(report + "\n")
print(report)

Chạy nó với môi trường Python chứa API chính thức, sử dụng tên thư mục đầu ra mới:

python3 preview-orders.py eight-strokes.svg preview-check

Nó lưu ba SVG chẩn đoán và distances.json. rendering = 3 bao gồm cả chuyển động nâng lên và chuyển động vẽ. Khởi động ngẫu nhiên và xoay tự động bị tắt; việc tham gia đường dẫn bị vô hiệu hóa. Giữ những lựa chọn đó cố định khi so sánh tệp của riêng bạn. Tập lệnh này là một phương pháp kiểm tra ngoại tuyến, không phải là lệnh để vận hành máy vẽ.

So sánh chuyển động với hình học được vẽ và vẽ bằng bút riêng biệt

Trong trận đấu tám gậy của chúng tôi, kịch bản chính xác được tạo ra:

Sắp xếp lạiƯớc lượng chuyển động khi bút giơ lên ​​khỏi mặt giấyChuyển động khi bút chạm vào giấyMức tăng được báo cáo
00,509749 m0,064m8
10,223592 m0,064m8
20,180919 m0,064m8

Đây là ước tính phần mềm gốc cho tệp này, bao gồm cả quãng đường di chuyển từ đầu đến cuối. Khoảng cách bút xuống ở mức 64 mm và số lần nâng ở mức 8. Chuyển động ngắn hơn khi bút giơ lên ​​khỏi tờ giấy không có nghĩa là ít lần nâng bút hơn. Chúng tôi không đo lường một bản vẽ vật lý bằng bút, thời gian vẽ đã trôi qua hoặc sự cải thiện được đảm bảo cho một bản vẽ khác.

Các bản xem trước AxiDraw xếp chồng lên nhau hiển thị tám nét vẽ màu xanh lam không thay đổi trong khi các đường di chuyển màu đỏ tươi với bút giơ lên ​​khác nhau giữa thứ tự 0 và hai; độ tương phản hiển thị và trọng lượng nét được tăng cường.
Bản chụp xem trước thực tế của các bản sao hiển thị đường dẫn SDK gốc xếp chồng lên nhau, được hiển thị bằng resvg. Màu xanh là bút xuống; màu đỏ tươi là bút lên. Màu sắc và trọng lượng nét được tăng cường để dễ đọc; tọa độ đường dẫn gốc không thay đổi. Không có máy vẽ nào được kết nối.

Hình xếp chồng so sánh các cài đặt 0 và 2; bảng cũng bao gồm 1. Nó hiển thị các bản sao của đường dẫn xem trước SDK gốc với màu xanh lam và đỏ tươi đậm hơn cũng như các nét dày hơn để dễ đọc. Đây là kiểu hiển thị, không phải chiều rộng bút vật lý. Các tọa độ và biến đổi đường dẫn gốc không thay đổi; khung nhìn hiển thị cắt không gian chưa sử dụng. Tất cả ba bản xem trước gốc đều được kiểm tra và kiểm tra hình học độc lập đã tìm thấy tám đoạn vẽ ngang giống nhau, cho phép đảo ngược thứ tự điểm cuối của chúng. Mỗi đỉnh bút xuống được lấy mẫu vẫn nằm trên đoạn dự định của nó.

Đối với tệp của bạn, hãy mở từng SVG xem trước và kiểm tra lớp vẽ riêng biệt với lớp di chuyển nâng lên. Xác nhận kích thước và vị trí trang dự định, tất cả các dấu dự kiến, các lỗ hoặc khoảng trống không thay đổi và không có đầu nối mới được vẽ. Kiểm tra xem mọi hành trình đảo ngược có được chấp nhận hay không. Từ chối tuyến đường có điểm sai ngay cả khi báo cáo khoảng cách của nó nhỏ hơn.

Hiểu những gì bản xem trước đã lưu giữ lại

tài liệu sắp xếp lại của AxiDraw giải thích rằng việc tối ưu hóa diễn ra trong một bản sao tạm thời. Các đối tượng ban đầu trong SVG đầu ra đã lưu vẫn giữ nguyên thứ tự ban đầu của chúng. Tương tự, kết quả đầu ra của chúng tôi vẫn giữ lại mọi đường dẫn stroke-* ban đầu và trình tự ban đầu của nó.

Do đó, preview-order-2.svg là bản xem trước chẩn đoán, không phải là bằng chứng cho thấy chương trình khác sẽ đọc tệp tác phẩm nghệ thuật được sắp xếp lại vĩnh viễn. Giữ nguồn, phương án đã chọn và báo cáo so sánh cùng nhau. Khi sử dụng bản gốc với AxiDraw sau này, hãy áp dụng lại cài đặt thứ tự dự định trong quy trình vẽ đồ thị thích hợp.

Nếu vấn đề của bạn là vẽ hình học không mong muốn, hãy quay lại bước xây dựng tuyến đường. Nếu chỉ có lộ trình di chuyển với bút giơ lên ​​là lãng phí, hãy so sánh các bản xem trước cài đặt cố định. Kích thước vật lý, hành vi của bút và hoạt động của máy vẫn cần có sự kiểm tra riêng; điều khiển ngoại tuyến này không chứng minh được chúng.

Nơi PerfectVector phù hợp trước lần kiểm tra này

Nếu bạn vẫn chỉ có tác phẩm nghệ thuật raster và muốn các hình có đường viền hiển thị được tô màu dưới dạng hình vectơ có thể chỉnh sửa thì Trình tạo vectơ hình ảnh của PerfectVector có thể là bước phù hợp trước đó. Kiểm tra bản xem trước của nó dựa trên các đường viền và lỗ hổng của nguồn. Nó không suy ra một đường trung tâm duy nhất hoặc tối ưu hóa thứ tự đường dẫn AxiDraw; sử dụng quy trình làm việc của đường trung tâm hoặc cửa sập khi đó là những tuyến đường bạn cần.

Nếu bạn đã có các tuyến SVG chính xác, hãy giữ chúng và thực hiện kiểm tra ngoại tuyến trực tiếp. Việc truy lại SVG không bổ sung thêm thông tin đặt hàng nào bị thiếu. Bản xem trước được bảo vệ của PerfectVector chỉ ở chế độ xem; chỉnh sửa và xuất kết quả yêu cầu mở khóa nó.

Câu hỏi thường gặp

Việc sắp xếp lại AxiDraw có thay đổi vĩnh viễn thứ tự đối tượng SVG của tôi không? Không. Tối ưu hóa tài liệu sử dụng bản sao tạm thời. Bản xem trước đã lưu chứa các lớp chuyển động chẩn đoán, trong khi các đối tượng tác phẩm nghệ thuật gốc vẫn giữ nguyên thứ tự của chúng. Giữ riêng cài đặt đã chọn.

Tại sao chuyển động của cây bút được nâng lên từ tờ giấy lại co lại trong khi số lần nâng vẫn giữ nguyên? Tám nét riêng biệt tương tự có thể được truy cập theo một trình tự hoặc hướng khác nhau. Trong tài liệu tham khảo thử nghiệm của chúng tôi với tính năng nối đường dẫn bị vô hiệu hóa, tất cả các cài đặt đều báo cáo tám lần nâng và 64 mm bản vẽ, trong khi chuyển động khi bút nâng lên đã thay đổi.

Việc đặt hàng có thể sửa được đường viền kép hoặc tạo bóng không? Không. Hãy sửa đường vẽ trước. Sử dụng quy trình làm việc theo đường trung tâm cho một nét đơn hoặc xây dựng các đường tô bóng rõ ràng để tạo bóng cho khu vực, sau đó so sánh thứ tự trên hình học được chấp nhận đó.

Nguồn

  1. AxiDraw — Tham khảo API Python — Xác định xem trước và hiển thị ngoại tuyến, với các ví dụ trả về SVG xem trước.
  2. AxiDraw — Tham khảo CLI — Bao gồm cài đặt, sắp xếp đường dẫn và cài đặt đảo ngược hướng đường dẫn, xử lý lớp và tối ưu hóa tạm thời.
  3. W3C — Hệ tọa độ SVG, Chuyển đổi và Đơn vị — Giải thích ánh xạ khung nhìn được sử dụng bởi ví dụ về thứ nguyên.

Bạn vẫn đang bắt đầu từ một bản vẽ raster có các hình dạng được phác thảo bằng màu tô mà bạn cần? Bắt đầu miễn phí với hình ảnh của chính bạn, sau đó kiểm tra các đường viền và lỗ hổng của bản xem trước so với nguồn. Khi đã tồn tại các tuyến bút dự định, hãy kiểm tra thứ tự của chúng một cách riêng biệt bằng phương pháp ngoại tuyến ở trên.

Thêm từ blog

PerfectVector

Biến hình ảnh của bạn thành
SVG có thể chỉnh sửa

Vector hóa và kiểm tra bản xem trước miễn phí, không giới hạn theo ngày.