@all3dp/material-structure

The all3dp material structure

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
@all3dp/material-structure
Minified + gzip package size for @all3dp/material-structure in KB

Readme

Material structure

Editing

The whole material structure is held inside the ./material-structure folder. Please just edit files there.

Process

Please only edit on a feature branch, never edit the master directly. File a pull request to master. If you like to release the structure, checkout master and run npm run release major | minor | patch. This bumps the version and creates a new release. Then travis deploys it to npm.

Using

The files in export should be imported by the server.

Structure

The material-structure folder contains the all material groups. They are stored in the material-groups folder. Each material group is represented by a folder e.g. metals. Each folder representing a material group contains a index.yml which holds the data of this material group.

name: Metals

Each material group contains a materials folder holding all materials inside this group e.g. brass. Inside each material folder there is again a index.yml representing the material.

name: Nylon
description: >-
  Nylon (polyamide) is a fantastic all-round material with great monetary value.
  Thanks to its strength and flexibility, it’s extremely versatile, suitable for functional parts, jewelry, and many more applications.
  When thin, it’s flexible enough for springs – when thick, it’s strong enough for functional parts.
  It comes in many colors, and its surface can be polished and dyed.
  This material is 3D printed on industrial grade 3D printers, offering the highest quality, using a process called selective laser sintering (SLS).
featuredImage: gallery/material-sf.jpg
descriptionShort: 'Best, cheap all-round material'

Also there is a folder finish-groups which holds all finish groups belonging to the material e.g polished. The finish group folder also holds a index.yml which represents its data.

properties:
  printingMethod: Selective Laser Sintering (SLS)
  printingMethodShort: SLS
  printingServiceName:
    shapeways: Strong Flexible Plastic
    imaterialise: Polyamide (SLS)
    sculpteo: Nylon PA12
  materialSpec: EOS PA 2200 (PA 12)
  flexibility: 4
  levelOfDetail: 3
  freedomOfDesign: 4
  postProcessing: 4
  waterproof: false
  foodSafe: false
  dishwasherSafe: true
  interlockingAndEnclosedParts: true
  recyclable: false
materialName: Nylon
name: Raw
featuredImage: gallery/material-sf.jpg
description: >-
  Professionally 3D printed nylon, raw and dyed, with natural color options available.
descriptionShort: 'Solid or dyed nylon with a raw surface'

Inside a finish group there is a material-configs folder holding all material configs for this group. All files inside this folder represent a material config e.g.

name: Natural
color: Natural Multicolor
colorCode: '#98A0A3'
colorImage: color_images/sandstone_full_color.jpg
legacyId: '{}'
printingService:
  sculpteo:
    productionTimeFast: 2
    productionTimeSlow: 4
    materialId: color_plastic
    printingMethodShort: Binder Jetting
    printingMethod: Binder Jetting (Bronze Infusion)
    materialName: Composite Multicolor
  shapeways:
    productionTimeFast: 6
    productionTimeSlow: 8
    materialId: '26'
    printingMethodShort: Binder Jetting
    printingMethod: Binder Jetting (Bronze Infusion)
    materialName: Full Color Sandstone
  imaterialise:
    productionTimeFast: 6
    productionTimeSlow: 8
    materialId: 38cb671d-4df6-458c-9f17-85cf3d28b990
    finishId: cb1b1042-aff5-4c6c-af2a-96dfbbfcfa58
    printingMethodShort: Binder Jetting
    printingMethod: Binder Jetting (Bronze Infusion)
    materialName: Multicolor

Templates

On each level there are files beginning wit an underscore (_). These are templates which inherit their values to all children.

E.g. the file _material.yml inherits all attributes to each material in the structure under this folder.

Order Materials

To order the files just prefix them with a string like 1-....

Important

Empty yaml files

An empty file needs to have the content {} which is the yaml representation of an empty object.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.