6. Describing GMAW processes#

6.1. Imports#

import weldx
from weldx import Q_
from weldx.core import TimeSeries as TS
from weldx.welding.processes import GmawProcess

6.2. spray arc processes#

# Note: For some reasons, using integers in Q_ fails upon ASDF reading !
params_spray = dict(
    wire_feedrate=Q_(10.0, "m/min"),
    voltage=TS(data=Q_([40.0, 20.0], "V"), time=Q_([0.0, 10.0], "s")),
    impedance=Q_(10.0, "percent"),
    characteristic=Q_(5, "V/A"),
)
process_spray = GmawProcess(
    "spray", "CLOOS", "Quinto", params_spray, tag="CLOOS/spray_arc"
)

6.3. pulsed arc processes#

6.3.1. UI modulation#

params_pulse = dict(
    wire_feedrate=Q_(10.0, "m/min"),
    pulse_voltage=Q_(40.0, "V"),
    pulse_duration=Q_(5.0, "ms"),
    pulse_frequency=Q_(100.0, "Hz"),
    base_current=Q_(60.0, "A"),
)
process_pulse = GmawProcess(
    "pulse",
    "CLOOS",
    "Quinto",
    params_pulse,
    tag="CLOOS/pulse",
    meta={"modulation": "UI"},
)

6.3.2. II modulation#

params_pulse_II = dict(
    wire_feedrate=Q_(10.0, "m/min"),
    pulse_current=Q_(0.3, "kA"),
    pulse_duration=Q_(5.0, "ms"),
    pulse_frequency=Q_(100.0, "Hz"),
    base_current=Q_(60.0, "A"),
)
process_pulse_II = GmawProcess(
    "pulse",
    "CLOOS",
    "Quinto",
    params_pulse_II,
    tag="CLOOS/pulse",
    meta={"modulation": "II"},
)

6.4. using ASDF#

We write the dictionary containing our structured data to an ASDF file using the WeldxFile class. We pass the tree as a named keyword argument. The tree will be serialized to ASDF in memory, and we can have a look at the ASDF header.

tree = {"spray": process_spray, "pulse_UI": process_pulse, "pulse_II": process_pulse_II}
file = weldx.WeldxFile(tree=tree, mode="rw")
file.header()
#ASDF 1.0.0
#ASDF_STANDARD 1.5.0
%YAML 1.1
%TAG ! tag:stsci.edu:asdf/
%TAG !weldx! asdf://weldx.bam.de/weldx/tags/
--- !core/asdf-1.1.0
asdf_library: !core/software-1.0.0 {author: The ASDF Developers, homepage: 'http://github.com/asdf-format/asdf',
  name: asdf, version: 2.15.1}
history:
  extensions:
  - !core/extension_metadata-1.0.0
    extension_class: asdf.extension.BuiltinExtension
    software: !core/software-1.0.0 {name: asdf, version: 2.15.1}
  - !core/extension_metadata-1.0.0
    extension_class: weldx.asdf.extension.WeldxExtension
    extension_uri: asdf://weldx.bam.de/weldx/extensions/weldx-0.1.2
    software: !core/software-1.0.0 {name: weldx, version: 0.6.8.dev29+g0e0a9ea.d20240414}
pulse_II: !weldx!process/CLOOS/pulse-0.1.0
  base_process: pulse
  manufacturer: CLOOS
  meta: {modulation: II}
  parameters:
    base_current: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 ampere
      value: 60.0
    pulse_current: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 kiloampere
      value: 0.3
    pulse_duration: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 millisecond
      value: 5.0
    pulse_frequency: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 hertz
      value: 100.0
    wire_feedrate: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 meter / minute
      value: 10.0
  power_source: Quinto
  tag: CLOOS/pulse
pulse_UI: !weldx!process/CLOOS/pulse-0.1.0
  base_process: pulse
  manufacturer: CLOOS
  meta: {modulation: UI}
  parameters:
    base_current: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 ampere
      value: 60.0
    pulse_duration: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 millisecond
      value: 5.0
    pulse_frequency: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 hertz
      value: 100.0
    pulse_voltage: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 volt
      value: 40.0
    wire_feedrate: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 meter / minute
      value: 10.0
  power_source: Quinto
  tag: CLOOS/pulse
spray: !weldx!process/CLOOS/spray_arc-0.1.0
  base_process: spray
  manufacturer: CLOOS
  parameters:
    characteristic: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 volt / ampere
      value: 5
    impedance: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 percent
      value: 10.0
    voltage: !weldx!core/time_series-0.1.1
      &id001 values: &id002 !core/ndarray-1.0.0
        data: []
        datatype: float64
        shape: [2]
      time: !weldx!time/time-0.1.0
        values: !weldx!time/timedeltaindex-0.1.0
          values: !core/ndarray-1.0.0
            data: []
            datatype: int64
            shape: [2]
          start: !weldx!time/timedelta-0.1.0 P0DT0H0M0S
          end: !weldx!time/timedelta-0.1.0 P0DT0H0M10S
          min: !weldx!time/timedelta-0.1.0 P0DT0H0M0S
          max: !weldx!time/timedelta-0.1.0 P0DT0H0M10S
      units: !weldx!units/units-0.1.0 volt
      shape: [2]
      interpolation: step
      *id001 : *id002
    wire_feedrate: !weldx!core/time_series-0.1.1
      units: !weldx!units/units-0.1.0 meter / minute
      value: 10.0
  power_source: Quinto
  tag: CLOOS/spray_arc