Run the interactive online version of this notebook (takes 1-2 minutes to load): Binder badge

6. Describing GMAW processes

6.1. Imports

[1]:
import weldx
from weldx import Q_
from weldx.core import TimeSeries as TS
from weldx.welding.processes import GmawProcess

6.2. spray arc processes

[2]:
# 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

[3]:
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

[4]:
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.

[5]:
tree = {"spray": process_spray, "pulse_UI": process_pulse, "pulse_II": process_pulse_II}
[6]:
file = weldx.WeldxFile(tree=tree)
file.show_asdf_header()
/home/docs/checkouts/readthedocs.org/user_builds/weldx/checkouts/v0.4.1/weldx/asdf/file.py:515: UserWarning: mode read-only, creating a temporary (in-memory) file to display header. Your changes will be lost! Use write_to(file_name) to save on disk.
  warnings.warn(
[6]:
#ASDF 1.0.0
#ASDF_STANDARD 1.5.0
%YAML 1.1
%TAG ! tag:stsci.edu:asdf/
%TAG !weldx! tag:weldx.bam.de:weldx/
--- !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.8.1}
history:
  extensions:
  - !core/extension_metadata-1.0.0
    extension_class: asdf.extension.BuiltinExtension
    software: !core/software-1.0.0 {name: asdf, version: 2.8.1}
  - !core/extension_metadata-1.0.0
    extension_class: weldx.asdf.extension.WeldxExtension
    software: !core/software-1.0.0 {name: weldx, version: 0.4.2.dev0+g18516c3.d20210720}
pulse_II: !weldx!process/CLOOS/pulse-1.0.0
  base_process: pulse
  manufacturer: CLOOS
  meta: {modulation: II}
  parameters:
    base_current: !weldx!core/time_series-1.0.0
      unit: ampere
      value: 60.0
    pulse_current: !weldx!core/time_series-1.0.0
      unit: kiloampere
      value: 0.3
    pulse_duration: !weldx!core/time_series-1.0.0
      unit: millisecond
      value: 5.0
    pulse_frequency: !weldx!core/time_series-1.0.0
      unit: hertz
      value: 100.0
    wire_feedrate: !weldx!core/time_series-1.0.0
      unit: meter / minute
      value: 10.0
  power_source: Quinto
  tag: CLOOS/pulse
pulse_UI: !weldx!process/CLOOS/pulse-1.0.0
  base_process: pulse
  manufacturer: CLOOS
  meta: {modulation: UI}
  parameters:
    base_current: !weldx!core/time_series-1.0.0
      unit: ampere
      value: 60.0
    pulse_duration: !weldx!core/time_series-1.0.0
      unit: millisecond
      value: 5.0
    pulse_frequency: !weldx!core/time_series-1.0.0
      unit: hertz
      value: 100.0
    pulse_voltage: !weldx!core/time_series-1.0.0
      unit: volt
      value: 40.0
    wire_feedrate: !weldx!core/time_series-1.0.0
      unit: meter / minute
      value: 10.0
  power_source: Quinto
  tag: CLOOS/pulse
spray: !weldx!process/CLOOS/spray_arc-1.0.0
  base_process: spray
  manufacturer: CLOOS
  parameters:
    characteristic: !weldx!core/time_series-1.0.0
      unit: volt / ampere
      value: 5
    impedance: !weldx!core/time_series-1.0.0
      unit: percent
      value: 10.0
    voltage: !weldx!core/time_series-1.0.0
      &id001 values: &id002 !core/ndarray-1.0.0
        source: 1
        datatype: float64
        byteorder: little
        shape: [2]
      time: !weldx!time/timedeltaindex-1.0.0
        values: !core/ndarray-1.0.0
          source: 0
          datatype: int64
          byteorder: little
          shape: [2]
        start: !weldx!time/timedelta-1.0.0 {value: P0DT0H0M0S}
        end: !weldx!time/timedelta-1.0.0 {value: P0DT0H0M10S}
        min: !weldx!time/timedelta-1.0.0 {value: P0DT0H0M0S}
        max: !weldx!time/timedelta-1.0.0 {value: P0DT0H0M10S}
      unit: volt
      shape: [2]
      interpolation: step
      *id001 : *id002
    wire_feedrate: !weldx!core/time_series-1.0.0
      unit: meter / minute
      value: 10.0
  power_source: Quinto
  tag: CLOOS/spray_arc
[ ]:


Generated by nbsphinx from a Jupyter notebook.