Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update MultiPassWeld schema #790

Merged
merged 4 commits into from
Jul 22, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@
changes
=======
- Updated the outdated tutorial about the `LocalCoordinateSystem` [:pull:`775`]
- ``weld_seam`` is now a required field in the ``multi_pass_weld`` schema [:pull:`790`]

fixes
=====

- `MathematicalExpression` now uses SciPy and NumPy in numerical function evaluation. This enables it to use
advanced integration methods and fixes lengths computation of `DynamicShapeSegment` [:pull:`770`].
- Fix errors in tutorial about quality standards [:pull:`777`]

********************
0.6.1 (19.05.2022)
Expand All @@ -34,7 +36,6 @@ fixes

- Fix interactive ``view_tree`` display [:pull:`756`].
- Increase ``mypy`` coverage and update type hints and GH action [:pull:`753`].
- Fix errors in tutorial about quality standards [:pull:`777`]

dependencies
============
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,17 +50,18 @@ definitions:

type: object
properties:
workpiece:
description: |
The workpiece to be welded defined by the base metal and the geometric description of the weld seam.
type: object
workpiece:
description: |
The workpiece to be welded defined by the base metal and the geometric description of the weld seam.
type: object

weld_seam:
description: |
List of weld seams composing the final weldment.
type: array
items:
$ref: "#/definitions/weld_seam"

weld_seam:
description: |
List of weld seams composing the final weldment.
type: array
items:
$ref: "#/definitions/weld_seam"

examples:
-
Expand Down
147 changes: 147 additions & 0 deletions weldx/schemas/weldx.bam.de/weldx/datamodels/multi_pass_weld-0.1.1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
%YAML 1.1
---
$schema: "http://stsci.edu/schemas/yaml-schema/draft-01"
id: "asdf://weldx.bam.de/weldx/schemas/datamodels/multi_pass_weld-0.1.1"

title: |
A generic multi-layer GMAW weldment.
description: |
This schema describes a welding application consisting of multiple passes.

The individual weldments are hierarchically grouped into beads, layers and seams. This is reflected by a nested array
with the name `weld_seam` and a nesting depth of 4 (seam, layer, bead, weldment).

Each weldment may contain the following data:

- process
- TCP
- welding_current
- welding_voltage

The `process` entry contains all relevant data that describes the welding process. A comprehensive list of all
optional and required fields can be [found here](https://weldx.readthedocs.io/projects/weldx-standard/en/latest/generated/schemas/process/terms-0.1.0.html#base_process).
`TCP` describes the trajectory of the torch during the weldment process. The TCP data of all weldments must be
defined in relation to the workpiece coordinate system.
The welding_current and welding_voltage entries refer to signals containing the final measurement data of corresponding dimensions [current] and [voltage].

> Note that this schema is currently work in progress and some optional data might become required in the future.

definitions:
weld_seam:
description: |
A single weld seam consisting of one or more layers.
type: array
items:
$ref: "#/definitions/weld_layer"

weld_layer:
description: |
A single weld layer consisting of one or more beads.
type: array
items:
$ref: "#/definitions/weld_bead"

weld_bead:
description: |
A single weld bead consisting of one or more weldments.
type: array
items:
$ref: "./terms-0.1.0#/weldment"

type: object
properties:
workpiece:
description: |
The workpiece to be welded defined by the base metal and the geometric description of the weld seam.
type: object

weld_seam:
description: |
List of weld seams composing the final weldment.
type: array
items:
$ref: "#/definitions/weld_seam"
required: [weld_seam]


examples:
-
- Two seams with a single layer and bead, but the first seam has two weldments while the second has only one.
- |
!<tag:stsci.edu:asdf/core/asdf-1.1.0>
weld_seam:
- - - - TCP: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0>
time: !<asdf://weldx.bam.de/weldx/tags/time/timedeltaindex-0.1.0>
values: !core/ndarray-1.0.0
data: [0, 30000000000]
datatype: int64
shape: [2]
start: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M0S
end: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M30S
min: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M0S
max: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M30S
coordinates: !<asdf://weldx.bam.de/weldx/tags/core/variable-0.1.1>
name: coordinates
dimensions: [c]
dtype: <f8
units: !<asdf://weldx.bam.de/weldx/tags/units/units-0.1.0> millimeter
data: !core/ndarray-1.0.0
data: [[0, 0, 0], [50, 0, 0]]
datatype: float64
shape: [2, 3]
welding_voltage: !<asdf://weldx.bam.de/weldx/tags/core/time_series-0.1.1>
units: !<asdf://weldx.bam.de/weldx/tags/units/units-0.1.0> volt
value: 30
welding_current: !<asdf://weldx.bam.de/weldx/tags/core/time_series-0.1.1>
units: !<asdf://weldx.bam.de/weldx/tags/units/units-0.1.0> ampere
value: 250
- - TCP: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0>
time: !<asdf://weldx.bam.de/weldx/tags/time/timedeltaindex-0.1.0>
values: !core/ndarray-1.0.0
data: [0, 30000000000]
datatype: int64
shape: [2]
start: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M0S
end: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M30S
min: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M0S
max: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M30S
coordinates: !<asdf://weldx.bam.de/weldx/tags/core/variable-0.1.1>
name: coordinates
dimensions: [c]
dtype: <f8
units: !<asdf://weldx.bam.de/weldx/tags/units/units-0.1.0> millimeter
data: !core/ndarray-1.0.0
data: [[0, 5, 0], [50, 5, 0]]
datatype: float64
shape: [2, 3]
welding_voltage: !<asdf://weldx.bam.de/weldx/tags/core/time_series-0.1.1>
units: !<asdf://weldx.bam.de/weldx/tags/units/units-0.1.0> volt
value: 30
welding_current: !<asdf://weldx.bam.de/weldx/tags/core/time_series-0.1.1>
units: !<asdf://weldx.bam.de/weldx/tags/units/units-0.1.0> ampere
value: 250
- - - - TCP: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0>
time: !<asdf://weldx.bam.de/weldx/tags/time/timedeltaindex-0.1.0>
values: !core/ndarray-1.0.0
data: [0, 30000000000]
datatype: int64
shape: [2]
start: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M0S
end: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M30S
min: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M0S
max: !<asdf://weldx.bam.de/weldx/tags/time/timedelta-0.1.0> P0DT0H0M30S
coordinates: !<asdf://weldx.bam.de/weldx/tags/core/variable-0.1.1>
name: coordinates
dimensions: [c]
dtype: <f8
units: !<asdf://weldx.bam.de/weldx/tags/units/units-0.1.0> millimeter
data: !core/ndarray-1.0.0
data: [[0, 2.5, 5], [50, 2.5, 5]]
datatype: float64
shape: [2, 3]
welding_voltage: !<asdf://weldx.bam.de/weldx/tags/core/time_series-0.1.1>
units: !<asdf://weldx.bam.de/weldx/tags/units/units-0.1.0> volt
value: 30
welding_current: !<asdf://weldx.bam.de/weldx/tags/core/time_series-0.1.1>
units: !<asdf://weldx.bam.de/weldx/tags/units/units-0.1.0> ampere
value: 350