Các dấu ngoặc đơn có được phép trong một nhận xét mã G không?


9

Tôi tự hỏi nếu đoạn mã G này là hợp lệ:

G0 (Some comment (Its G0 command)) Y10 Z-5

Tôi đã thử nghiệm điều này trên máy CNC Trung Quốc của tôi và nó loại bỏ nhận xét và hoạt động hoàn hảo.

Máy xử lý điều này G0Y10Z-5có vẻ như là cách tiếp cận chính xác với tôi.

Tuy nhiên tôi chưa bao giờ thấy nhận xét như vậy trong thực tế CNC. Sẽ thật tuyệt nếu có ai có thể thử nó trên Máy in CNC / 3D của họ.

Nhiều trình giả lập mã G trên internet không thể xử lý một dòng như vậy trong trình phân tích cú pháp của chúng để nó làm tôi bối rối. Tôi chưa tìm thấy gì về nó trên RepRap Wiki hoặc thậm chí Google.


BTW ... Chào mừng bạn đến với In 3D! : o)
Psᴛᴇʀ2

1
Tại sao không sử dụng start-of-line ";" và tránh mọi rủi ro?
Carl Witthoft

Đối với một khoản phí danh nghĩa :-), tôi sẽ viết một biểu thức rút tất cả "(*)" ra và thay thế bằng một dòng mới "; *" Hãy để cuộc chiến ngọn lửa sed vs awk bắt đầu.
Carl Witthoft

Bạn nói đúng Carl. Tôi chỉ quan tâm đến mã của bên thứ ba mà tôi có thể cần phải xử lý một ngày nào đó. Cá nhân tôi chỉ sử dụng; bình luận. :-)
Jan Vorisek

Câu trả lời:


12

Đây không phải là mã G hợp lệ trên toàn cầu và cách xử lý nó phụ thuộc vào việc triển khai. Bạn có thể sử dụng phong cách bình luận này trên một số máy, nhưng không phải tất cả.

Cách phân tích cú pháp được sử dụng để thực hiện trong Marlin (phần sụn máy in 3D rất phổ biến), nó sẽ hoạt động tốt trừ khi chuỗi nhận xét bao gồm ký tự X, Y, Z, E hoặc F. Trình phân tích cú pháp chỉ đơn giản là tìm sự xuất hiện đầu tiên của X / Y / Z / E / F và sau đó cố gắng phân tích bit văn bản xuất hiện sau ký tự đó thành một số. Nếu chuỗi không thể được phân tích cú pháp dưới dạng số, thay vào đó, nó mặc định là 0. Ví dụ,

 G0 (Some comment containing the character Y) Y10 Z-5

sẽ được hiểu là G0 Y0 Z-5và không phải G0 Y10 Z-5bởi vì ")" (chuỗi xuất hiện sau lần xuất hiện đầu tiên của "Y") không phân tích thành bất kỳ số hợp lệ nào. Ví dụ của bạn hoạt động tốt vì chuỗi nhận xét không chứa bất kỳ ký tự đặc biệt nào.

Marlin không hỗ trợ các bình luận cuối dòng, nên bắt đầu bằng dấu chấm phẩy và tiếp tục cho đến cuối dòng.

Đây là cách nó được sử dụng để làm việc trong các phiên bản Marlin cũ hơn. Các phiên bản Marlin mới hơn có trình phân tích cú pháp nâng cao hơn, nhưng nó vẫn không chơi tốt với các nhận xét kiểu dấu ngoặc đơn này. Tốt nhất là tránh chúng, vì tính tương thích không được đảm bảo.


Điều này nghe còn kỳ lạ hơn với tôi. Không có bình luận nào về hành vi này, ví dụ như trong RepRap reprap.org/wiki/G-code#Comments
Jan Vorisek 16/07/18

@JanVorisek Tôi chỉ nhận thấy nó hơi khác trong các phiên bản mới hơn của Marlin. Tuy nhiên, các nhận xét kiểu dấu ngoặc đơn không được hỗ trợ.
Tom van der Zanden

1
Bạn đúng rồi. Chỉ cần kiểm tra một vài trình phân tích cú pháp bao gồm Marlin. Tôi đã đi đến kết luận rằng hầu hết các phần mềm máy in 3D chỉ phân tích dấu chấm phẩy dưới dạng nhận xét. Hình như dấu ngoặc đơn là / were? cách ưa thích trong máy phay CNC. Tôi sẽ sử dụng dấu chấm phẩy khi tôi quan tâm đến việc in 3D. Dù sao cũng cảm ơn bạn đã dành thời gian :-)
Jan Vorisek 16/07/18

4

Có vẻ như các bình luận bên trong dấu ngoặc đơn không được phép trong nhiều trình phân tích cú pháp (ví dụ: Marlin). Điều này dường như đúng với hầu hết các máy in 3D. Máy phay CNC cổ điển sử dụng dấu ngoặc đơn mà không gặp vấn đề gì.

Nó nên hoạt động trên máy in Prusa như được nêu trong Wiki của họ . Thật không may, không có từ nào về việc lồng các ý kiến.

Tuy nhiên tôi đã tìm thấy một bình luận trên các diễn đàn cnczone.com liên quan đến việc lồng các bình luận trong ngoặc đơn.

Các ký tự có thể in và khoảng trắng bên trong dấu ngoặc đơn là một nhận xét. Dấu ngoặc trái luôn bắt đầu một nhận xét. Nhận xét kết thúc ở dấu ngoặc đơn bên phải đầu tiên được tìm thấy sau đó.

Khi dấu ngoặc đơn bên trái được đặt trên một dòng, dấu ngoặc đơn bên phải phù hợp phải xuất hiện trước khi kết thúc dòng.

Bình luận có thể không được lồng nhau; đó là lỗi nếu tìm thấy dấu ngoặc đơn bên trái sau khi bắt đầu nhận xét và trước khi kết thúc nhận xét.

Dưới đây là một ví dụ về một dòng chứa một bình luận: G80 M5 (stop motion)

Nguồn: cnczone.com

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.