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.dev5+g3bef3e0.d20230911}
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