1 / 1
ISO 7380 Hex Socket Button Screw Gridfinity Printable Label — zdjęcie 1

ISO 7380 Hex Socket Button Screw Gridfinity Printable Label

Zamów wydruk tego modelu

Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.

Zapisane na tym urządzeniu.

ISO 7380 Hex Socket Button Screw Label for Gridfinity Boxes

Ocena
5 / 5
Polubienia
25
Pobrania
160
Wydruki
1
Wyświetlenia
558
Oceny
1

Aktualizacja u źródła:

Informacje o modelu

Źródło
Printables
Kategoria
Organizers
Licencja
Creative Commons — Attribution — Noncommercial

Thanks to @Eistee_158202 for providing the resources that allowed me to generate the labels. For more info have a look at: https://www.printables.com/model/676564-gridfinity-bin-labels-hexagon-socket-head-cap-scre

I uploaded only a few for preview M2-M4, for more options have a look at the zip files provided.

For M2.5 the parametric text floating precision has to be changed to 1, so it has to be run separatly.

Code

# Author-
# @Eistee_158202

import adsk.core import adsk.fusion import adsk.cam import traceback import os import shutil

def run(context): ui = None try: app = adsk.core.Application.get() ui = app.userInterface design = adsk.fusion.Design.cast(app.activeProduct)

    # Get the root component of the active design
    rootComp = design.rootComponent

    # Specify the folder to write out the results.
    folder = 'C:/Temp/ISO_7380_button_hex_label'

    # Get the parameters named "bolt_length_l" and "Box_width" which are defined in my parametric Fusion360 model and change them.
    MParam = design.allParameters.itemByName('M')
    bolt_lengthParam = design.allParameters.itemByName(
        'bolt_length_l')  # Parameter in Fusion360
    Box_widthParam = design.allParameters.itemByName(
        'Box_width')  # Parameter in Fusion360
    cnt = 1  # counter for figures
    M = 3  # Modul of bolt
    Box_width = 1  # width of the label
    for M in (2, 3, 4, 5, 6, 8, 10):  # list of Moduls to be looped through
        for Box_width in (1, 2):  # make the labels in different width
            for length in range(4, 200):  # loop over length of bolt from 4 to 200
                if length % 2 == 0 or length % 5 == 0:  # only do bolt length if it is dividable by 2 or 5
                    Box_widthParam.expression = str(
                        Box_width)  # make this a string
                    MParam.expression = str(M)  # make this a string
                    bolt_lengthParam.expression = str(
                        length)  # make this a string
                    app.fireCustomEvent(
                        'thomasa88_ParametricText_Ext_Update')
                    adsk.doEvents()
                    adsk.doEvents()    # Don't know why, but it works only stable if you call it twice
                    # Construct the output filename.
                    newfolder_M = folder + "/" + "M" + str(M)
                    newfolder_width = newfolder_M + \
                        '/' + str(Box_width) + '_width'
                    # make a new folder
                    os.makedirs(newfolder_M, exist_ok=True)
                    # make a new folder
                    os.makedirs(newfolder_width, exist_ok=True)
                    variantname = str(Box_width) + 'width_M' + \
                        str(M) + 'x' + str(length)
                    filename = newfolder_width + '/' + variantname + '.stl'

                    # Save the file as STL.
                    exportMgr = adsk.fusion.ExportManager.cast(
                        design.exportManager)
                    stlOptions = exportMgr.createSTLExportOptions(rootComp)
                    stlOptions.meshRefinement = adsk.fusion.MeshRefinementSettings.MeshRefinementMedium
                    stlOptions.filename = filename

                    # Screenshot the variant and save to file
                    screenshotfilename = folder + '/' + \
                        str(f"{cnt:02d}") + "_" + variantname + '.jpg'
                    app.activeViewport.saveAsImageFile(
                        screenshotfilename, 1600, 1000)
                    cnt = cnt+1

                    exportMgr.execute(stlOptions)
            zip_file_path = folder + '/' + \
                str(Box_width) + 'width_M' + \
                str(M)  # zip folder to archive
            shutil.make_archive(zip_file_path, 'zip', newfolder_width)

    ui.messageBox('Finished.')
except:
    if ui:
        ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))