UnderAutomation.Fanuc 2.3.0.0__py3-none-any.whl → 3.0.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. underautomation/fanuc/common/cartesian_position.py +14 -0
  2. underautomation/fanuc/common/configuration.py +20 -17
  3. underautomation/fanuc/common/extended_cartesian_position.py +2 -20
  4. underautomation/fanuc/common/joints_position.py +11 -2
  5. underautomation/fanuc/common/position.py +1 -1
  6. underautomation/fanuc/fanuc_robot.py +1 -1
  7. underautomation/fanuc/ftp/fanuc_file_readers.py +14 -21
  8. underautomation/fanuc/ftp/internal/ftp_client_base.py +0 -1
  9. underautomation/fanuc/ftp/variables/generic_variable_type_helpers.py +2 -2
  10. underautomation/fanuc/ftp/variables/variable_reader.py +70 -106
  11. underautomation/fanuc/kinematics/__init__.py +0 -0
  12. underautomation/fanuc/kinematics/arm_kinematic_models.py +88 -0
  13. underautomation/fanuc/kinematics/crx/__init__.py +0 -0
  14. underautomation/fanuc/kinematics/crx/crx10ia_dhm_parameters.py +25 -0
  15. underautomation/fanuc/kinematics/crx/crx10ia_l_dhm_parameters.py +25 -0
  16. underautomation/fanuc/kinematics/crx/crx_dhm_parameters.py +37 -0
  17. underautomation/fanuc/kinematics/crx/crx_kinematics_utils.py +18 -0
  18. underautomation/fanuc/kinematics/crx/i_crx_dhm_parameters.py +24 -0
  19. underautomation/fanuc/kinematics/crx10ia_l_dhm_parameters.py +31 -0
  20. underautomation/fanuc/kinematics/dh_parameters.py +77 -0
  21. underautomation/fanuc/kinematics/i_dh_parameters.py +30 -0
  22. underautomation/fanuc/kinematics/internal/__init__.py +0 -0
  23. underautomation/fanuc/kinematics/internal/arm_model_attribute.py +31 -0
  24. underautomation/fanuc/kinematics/kinematics_category.py +9 -0
  25. underautomation/fanuc/kinematics/kinematics_utils.py +24 -0
  26. underautomation/fanuc/kinematics/opw/__init__.py +0 -0
  27. underautomation/fanuc/kinematics/opw/opw_kinematics_utils.py +21 -0
  28. underautomation/fanuc/lib/UnderAutomation.Fanuc.dll +0 -0
  29. underautomation/fanuc/lib/version.txt +1 -1
  30. underautomation/fanuc/rmi/internal/rmi_client_base.py +13 -13
  31. underautomation/fanuc/rmi/internal/rmi_connect_parameters_base.py +6 -18
  32. underautomation/fanuc/snpx/internal/batch_assignment_2.py +2 -2
  33. underautomation/fanuc/snpx/internal/position_registers.py +1 -1
  34. underautomation/fanuc/snpx/internal/position_system_variables.py +1 -1
  35. underautomation/fanuc/snpx/internal/robot_alarm.py +1 -1
  36. underautomation/fanuc/snpx/internal/robot_task_status.py +1 -1
  37. underautomation/fanuc/snpx/internal/snpx_connect_parameters_base.py +2 -6
  38. underautomation/fanuc/snpx/internal/snpx_writable_assignable_elements_3.py +1 -1
  39. underautomation/fanuc/telnet/internal/telnet_client_base.py +3 -4
  40. {underautomation_fanuc-2.3.0.0.dist-info → underautomation_fanuc-3.0.0.0.dist-info}/METADATA +1 -1
  41. {underautomation_fanuc-2.3.0.0.dist-info → underautomation_fanuc-3.0.0.0.dist-info}/RECORD +43 -26
  42. {underautomation_fanuc-2.3.0.0.dist-info → underautomation_fanuc-3.0.0.0.dist-info}/WHEEL +0 -0
  43. {underautomation_fanuc-2.3.0.0.dist-info → underautomation_fanuc-3.0.0.0.dist-info}/top_level.txt +0 -0
@@ -14,6 +14,20 @@ class CartesianPosition(XYZPosition):
14
14
  self._instance = _internal
15
15
  def __repr__(self):
16
16
  return self._instance.ToString()
17
+ def to_homogeneous_matrix(self) -> typing.List[float]:
18
+ return self._instance.ToHomogeneousMatrix()
19
+ @staticmethod
20
+ def from_homogeneous_matrix(R: typing.List[float]) -> 'CartesianPosition':
21
+ return CartesianPosition(None, None, None, None, None, None, None, cartesian_position.FromHomogeneousMatrix(R))
22
+ @staticmethod
23
+ def normalize_angle(angle: float) -> float:
24
+ return cartesian_position.NormalizeAngle(angle)
25
+ @staticmethod
26
+ def normalize_angles(pose: 'CartesianPosition') -> None:
27
+ cartesian_position.NormalizeAngles(pose._instance if pose else None)
28
+ @staticmethod
29
+ def is_near(a: 'CartesianPosition', b: 'CartesianPosition', mmTolerance: float, degreesTolerance: float) -> bool:
30
+ return cartesian_position.IsNear(a._instance if a else None, b._instance if b else None, mmTolerance, degreesTolerance)
17
31
  @property
18
32
  def w(self) -> float:
19
33
  return self._instance.W
@@ -19,6 +19,9 @@ class Configuration:
19
19
  def from_string(self, value: str) -> None:
20
20
  self._instance.FromString(value)
21
21
  @property
22
+ def is_unknown(self) -> bool:
23
+ return self._instance.IsUnknown
24
+ @property
22
25
  def wrist_flip(self) -> WristFlip:
23
26
  return WristFlip(self._instance.WristFlip)
24
27
  @wrist_flip.setter
@@ -43,20 +46,20 @@ class Configuration:
43
46
  def arm_front_back(self, value: ArmFrontBack):
44
47
  self._instance.ArmFrontBack = value
45
48
  @property
46
- def turn_axis1(self) -> int:
47
- return self._instance.TurnAxis1
48
- @turn_axis1.setter
49
- def turn_axis1(self, value: int):
50
- self._instance.TurnAxis1 = value
51
- @property
52
- def turn_axis2(self) -> int:
53
- return self._instance.TurnAxis2
54
- @turn_axis2.setter
55
- def turn_axis2(self, value: int):
56
- self._instance.TurnAxis2 = value
57
- @property
58
- def turn_axis3(self) -> int:
59
- return self._instance.TurnAxis3
60
- @turn_axis3.setter
61
- def turn_axis3(self, value: int):
62
- self._instance.TurnAxis3 = value
49
+ def turn_axis4(self) -> int:
50
+ return self._instance.TurnAxis4
51
+ @turn_axis4.setter
52
+ def turn_axis4(self, value: int):
53
+ self._instance.TurnAxis4 = value
54
+ @property
55
+ def turn_axis5(self) -> int:
56
+ return self._instance.TurnAxis5
57
+ @turn_axis5.setter
58
+ def turn_axis5(self, value: int):
59
+ self._instance.TurnAxis5 = value
60
+ @property
61
+ def turn_axis6(self) -> int:
62
+ return self._instance.TurnAxis6
63
+ @turn_axis6.setter
64
+ def turn_axis6(self, value: int):
65
+ self._instance.TurnAxis6 = value
@@ -6,9 +6,9 @@ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..",
6
6
  from UnderAutomation.Fanuc.Common import ExtendedCartesianPosition as extended_cartesian_position
7
7
 
8
8
  class ExtendedCartesianPosition(CartesianPosition):
9
- def __init__(self, x: float, y: float, z: float, w: float, p: float, r: float, e1: float, e2: float, e3: float, t4: int, t5: int, t6: int, _internal = 0):
9
+ def __init__(self, x: float, y: float, z: float, w: float, p: float, r: float, e1: float, e2: float, e3: float, _internal = 0):
10
10
  if(_internal == 0):
11
- self._instance = extended_cartesian_position(x, y, z, w, p, r, e1, e2, e3, t4, t5, t6)
11
+ self._instance = extended_cartesian_position(x, y, z, w, p, r, e1, e2, e3)
12
12
  else:
13
13
  self._instance = _internal
14
14
  @property
@@ -29,21 +29,3 @@ class ExtendedCartesianPosition(CartesianPosition):
29
29
  @e3.setter
30
30
  def e3(self, value: float):
31
31
  self._instance.E3 = value
32
- @property
33
- def t4(self) -> int:
34
- return self._instance.T4
35
- @t4.setter
36
- def t4(self, value: int):
37
- self._instance.T4 = value
38
- @property
39
- def t5(self) -> int:
40
- return self._instance.T5
41
- @t5.setter
42
- def t5(self, value: int):
43
- self._instance.T5 = value
44
- @property
45
- def t6(self) -> int:
46
- return self._instance.T6
47
- @t6.setter
48
- def t6(self, value: int):
49
- self._instance.T6 = value
@@ -5,13 +5,22 @@ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..",
5
5
  from UnderAutomation.Fanuc.Common import JointsPosition as joints_position
6
6
 
7
7
  class JointsPosition:
8
- def __init__(self, j1: float, j2: float, j3: float, j4: float, j5: float, j6: float, j7: float, j8: float, j9: float, _internal = 0):
8
+ def __init__(self, j1Deg: float, j2Deg: float, j3Deg: float, j4Deg: float, j5Deg: float, j6Deg: float, j7Deg: float, j8Deg: float, j9Deg: float, _internal = 0):
9
9
  if(_internal == 0):
10
- self._instance = joints_position(j1, j2, j3, j4, j5, j6, j7, j8, j9)
10
+ self._instance = joints_position(j1Deg, j2Deg, j3Deg, j4Deg, j5Deg, j6Deg, j7Deg, j8Deg, j9Deg)
11
11
  else:
12
12
  self._instance = _internal
13
13
  def __repr__(self):
14
14
  return self._instance.ToString()
15
+ @staticmethod
16
+ def is_near(j1: 'JointsPosition', j2: 'JointsPosition', degreesTolerance: float) -> bool:
17
+ return joints_position.IsNear(j1._instance if j1 else None, j2._instance if j2 else None, degreesTolerance)
18
+ @property
19
+ def item(self) -> float:
20
+ return self._instance.Item
21
+ @item.setter
22
+ def item(self, value: float):
23
+ self._instance.Item = value
15
24
  @property
16
25
  def values(self) -> typing.List[float]:
17
26
  return self._instance.Values
@@ -32,7 +32,7 @@ class Position:
32
32
  self._instance.JointsPosition = value
33
33
  @property
34
34
  def cartesian_position(self) -> ExtendedCartesianPosition:
35
- return ExtendedCartesianPosition(None, None, None, None, None, None, None, None, None, None, None, None, self._instance.CartesianPosition)
35
+ return ExtendedCartesianPosition(None, None, None, None, None, None, None, None, None, self._instance.CartesianPosition)
36
36
  @cartesian_position.setter
37
37
  def cartesian_position(self, value: ExtendedCartesianPosition):
38
38
  self._instance.CartesianPosition = value
@@ -17,7 +17,7 @@ class FanucRobot:
17
17
  else:
18
18
  self._instance = _internal
19
19
  def connect(self, parameters: ConnectionParameters) -> None:
20
- self._instance.Connect(parameters._instance)
20
+ self._instance.Connect(parameters._instance if parameters else None)
21
21
  def disconnect(self) -> None:
22
22
  self._instance.Disconnect()
23
23
  @staticmethod
@@ -30,24 +30,17 @@ class FanucFileReaders:
30
30
  @property
31
31
  def readers(self) -> typing.List[IFileReader1]:
32
32
  return [IFileReader1(x) for x in self._instance.Readers]
33
- @property
34
- def variable_reader(self) -> VariableReader:
35
- return VariableReader(self._instance.VariableReader)
36
- @property
37
- def error_list_reader(self) -> ErrorListReader:
38
- return ErrorListReader(self._instance.ErrorListReader)
39
- @property
40
- def summary_diagnostic_reader(self) -> SummaryDiagnosisReader:
41
- return SummaryDiagnosisReader(self._instance.SummaryDiagnosticReader)
42
- @property
43
- def current_position_reader(self) -> DiagnosisReader2[CurrentPosition, CurrentPositionReader]:
44
- return DiagnosisReader2[CurrentPosition, CurrentPositionReader](self._instance.CurrentPositionReader)
45
- @property
46
- def io_state_reader(self) -> DiagnosisReader2[IOState, IOStateParser]:
47
- return DiagnosisReader2[IOState, IOStateParser](self._instance.IOStateReader)
48
- @property
49
- def safety_status_reader(self) -> DiagnosisReader2[SafetyStatus, SafetyStatusParser]:
50
- return DiagnosisReader2[SafetyStatus, SafetyStatusParser](self._instance.SafetyStatusReader)
51
- @property
52
- def program_states(self) -> DiagnosisReader2[ProgramStates, ProgramStatesParser]:
53
- return DiagnosisReader2[ProgramStates, ProgramStatesParser](self._instance.ProgramStates)
33
+
34
+ FanucFileReaders.variable_reader = FanucFileReaders(fanuc_file_readers.VariableReader)
35
+
36
+ FanucFileReaders.error_list_reader = FanucFileReaders(fanuc_file_readers.ErrorListReader)
37
+
38
+ FanucFileReaders.summary_diagnostic_reader = FanucFileReaders(fanuc_file_readers.SummaryDiagnosticReader)
39
+
40
+ FanucFileReaders.current_position_reader = FanucFileReaders(fanuc_file_readers.CurrentPositionReader)
41
+
42
+ FanucFileReaders.io_state_reader = FanucFileReaders(fanuc_file_readers.IOStateReader)
43
+
44
+ FanucFileReaders.safety_status_reader = FanucFileReaders(fanuc_file_readers.SafetyStatusReader)
45
+
46
+ FanucFileReaders.program_states = FanucFileReaders(fanuc_file_readers.ProgramStates)
@@ -15,7 +15,6 @@ import os
15
15
  clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
16
16
  from UnderAutomation.Fanuc.Ftp.Internal import FtpClientBase as ftp_client_base
17
17
 
18
- 렫 = typing.TypeVar('렫')
19
18
  class FtpClientBase:
20
19
  def __init__(self, _internal = 0):
21
20
  if(_internal == 0):
@@ -13,7 +13,7 @@ class GenericVariableTypeHelpers:
13
13
  self._instance = _internal
14
14
  @staticmethod
15
15
  def get_ancestors(element: IGenericVariableType) -> typing.List[IGenericVariableType]:
16
- return [IGenericVariableType(x) for x in generic_variable_type_helpers.GetAncestors(element._instance)]
16
+ return [IGenericVariableType(x) for x in generic_variable_type_helpers.GetAncestors(element._instance if element else None)]
17
17
  @staticmethod
18
18
  def get_field(element: IGenericVariableType, name: str) -> IGenericVariableType:
19
- return IGenericVariableType(generic_variable_type_helpers.GetField(element._instance, name))
19
+ return IGenericVariableType(generic_variable_type_helpers.GetField(element._instance if element else None, name))
@@ -43,7 +43,6 @@ import os
43
43
  clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
44
44
  from UnderAutomation.Fanuc.Ftp.Variables import VariableReader as variable_reader
45
45
 
46
- 렫 = typing.TypeVar('렫')
47
46
  class VariableReader(FileReader1[GenericVariableFile]):
48
47
  def __init__(self, _internal = 0):
49
48
  if(_internal == 0):
@@ -58,108 +57,73 @@ class VariableReader(FileReader1[GenericVariableFile]):
58
57
  @staticmethod
59
58
  def parse_variable_file(stream: typing.Any) -> typing.List[GenericVariable]:
60
59
  return [GenericVariable(x) for x in variable_reader.ParseVariableFile(stream)]
61
- @property
62
- def aavmmain_file(self) -> VariableReader1[AavmmainFile]:
63
- return VariableReader1[AavmmainFile](self._instance.AavmmainFile)
64
- @property
65
- def bicsetup_file(self) -> VariableReader1[BicsetupFile]:
66
- return VariableReader1[BicsetupFile](self._instance.BicsetupFile)
67
- @property
68
- def cbparam_file(self) -> VariableReader1[CbparamFile]:
69
- return VariableReader1[CbparamFile](self._instance.CbparamFile)
70
- @property
71
- def cellio_file(self) -> VariableReader1[CellioFile]:
72
- return VariableReader1[CellioFile](self._instance.CellioFile)
73
- @property
74
- def comset_file(self) -> VariableReader1[ComsetFile]:
75
- return VariableReader1[ComsetFile](self._instance.ComsetFile)
76
- @property
77
- def diocfgsv_file(self) -> VariableReader1[DiocfgsvFile]:
78
- return VariableReader1[DiocfgsvFile](self._instance.DiocfgsvFile)
79
- @property
80
- def gemdata_file(self) -> VariableReader1[GemdataFile]:
81
- return VariableReader1[GemdataFile](self._instance.GemdataFile)
82
- @property
83
- def htcolrec_file(self) -> VariableReader1[HtcolrecFile]:
84
- return VariableReader1[HtcolrecFile](self._instance.HtcolrecFile)
85
- @property
86
- def httpkcl_file(self) -> VariableReader1[HttpkclFile]:
87
- return VariableReader1[HttpkclFile](self._instance.HttpkclFile)
88
- @property
89
- def irc_counter_file(self) -> VariableReader1[IrcCounterFile]:
90
- return VariableReader1[IrcCounterFile](self._instance.IrcCounterFile)
91
- @property
92
- def irc_msg_file(self) -> VariableReader1[IrcMsgFile]:
93
- return VariableReader1[IrcMsgFile](self._instance.IrcMsgFile)
94
- @property
95
- def irc_status_file(self) -> VariableReader1[IrcStatusFile]:
96
- return VariableReader1[IrcStatusFile](self._instance.IrcStatusFile)
97
- @property
98
- def irc_stlabel_file(self) -> VariableReader1[IrcStlabelFile]:
99
- return VariableReader1[IrcStlabelFile](self._instance.IrcStlabelFile)
100
- @property
101
- def klaction_file(self) -> VariableReader1[KlactionFile]:
102
- return VariableReader1[KlactionFile](self._instance.KlactionFile)
103
- @property
104
- def mixlogic_file(self) -> VariableReader1[MixlogicFile]:
105
- return VariableReader1[MixlogicFile](self._instance.MixlogicFile)
106
- @property
107
- def mtparam_file(self) -> VariableReader1[MtparamFile]:
108
- return VariableReader1[MtparamFile](self._instance.MtparamFile)
109
- @property
110
- def numreg_file(self) -> VariableReader1[NumregFile]:
111
- return VariableReader1[NumregFile](self._instance.NumregFile)
112
- @property
113
- def palreg_file(self) -> VariableReader1[PalregFile]:
114
- return VariableReader1[PalregFile](self._instance.PalregFile)
115
- @property
116
- def posreg_file(self) -> VariableReader1[PosregFile]:
117
- return VariableReader1[PosregFile](self._instance.PosregFile)
118
- @property
119
- def strreg_file(self) -> VariableReader1[StrregFile]:
120
- return VariableReader1[StrregFile](self._instance.StrregFile)
121
- @property
122
- def swiupdt_file(self) -> VariableReader1[SwiupdtFile]:
123
- return VariableReader1[SwiupdtFile](self._instance.SwiupdtFile)
124
- @property
125
- def sycldint_file(self) -> VariableReader1[SycldintFile]:
126
- return VariableReader1[SycldintFile](self._instance.SycldintFile)
127
- @property
128
- def symotn_file(self) -> VariableReader1[SymotnFile]:
129
- return VariableReader1[SymotnFile](self._instance.SymotnFile)
130
- @property
131
- def synosave_file(self) -> VariableReader1[SynosaveFile]:
132
- return VariableReader1[SynosaveFile](self._instance.SynosaveFile)
133
- @property
134
- def sysframe_file(self) -> VariableReader1[SysframeFile]:
135
- return VariableReader1[SysframeFile](self._instance.SysframeFile)
136
- @property
137
- def sysfsac_file(self) -> VariableReader1[SysfsacFile]:
138
- return VariableReader1[SysfsacFile](self._instance.SysfsacFile)
139
- @property
140
- def syshost_file(self) -> VariableReader1[SyshostFile]:
141
- return VariableReader1[SyshostFile](self._instance.SyshostFile)
142
- @property
143
- def sysmacro_file(self) -> VariableReader1[SysmacroFile]:
144
- return VariableReader1[SysmacroFile](self._instance.SysmacroFile)
145
- @property
146
- def sysmast_file(self) -> VariableReader1[SysmastFile]:
147
- return VariableReader1[SysmastFile](self._instance.SysmastFile)
148
- @property
149
- def syspass_file(self) -> VariableReader1[SyspassFile]:
150
- return VariableReader1[SyspassFile](self._instance.SyspassFile)
151
- @property
152
- def sysservo_file(self) -> VariableReader1[SysservoFile]:
153
- return VariableReader1[SysservoFile](self._instance.SysservoFile)
154
- @property
155
- def system_file(self) -> VariableReader1[SystemFile]:
156
- return VariableReader1[SystemFile](self._instance.SystemFile)
157
- @property
158
- def sysuif_file(self) -> VariableReader1[SysuifFile]:
159
- return VariableReader1[SysuifFile](self._instance.SysuifFile)
160
- @property
161
- def tpsnap_file(self) -> VariableReader1[TpsnapFile]:
162
- return VariableReader1[TpsnapFile](self._instance.TpsnapFile)
163
- @property
164
- def vcmrinit_file(self) -> VariableReader1[VcmrinitFile]:
165
- return VariableReader1[VcmrinitFile](self._instance.VcmrinitFile)
60
+
61
+ VariableReader.aavmmain_file = VariableReader(variable_reader.AavmmainFile)
62
+
63
+ VariableReader.bicsetup_file = VariableReader(variable_reader.BicsetupFile)
64
+
65
+ VariableReader.cbparam_file = VariableReader(variable_reader.CbparamFile)
66
+
67
+ VariableReader.cellio_file = VariableReader(variable_reader.CellioFile)
68
+
69
+ VariableReader.comset_file = VariableReader(variable_reader.ComsetFile)
70
+
71
+ VariableReader.diocfgsv_file = VariableReader(variable_reader.DiocfgsvFile)
72
+
73
+ VariableReader.gemdata_file = VariableReader(variable_reader.GemdataFile)
74
+
75
+ VariableReader.htcolrec_file = VariableReader(variable_reader.HtcolrecFile)
76
+
77
+ VariableReader.httpkcl_file = VariableReader(variable_reader.HttpkclFile)
78
+
79
+ VariableReader.irc_counter_file = VariableReader(variable_reader.IrcCounterFile)
80
+
81
+ VariableReader.irc_msg_file = VariableReader(variable_reader.IrcMsgFile)
82
+
83
+ VariableReader.irc_status_file = VariableReader(variable_reader.IrcStatusFile)
84
+
85
+ VariableReader.irc_stlabel_file = VariableReader(variable_reader.IrcStlabelFile)
86
+
87
+ VariableReader.klaction_file = VariableReader(variable_reader.KlactionFile)
88
+
89
+ VariableReader.mixlogic_file = VariableReader(variable_reader.MixlogicFile)
90
+
91
+ VariableReader.mtparam_file = VariableReader(variable_reader.MtparamFile)
92
+
93
+ VariableReader.numreg_file = VariableReader(variable_reader.NumregFile)
94
+
95
+ VariableReader.palreg_file = VariableReader(variable_reader.PalregFile)
96
+
97
+ VariableReader.posreg_file = VariableReader(variable_reader.PosregFile)
98
+
99
+ VariableReader.strreg_file = VariableReader(variable_reader.StrregFile)
100
+
101
+ VariableReader.swiupdt_file = VariableReader(variable_reader.SwiupdtFile)
102
+
103
+ VariableReader.sycldint_file = VariableReader(variable_reader.SycldintFile)
104
+
105
+ VariableReader.symotn_file = VariableReader(variable_reader.SymotnFile)
106
+
107
+ VariableReader.synosave_file = VariableReader(variable_reader.SynosaveFile)
108
+
109
+ VariableReader.sysframe_file = VariableReader(variable_reader.SysframeFile)
110
+
111
+ VariableReader.sysfsac_file = VariableReader(variable_reader.SysfsacFile)
112
+
113
+ VariableReader.syshost_file = VariableReader(variable_reader.SyshostFile)
114
+
115
+ VariableReader.sysmacro_file = VariableReader(variable_reader.SysmacroFile)
116
+
117
+ VariableReader.sysmast_file = VariableReader(variable_reader.SysmastFile)
118
+
119
+ VariableReader.syspass_file = VariableReader(variable_reader.SyspassFile)
120
+
121
+ VariableReader.sysservo_file = VariableReader(variable_reader.SysservoFile)
122
+
123
+ VariableReader.system_file = VariableReader(variable_reader.SystemFile)
124
+
125
+ VariableReader.sysuif_file = VariableReader(variable_reader.SysuifFile)
126
+
127
+ VariableReader.tpsnap_file = VariableReader(variable_reader.TpsnapFile)
128
+
129
+ VariableReader.vcmrinit_file = VariableReader(variable_reader.VcmrinitFile)
File without changes
@@ -0,0 +1,88 @@
1
+ import clr
2
+ import os
3
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.Fanuc.dll')))
4
+ from UnderAutomation.Fanuc.Kinematics import ArmKinematicModels as arm_kinematic_models
5
+
6
+ class ArmKinematicModels(int):
7
+ ARCMate0iA = arm_kinematic_models.ARCMate0iA
8
+ ARCMate0iB = arm_kinematic_models.ARCMate0iB
9
+ ARCMate0iB_2 = arm_kinematic_models.ARCMate0iB_2
10
+ ARCMate100iD = arm_kinematic_models.ARCMate100iD
11
+ ARCMate100iD10L = arm_kinematic_models.ARCMate100iD10L
12
+ ARCMate100iD16S = arm_kinematic_models.ARCMate100iD16S
13
+ ARCMate100iD8L = arm_kinematic_models.ARCMate100iD8L
14
+ ARCMate120iD = arm_kinematic_models.ARCMate120iD
15
+ ARCMate120iD12L = arm_kinematic_models.ARCMate120iD12L
16
+ ARCMate120iD35 = arm_kinematic_models.ARCMate120iD35
17
+ CR14iAL = arm_kinematic_models.CR14iAL
18
+ CR15iA = arm_kinematic_models.CR15iA
19
+ CR35iA = arm_kinematic_models.CR35iA
20
+ CR7iA = arm_kinematic_models.CR7iA
21
+ CR7iAL = arm_kinematic_models.CR7iAL
22
+ CRX10iA = arm_kinematic_models.CRX10iA
23
+ CRX10iAL = arm_kinematic_models.CRX10iAL
24
+ LRMate200iD = arm_kinematic_models.LRMate200iD
25
+ LRMate200iD7C = arm_kinematic_models.LRMate200iD7C
26
+ LRMate200iD7L = arm_kinematic_models.LRMate200iD7L
27
+ LRMate200iD7LC = arm_kinematic_models.LRMate200iD7LC
28
+ LaserRobotHA = arm_kinematic_models.LaserRobotHA
29
+ M10iA10M = arm_kinematic_models.M10iA10M
30
+ M10iA10MS = arm_kinematic_models.M10iA10MS
31
+ M10iA12 = arm_kinematic_models.M10iA12
32
+ M10iA12S = arm_kinematic_models.M10iA12S
33
+ M10iA7L = arm_kinematic_models.M10iA7L
34
+ M10iA8L = arm_kinematic_models.M10iA8L
35
+ M2000iA1700L = arm_kinematic_models.M2000iA1700L
36
+ M2000iA2300 = arm_kinematic_models.M2000iA2300
37
+ M2000iA1200 = arm_kinematic_models.M2000iA1200
38
+ M2000iA900L = arm_kinematic_models.M2000iA900L
39
+ M20iA = arm_kinematic_models.M20iA
40
+ M20iA12L = arm_kinematic_models.M20iA12L
41
+ M20iA20M = arm_kinematic_models.M20iA20M
42
+ M20iA35M = arm_kinematic_models.M20iA35M
43
+ M20iB25C = arm_kinematic_models.M20iB25C
44
+ M410iC110 = arm_kinematic_models.M410iC110
45
+ M410iC185_2 = arm_kinematic_models.M410iC185_2
46
+ M410iC185 = arm_kinematic_models.M410iC185
47
+ M410iC500 = arm_kinematic_models.M410iC500
48
+ M410iC500_2 = arm_kinematic_models.M410iC500_2
49
+ M800iA60 = arm_kinematic_models.M800iA60
50
+ M900iB280L = arm_kinematic_models.M900iB280L
51
+ M900iB330L = arm_kinematic_models.M900iB330L
52
+ M900iB360 = arm_kinematic_models.M900iB360
53
+ M900iB400L = arm_kinematic_models.M900iB400L
54
+ M900iB700 = arm_kinematic_models.M900iB700
55
+ M900iBKAI = arm_kinematic_models.M900iBKAI
56
+ M20iB25 = arm_kinematic_models.M20iB25
57
+ M20iB35S = arm_kinematic_models.M20iB35S
58
+ M710iC12L = arm_kinematic_models.M710iC12L
59
+ M710iC20M = arm_kinematic_models.M710iC20M
60
+ M710iC45M = arm_kinematic_models.M710iC45M
61
+ M710iC50 = arm_kinematic_models.M710iC50
62
+ P700iANewRightyArmRightOffset = arm_kinematic_models.P700iANewRightyArmRightOffset
63
+ P350iA45LeftHand = arm_kinematic_models.P350iA45LeftHand
64
+ P350iA45RightHand = arm_kinematic_models.P350iA45RightHand
65
+ R1000iA100F = arm_kinematic_models.R1000iA100F
66
+ R1000iA130F = arm_kinematic_models.R1000iA130F
67
+ R1000iA80F = arm_kinematic_models.R1000iA80F
68
+ R2000iB125L = arm_kinematic_models.R2000iB125L
69
+ R2000iB175L = arm_kinematic_models.R2000iB175L
70
+ R2000iC100S = arm_kinematic_models.R2000iC100S
71
+ R2000iC270F = arm_kinematic_models.R2000iC270F
72
+ R2000iD100FH = arm_kinematic_models.R2000iD100FH
73
+ R1000iA100F7 = arm_kinematic_models.R1000iA100F7
74
+ R1000iA120F7B_3 = arm_kinematic_models.R1000iA120F7B_3
75
+ R1000iA120F7B_2 = arm_kinematic_models.R1000iA120F7B_2
76
+ R1000iA120F7B = arm_kinematic_models.R1000iA120F7B
77
+ R1000iA120F7BS = arm_kinematic_models.R1000iA120F7BS
78
+ R1000iA120F7BS_3 = arm_kinematic_models.R1000iA120F7BS_3
79
+ R1000iA120F7BS_2 = arm_kinematic_models.R1000iA120F7BS_2
80
+ R2000iB210FS = arm_kinematic_models.R2000iB210FS
81
+ R2000iB220US = arm_kinematic_models.R2000iB220US
82
+ R2000iC125L = arm_kinematic_models.R2000iC125L
83
+ R2000iC190U = arm_kinematic_models.R2000iC190U
84
+ R2000iC210F = arm_kinematic_models.R2000iC210F
85
+ R2000iC210L = arm_kinematic_models.R2000iC210L
86
+ R2000iC210WE = arm_kinematic_models.R2000iC210WE
87
+ R2000iC210WEProto = arm_kinematic_models.R2000iC210WEProto
88
+ R2000iC220U = arm_kinematic_models.R2000iC220U
File without changes
@@ -0,0 +1,25 @@
1
+ import typing
2
+ from underautomation.fanuc.kinematics.crx.i_crx_dhm_parameters import ICrxDhmParameters
3
+ import clr
4
+ import os
5
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
6
+ from UnderAutomation.Fanuc.Kinematics.Crx import Crx10iaDhmParameters as crx10ia_dhm_parameters
7
+
8
+ class Crx10iaDhmParameters(ICrxDhmParameters):
9
+ def __init__(self, _internal = 0):
10
+ if(_internal == 0):
11
+ self._instance = crx10ia_dhm_parameters()
12
+ else:
13
+ self._instance = _internal
14
+ @property
15
+ def a2(self) -> float:
16
+ return self._instance.A2
17
+ @property
18
+ def d4(self) -> float:
19
+ return self._instance.D4
20
+ @property
21
+ def d5(self) -> float:
22
+ return self._instance.D5
23
+ @property
24
+ def d6(self) -> float:
25
+ return self._instance.D6
@@ -0,0 +1,25 @@
1
+ import typing
2
+ from underautomation.fanuc.kinematics.crx.i_crx_dhm_parameters import ICrxDhmParameters
3
+ import clr
4
+ import os
5
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
6
+ from UnderAutomation.Fanuc.Kinematics.Crx import Crx10iaLDhmParameters as crx10ia_l_dhm_parameters
7
+
8
+ class Crx10iaLDhmParameters(ICrxDhmParameters):
9
+ def __init__(self, _internal = 0):
10
+ if(_internal == 0):
11
+ self._instance = crx10ia_l_dhm_parameters()
12
+ else:
13
+ self._instance = _internal
14
+ @property
15
+ def a2(self) -> float:
16
+ return self._instance.A2
17
+ @property
18
+ def d4(self) -> float:
19
+ return self._instance.D4
20
+ @property
21
+ def d5(self) -> float:
22
+ return self._instance.D5
23
+ @property
24
+ def d6(self) -> float:
25
+ return self._instance.D6
@@ -0,0 +1,37 @@
1
+ import typing
2
+ from underautomation.fanuc.kinematics.crx.i_crx_dhm_parameters import ICrxDhmParameters
3
+ import clr
4
+ import os
5
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
6
+ from UnderAutomation.Fanuc.Kinematics.Crx import CrxDhmParameters as crx_dhm_parameters
7
+
8
+ class CrxDhmParameters(ICrxDhmParameters):
9
+ def __init__(self, a1: float, r4: float, r5: float, r6: float, _internal = 0):
10
+ if(_internal == 0):
11
+ self._instance = crx_dhm_parameters(a1, r4, r5, r6)
12
+ else:
13
+ self._instance = _internal
14
+ @property
15
+ def a2(self) -> float:
16
+ return self._instance.A2
17
+ @a2.setter
18
+ def a2(self, value: float):
19
+ self._instance.A2 = value
20
+ @property
21
+ def d4(self) -> float:
22
+ return self._instance.D4
23
+ @d4.setter
24
+ def d4(self, value: float):
25
+ self._instance.D4 = value
26
+ @property
27
+ def d5(self) -> float:
28
+ return self._instance.D5
29
+ @d5.setter
30
+ def d5(self, value: float):
31
+ self._instance.D5 = value
32
+ @property
33
+ def d6(self) -> float:
34
+ return self._instance.D6
35
+ @d6.setter
36
+ def d6(self, value: float):
37
+ self._instance.D6 = value
@@ -0,0 +1,18 @@
1
+ import typing
2
+ from underautomation.fanuc.common.joints_position import JointsPosition
3
+ from underautomation.fanuc.common.cartesian_position import CartesianPosition
4
+ from underautomation.fanuc.kinematics.dh_parameters import DhParameters
5
+ import clr
6
+ import os
7
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
8
+ from UnderAutomation.Fanuc.Kinematics.Crx import CrxKinematicsUtils as crx_kinematics_utils
9
+
10
+ class CrxKinematicsUtils:
11
+ def __init__(self, _internal = 0):
12
+ if(_internal == 0):
13
+ self._instance = crx_kinematics_utils()
14
+ else:
15
+ self._instance = _internal
16
+ @staticmethod
17
+ def inverse_kinematics(pose: CartesianPosition, parameters: DhParameters, includeDuals: bool=True, seedJoints: typing.List[float]=None) -> typing.List[JointsPosition]:
18
+ return [JointsPosition(x) for x in crx_kinematics_utils.InverseKinematics(pose._instance if pose else None, parameters._instance if parameters else None, includeDuals, seedJoints)]
@@ -0,0 +1,24 @@
1
+ import typing
2
+ import clr
3
+ import os
4
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
5
+ from UnderAutomation.Fanuc.Kinematics.Crx import ICrxDhmParameters as i_crx_dhm_parameters
6
+
7
+ class ICrxDhmParameters:
8
+ def __init__(self, _internal = 0):
9
+ if(_internal == 0):
10
+ self._instance = i_crx_dhm_parameters()
11
+ else:
12
+ self._instance = _internal
13
+ @property
14
+ def a2(self) -> float:
15
+ return self._instance.A2
16
+ @property
17
+ def d4(self) -> float:
18
+ return self._instance.D4
19
+ @property
20
+ def d5(self) -> float:
21
+ return self._instance.D5
22
+ @property
23
+ def d6(self) -> float:
24
+ return self._instance.D6