Skip to content

Instantly share code, notes, and snippets.

@rniwase
Last active May 24, 2021 05:01
Show Gist options
  • Save rniwase/7c391bcb6e6442e262182d9b13898d5f to your computer and use it in GitHub Desktop.
Save rniwase/7c391bcb6e6442e262182d9b13898d5f to your computer and use it in GitHub Desktop.
自作ユーロラックのレールナットホルダー加工Gコード生成スクリプト
NUM_X = 24
NUM_Y = 4
SPAN_X = 8.0
SPAN_Y = 8.0
FILE_HOLE = "hole.ngc"
FILE_INNER = "inner.ngc"
FILE_OUTER = "outer.ngc"
HEADER_COM = """G21
G90
G94
G40
G64
F100.0
S1.0
M08
G04 P2.0
"""
FOOTER_COM = """G00 X0.000Y0.000
M09
M02
"""
GC_HOLE = """G91
G00 X3.500Y3.500
M03
G04 P1.5
M05
G04 P1.0
G90
"""
GC_INNER = """G91
G00 X1.900Y1.900
M03
G04 P1.0
G01 X0.000Y3.200
G01 X3.200Y0.000
G01 X0.000Y-3.200
G01 X-3.200Y0.000
G01 X-0.900Y-0.900
G01 X0.000Y5.000
G01 X-0.1464Y0.1464
G01 X0.1464Y-0.1464
G01 X5.000Y0.000
G01 X0.1464Y0.1464
G01 X-0.1464Y-0.1464
G01 X0.000Y-5.000
G01 X0.1464Y-0.1464
G01 X-0.1464Y0.1464
G01 X-5.000Y0.000
G01 X-0.1464Y-0.1464
G01 X0.1464Y0.1464
M05
G04 P1.0
G90
"""
GC_OUTER = """G91
G00 X-0.500Y-0.500
M03
G04 P1.0
G01 X8.000Y0.000
G01 X0.000Y8.000
G01 X-8.000Y0.000
G01 X0.000Y-8.000
M05
G04 P1.0
G90
"""
with open(FILE_HOLE, "w") as f:
f.write(HEADER_COM)
for y in range(NUM_Y):
for x in range(NUM_X):
f.write("G00 X{:.3f}Y{:.3f}\n".format(x*SPAN_X, y*SPAN_Y))
f.write(GC_HOLE)
f.write(FOOTER_COM)
with open(FILE_INNER, "w") as f:
f.write(HEADER_COM)
for y in range(NUM_Y):
for x in range(NUM_X):
f.write("G00 X{:.3f}Y{:.3f}\n".format(x*SPAN_X, y*SPAN_Y))
f.write(GC_INNER)
f.write(FOOTER_COM)
with open(FILE_OUTER, "w") as f:
f.write(HEADER_COM)
for y in range(NUM_Y):
for x in range(NUM_X):
f.write("G00 X{:.3f}Y{:.3f}\n".format(x*SPAN_X, y*SPAN_Y))
f.write(GC_OUTER)
f.write(FOOTER_COM)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment