@wandelbots/wandelbots-js-react-components 1.32.1 → 1.33.1
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.
- package/dist/components/LoadingButton.d.ts +1 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +5 -3
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -1
- package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -1
- package/dist/components/jogging/JoggingStore.d.ts +12 -3
- package/dist/components/jogging/JoggingStore.d.ts.map +1 -1
- package/dist/components/robots/SupportedRobot.d.ts.map +1 -1
- package/dist/components/robots/UniversalRobots_UR16e.d.ts +3 -0
- package/dist/components/robots/UniversalRobots_UR16e.d.ts.map +1 -0
- package/dist/index.cjs +26 -26
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4411 -4027
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/jogging/JoggingCartesianAxisControl.tsx +52 -11
- package/src/components/jogging/JoggingCartesianTab.tsx +39 -21
- package/src/components/jogging/JoggingStore.ts +14 -4
- package/src/components/robots/SupportedRobot.tsx +5 -1
- package/src/components/robots/UniversalRobots_UR16e.tsx +234 -0
- package/src/icons/rotation.svg +3 -1
- package/src/themes/createDarkTheme.ts +3 -3
package/package.json
CHANGED
|
@@ -7,16 +7,17 @@ import JogMinus from "../../icons/jog-minus.svg"
|
|
|
7
7
|
import JogPlus from "../../icons/jog-plus.svg"
|
|
8
8
|
import type { AxisControlComponentColors } from "../../themes/themeTypes"
|
|
9
9
|
import { useAnimationFrame } from "../utils/hooks"
|
|
10
|
-
|
|
11
|
-
type Direction = "+" | "-"
|
|
10
|
+
import type { JoggingDirection } from "./JoggingStore"
|
|
12
11
|
|
|
13
12
|
type JoggingCartesianAxisControlProps = {
|
|
14
13
|
colors?: AxisControlComponentColors
|
|
15
14
|
label: ReactNode
|
|
16
15
|
getDisplayedValue: () => string
|
|
17
|
-
startJogging: (direction:
|
|
16
|
+
startJogging: (direction: JoggingDirection) => void
|
|
18
17
|
stopJogging: () => void
|
|
19
18
|
disabled?: boolean
|
|
19
|
+
/** If set, the corresponding button will be rendered in the pressed state */
|
|
20
|
+
activeJoggingDirection?: JoggingDirection
|
|
20
21
|
} & React.ComponentProps<typeof Stack>
|
|
21
22
|
|
|
22
23
|
/** A input widget to control an individual cartesian axis */
|
|
@@ -29,6 +30,7 @@ export const JoggingCartesianAxisControl = externalizeComponent(
|
|
|
29
30
|
startJogging,
|
|
30
31
|
stopJogging,
|
|
31
32
|
disabled,
|
|
33
|
+
activeJoggingDirection,
|
|
32
34
|
...rest
|
|
33
35
|
}: JoggingCartesianAxisControlProps) => {
|
|
34
36
|
useAnimationFrame(() => {
|
|
@@ -39,7 +41,13 @@ export const JoggingCartesianAxisControl = externalizeComponent(
|
|
|
39
41
|
element.textContent = displayValue
|
|
40
42
|
})
|
|
41
43
|
const theme = useTheme()
|
|
42
|
-
|
|
44
|
+
|
|
45
|
+
const [localActiveJoggingDirection, setLocalActiveJoggingDirection] =
|
|
46
|
+
useState<JoggingDirection | null>(null)
|
|
47
|
+
|
|
48
|
+
// Handle both controlled and uncontrolled states
|
|
49
|
+
const showJoggingDirection =
|
|
50
|
+
activeJoggingDirection || localActiveJoggingDirection
|
|
43
51
|
|
|
44
52
|
const valueContainerRef = useRef<HTMLParagraphElement>(null)
|
|
45
53
|
|
|
@@ -57,17 +65,31 @@ export const JoggingCartesianAxisControl = externalizeComponent(
|
|
|
57
65
|
}
|
|
58
66
|
}
|
|
59
67
|
|
|
60
|
-
const
|
|
68
|
+
const borderColor = showJoggingDirection
|
|
69
|
+
? colors.buttonBackgroundColor?.pressed
|
|
70
|
+
: colors.borderColor
|
|
71
|
+
|
|
72
|
+
const sxAxisControlButtonBase = {
|
|
61
73
|
width: "55px",
|
|
62
|
-
backgroundColor: colors.buttonBackgroundColor?.default,
|
|
63
74
|
color: colors.color,
|
|
75
|
+
path: { fill: colors.color },
|
|
64
76
|
alignContent: "center",
|
|
65
77
|
fontSize: "37px",
|
|
78
|
+
svg: {
|
|
79
|
+
pointerEvents: "none",
|
|
80
|
+
},
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const sxAxisControlButtonDefault = {
|
|
84
|
+
...sxAxisControlButtonBase,
|
|
85
|
+
backgroundColor: colors.buttonBackgroundColor?.default,
|
|
66
86
|
"&:hover": {
|
|
67
87
|
backgroundColor: colors.buttonBackgroundColor?.hovered,
|
|
68
88
|
},
|
|
69
89
|
"&:active": {
|
|
70
90
|
backgroundColor: colors.buttonBackgroundColor?.pressed,
|
|
91
|
+
color: colors.backgroundColor,
|
|
92
|
+
path: { fill: colors.backgroundColor },
|
|
71
93
|
},
|
|
72
94
|
":disabled": {
|
|
73
95
|
backgroundColor: colors.buttonBackgroundColor?.disabled,
|
|
@@ -75,18 +97,33 @@ export const JoggingCartesianAxisControl = externalizeComponent(
|
|
|
75
97
|
},
|
|
76
98
|
}
|
|
77
99
|
|
|
78
|
-
|
|
100
|
+
const sxAxisControlButtonPressed = {
|
|
101
|
+
...sxAxisControlButtonBase,
|
|
102
|
+
backgroundColor: colors.buttonBackgroundColor?.pressed,
|
|
103
|
+
color: colors.backgroundColor,
|
|
104
|
+
path: { fill: colors.backgroundColor },
|
|
105
|
+
":disabled": {
|
|
106
|
+
backgroundColor: colors.buttonBackgroundColor?.pressed,
|
|
107
|
+
"svg path": { fill: theme.palette.action.disabled },
|
|
108
|
+
},
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function onPointerDown(
|
|
112
|
+
ev: React.PointerEvent,
|
|
113
|
+
direction: JoggingDirection,
|
|
114
|
+
) {
|
|
79
115
|
if (disabled) {
|
|
80
116
|
return
|
|
81
117
|
}
|
|
82
|
-
|
|
118
|
+
|
|
83
119
|
if (ev.button === 0) {
|
|
120
|
+
setLocalActiveJoggingDirection(direction)
|
|
84
121
|
startJogging(direction)
|
|
85
122
|
}
|
|
86
123
|
}
|
|
87
124
|
|
|
88
125
|
function onPointerUpOrOut() {
|
|
89
|
-
|
|
126
|
+
setLocalActiveJoggingDirection(null)
|
|
90
127
|
stopJogging()
|
|
91
128
|
}
|
|
92
129
|
|
|
@@ -100,7 +137,9 @@ export const JoggingCartesianAxisControl = externalizeComponent(
|
|
|
100
137
|
onPointerOut={onPointerUpOrOut}
|
|
101
138
|
size="large"
|
|
102
139
|
sx={{
|
|
103
|
-
...
|
|
140
|
+
...(showJoggingDirection === "-"
|
|
141
|
+
? sxAxisControlButtonPressed
|
|
142
|
+
: sxAxisControlButtonDefault),
|
|
104
143
|
borderRadius: "16px 0px 0px 16px",
|
|
105
144
|
borderLeft: `2px solid ${borderColor ?? "#fff"}`,
|
|
106
145
|
borderBottom: `2px solid ${borderColor ?? "#fff"}`,
|
|
@@ -163,7 +202,9 @@ export const JoggingCartesianAxisControl = externalizeComponent(
|
|
|
163
202
|
onPointerOut={onPointerUpOrOut}
|
|
164
203
|
size="large"
|
|
165
204
|
sx={{
|
|
166
|
-
...
|
|
205
|
+
...(showJoggingDirection === "+"
|
|
206
|
+
? sxAxisControlButtonPressed
|
|
207
|
+
: sxAxisControlButtonDefault),
|
|
167
208
|
borderRadius: "0px 16px 16px 0px",
|
|
168
209
|
borderRight: `2px solid ${borderColor ?? "#fff"}`,
|
|
169
210
|
borderBottom: `2px solid ${borderColor ?? "#fff"}`,
|
|
@@ -17,14 +17,19 @@ import { JoggingActivationRequired } from "./JoggingActivationRequired"
|
|
|
17
17
|
import { JoggingCartesianAxisControl } from "./JoggingCartesianAxisControl"
|
|
18
18
|
import { JoggingJointLimitDetector } from "./JoggingJointLimitDetector"
|
|
19
19
|
import { JoggingOptions } from "./JoggingOptions"
|
|
20
|
-
import type {
|
|
20
|
+
import type {
|
|
21
|
+
DiscreteIncrementOption,
|
|
22
|
+
JoggingAxis,
|
|
23
|
+
JoggingDirection,
|
|
24
|
+
JoggingStore,
|
|
25
|
+
} from "./JoggingStore"
|
|
21
26
|
import { JoggingToggleButtonGroup } from "./JoggingToggleButtonGroup"
|
|
22
27
|
import { JoggingVelocitySlider } from "./JoggingVelocitySlider"
|
|
23
28
|
|
|
24
29
|
type JoggingCartesianOpts = {
|
|
25
|
-
axis:
|
|
30
|
+
axis: JoggingAxis
|
|
26
31
|
motionType: "translate" | "rotate"
|
|
27
|
-
direction:
|
|
32
|
+
direction: JoggingDirection
|
|
28
33
|
}
|
|
29
34
|
|
|
30
35
|
export const JoggingCartesianTab = observer(
|
|
@@ -70,24 +75,32 @@ export const JoggingCartesianTab = observer(
|
|
|
70
75
|
if (!tcpPose) return
|
|
71
76
|
|
|
72
77
|
await store.withMotionLock(async () => {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
store.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
78
|
+
try {
|
|
79
|
+
store.setCurrentIncrementJog({
|
|
80
|
+
axis: opts.axis,
|
|
81
|
+
direction: opts.direction,
|
|
82
|
+
})
|
|
83
|
+
await store.jogger.runIncrementalCartesianMotion({
|
|
84
|
+
currentTcpPose: tcpPose,
|
|
85
|
+
currentJoints: jointPosition,
|
|
86
|
+
coordSystemId: store.activeCoordSystemId,
|
|
87
|
+
velocityInRelevantUnits: store.velocityInCurrentUnits,
|
|
88
|
+
axis: opts.axis,
|
|
89
|
+
direction: opts.direction,
|
|
90
|
+
motion:
|
|
91
|
+
store.selectedCartesianMotionType === "translate"
|
|
92
|
+
? {
|
|
93
|
+
type: "translate",
|
|
94
|
+
distanceMm: increment.mm,
|
|
95
|
+
}
|
|
96
|
+
: {
|
|
97
|
+
type: "rotate",
|
|
98
|
+
distanceRads: degreesToRadians(increment.degrees),
|
|
99
|
+
},
|
|
100
|
+
})
|
|
101
|
+
} finally {
|
|
102
|
+
store.setCurrentIncrementJog(null)
|
|
103
|
+
}
|
|
91
104
|
})
|
|
92
105
|
}
|
|
93
106
|
|
|
@@ -195,6 +208,11 @@ export const JoggingCartesianTab = observer(
|
|
|
195
208
|
key={axis.id}
|
|
196
209
|
colors={axis.colors}
|
|
197
210
|
disabled={store.isLocked}
|
|
211
|
+
activeJoggingDirection={
|
|
212
|
+
store.incrementJogInProgress?.axis === axis.id
|
|
213
|
+
? store.incrementJogInProgress.direction
|
|
214
|
+
: undefined
|
|
215
|
+
}
|
|
198
216
|
label={
|
|
199
217
|
<>
|
|
200
218
|
{axis.icon}
|
|
@@ -27,6 +27,8 @@ const incrementOptions = [
|
|
|
27
27
|
...discreteIncrementOptions,
|
|
28
28
|
] as const
|
|
29
29
|
|
|
30
|
+
export type JoggingAxis = "x" | "y" | "z"
|
|
31
|
+
export type JoggingDirection = "+" | "-"
|
|
30
32
|
export type DiscreteIncrementOption = (typeof discreteIncrementOptions)[number]
|
|
31
33
|
export type IncrementOption = (typeof incrementOptions)[number]
|
|
32
34
|
export type IncrementOptionId = IncrementOption["id"]
|
|
@@ -34,6 +36,11 @@ export type IncrementOptionId = IncrementOption["id"]
|
|
|
34
36
|
export const ORIENTATION_IDS = ["coordsys", "tool"]
|
|
35
37
|
export type OrientationId = (typeof ORIENTATION_IDS)[number]
|
|
36
38
|
|
|
39
|
+
export type IncrementJogInProgress = {
|
|
40
|
+
direction: JoggingDirection
|
|
41
|
+
axis: JoggingAxis
|
|
42
|
+
}
|
|
43
|
+
|
|
37
44
|
export class JoggingStore {
|
|
38
45
|
selectedTabId: "cartesian" | "joint" | "debug" = "cartesian"
|
|
39
46
|
|
|
@@ -87,8 +94,11 @@ export class JoggingStore {
|
|
|
87
94
|
*/
|
|
88
95
|
selectedCartesianMotionType: "translate" | "rotate" = "translate"
|
|
89
96
|
|
|
90
|
-
/**
|
|
91
|
-
|
|
97
|
+
/**
|
|
98
|
+
* If the jogger is busy running an incremental jog, this will be set
|
|
99
|
+
* with the information about the motion
|
|
100
|
+
*/
|
|
101
|
+
incrementJogInProgress: IncrementJogInProgress | null = null
|
|
92
102
|
|
|
93
103
|
/** How fast the robot goes when doing cartesian translate jogging in mm/s */
|
|
94
104
|
translationVelocityMmPerSec: number = 10
|
|
@@ -437,8 +447,8 @@ export class JoggingStore {
|
|
|
437
447
|
this.selectedIncrementId = id
|
|
438
448
|
}
|
|
439
449
|
|
|
440
|
-
|
|
441
|
-
this.
|
|
450
|
+
setCurrentIncrementJog(incrementJog: IncrementJogInProgress | null) {
|
|
451
|
+
this.incrementJogInProgress = incrementJog
|
|
442
452
|
}
|
|
443
453
|
|
|
444
454
|
setVelocityFromSlider(velocity: number) {
|
|
@@ -5,6 +5,7 @@ import { ABB_1300_115_10 } from "./ABB_1300_115_10"
|
|
|
5
5
|
import { FANUC_ARC_Mate_100iD } from "./FANUC_ARC_Mate_100iD"
|
|
6
6
|
import { FANUC_ARC_Mate_120iD } from "./FANUC_ARC_Mate_120iD"
|
|
7
7
|
import { FANUC_CRX10iA } from "./FANUC_CRX10iA"
|
|
8
|
+
import { FANUC_CRX10iAL } from "./FANUC_CRX10iAL"
|
|
8
9
|
import { FANUC_CRX20iAL } from "./FANUC_CRX20iAL"
|
|
9
10
|
import { FANUC_CRX25iA } from "./FANUC_CRX25iA"
|
|
10
11
|
import { FANUC_CRX25iAL } from "./FANUC_CRX25iAL"
|
|
@@ -18,6 +19,7 @@ import { KUKA_KR270_R2700 } from "./KUKA_KR270_R2700"
|
|
|
18
19
|
import { KUKA_KR6_R700_2 } from "./KUKA_KR6_R700_2"
|
|
19
20
|
import { UniversalRobots_UR10CB } from "./UniversalRobots_UR10CB"
|
|
20
21
|
import { UniversalRobots_UR10e } from "./UniversalRobots_UR10e"
|
|
22
|
+
import { UniversalRobots_UR16e } from "./UniversalRobots_UR16e"
|
|
21
23
|
import { UniversalRobots_UR3CB } from "./UniversalRobots_UR3CB"
|
|
22
24
|
import { UniversalRobots_UR3e } from "./UniversalRobots_UR3e"
|
|
23
25
|
import { UniversalRobots_UR5CB } from "./UniversalRobots_UR5CB"
|
|
@@ -43,7 +45,6 @@ import { ErrorBoundary } from "react-error-boundary"
|
|
|
43
45
|
import * as THREE from "three"
|
|
44
46
|
import { externalizeComponent } from "../../externalizeComponent"
|
|
45
47
|
import ConsoleFilter from "../ConsoleFilter"
|
|
46
|
-
import { FANUC_CRX10iAL } from "./FANUC_CRX10iAL"
|
|
47
48
|
import RobotAnimator from "./RobotAnimator"
|
|
48
49
|
import type { RobotModelComponent } from "./types"
|
|
49
50
|
|
|
@@ -191,6 +192,9 @@ export const SupportedRobot = externalizeComponent(
|
|
|
191
192
|
case "UniversalRobots_UR10e":
|
|
192
193
|
Robot = UniversalRobots_UR10e
|
|
193
194
|
break
|
|
195
|
+
case "UniversalRobots_UR16e":
|
|
196
|
+
Robot = UniversalRobots_UR16e
|
|
197
|
+
break
|
|
194
198
|
case "Yaskawa_AR900":
|
|
195
199
|
Robot = Yaskawa_AR900
|
|
196
200
|
break
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { animated } from "@react-spring/three"
|
|
2
|
+
import { useGLTF } from "@react-three/drei"
|
|
3
|
+
import type { RobotModelProps } from "./types"
|
|
4
|
+
|
|
5
|
+
export function UniversalRobots_UR16e({
|
|
6
|
+
modelURL,
|
|
7
|
+
flangeRef,
|
|
8
|
+
...props
|
|
9
|
+
}: RobotModelProps) {
|
|
10
|
+
const gltf = useGLTF(modelURL) as any
|
|
11
|
+
const nodes = gltf.nodes
|
|
12
|
+
const materials = gltf.materials
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<group {...props} dispose={null}>
|
|
16
|
+
<group name="Scene">
|
|
17
|
+
<group name="link_0">
|
|
18
|
+
<mesh
|
|
19
|
+
name="shape007"
|
|
20
|
+
geometry={nodes.shape007.geometry}
|
|
21
|
+
material={materials.universalrobots_stainlesssteel}
|
|
22
|
+
/>
|
|
23
|
+
<mesh
|
|
24
|
+
name="shape007_1"
|
|
25
|
+
geometry={nodes.shape007_1.geometry}
|
|
26
|
+
material={materials.universalrobots_stainlesssteel}
|
|
27
|
+
/>
|
|
28
|
+
<mesh
|
|
29
|
+
name="shape007_2"
|
|
30
|
+
geometry={nodes.shape007_2.geometry}
|
|
31
|
+
material={materials.universalrobots_aluminum}
|
|
32
|
+
/>
|
|
33
|
+
<mesh
|
|
34
|
+
name="shape007_3"
|
|
35
|
+
geometry={nodes.shape007_3.geometry}
|
|
36
|
+
material={materials.universalrobots_aluminum}
|
|
37
|
+
/>
|
|
38
|
+
<mesh
|
|
39
|
+
name="shape007_4"
|
|
40
|
+
geometry={nodes.shape007_4.geometry}
|
|
41
|
+
material={materials.universalrobots_black}
|
|
42
|
+
/>
|
|
43
|
+
</group>
|
|
44
|
+
<animated.group name="UNIVERSALROBOTS_UR16E_J00">
|
|
45
|
+
<group name="link_1">
|
|
46
|
+
<mesh
|
|
47
|
+
name="shape039"
|
|
48
|
+
geometry={nodes.shape039.geometry}
|
|
49
|
+
material={materials.universalrobots_lightblue}
|
|
50
|
+
/>
|
|
51
|
+
<mesh
|
|
52
|
+
name="shape039_1"
|
|
53
|
+
geometry={nodes.shape039_1.geometry}
|
|
54
|
+
material={materials.universalrobots_darkgrey}
|
|
55
|
+
/>
|
|
56
|
+
<mesh
|
|
57
|
+
name="shape039_2"
|
|
58
|
+
geometry={nodes.shape039_2.geometry}
|
|
59
|
+
material={materials.universalrobots_stainlesssteel}
|
|
60
|
+
/>
|
|
61
|
+
<mesh
|
|
62
|
+
name="shape039_3"
|
|
63
|
+
geometry={nodes.shape039_3.geometry}
|
|
64
|
+
material={materials.universalrobots_black}
|
|
65
|
+
/>
|
|
66
|
+
</group>
|
|
67
|
+
<animated.group
|
|
68
|
+
name="UNIVERSALROBOTS_UR16E_J01"
|
|
69
|
+
position={[0, 0.181, 0]}
|
|
70
|
+
rotation={[Math.PI / 2, 0, 0]}
|
|
71
|
+
>
|
|
72
|
+
<group
|
|
73
|
+
name="link_2"
|
|
74
|
+
position={[0.181, 0, 0]}
|
|
75
|
+
rotation={[-Math.PI / 2, 0, Math.PI / 2]}
|
|
76
|
+
>
|
|
77
|
+
<mesh
|
|
78
|
+
name="shape002"
|
|
79
|
+
geometry={nodes.shape002.geometry}
|
|
80
|
+
material={materials.universalrobots_darkgrey}
|
|
81
|
+
/>
|
|
82
|
+
<mesh
|
|
83
|
+
name="shape002_1"
|
|
84
|
+
geometry={nodes.shape002_1.geometry}
|
|
85
|
+
material={materials.universalrobots_black}
|
|
86
|
+
/>
|
|
87
|
+
<mesh
|
|
88
|
+
name="shape002_2"
|
|
89
|
+
geometry={nodes.shape002_2.geometry}
|
|
90
|
+
material={materials.universalrobots_lightblue}
|
|
91
|
+
/>
|
|
92
|
+
<mesh
|
|
93
|
+
name="shape002_3"
|
|
94
|
+
geometry={nodes.shape002_3.geometry}
|
|
95
|
+
material={materials.universalrobots_aluminum}
|
|
96
|
+
/>
|
|
97
|
+
<mesh
|
|
98
|
+
name="shape002_4"
|
|
99
|
+
geometry={nodes.shape002_4.geometry}
|
|
100
|
+
material={materials.universalrobots_stainlesssteel}
|
|
101
|
+
/>
|
|
102
|
+
</group>
|
|
103
|
+
<animated.group
|
|
104
|
+
name="UNIVERSALROBOTS_UR16E_J02"
|
|
105
|
+
position={[-0.478, 0, 0]}
|
|
106
|
+
>
|
|
107
|
+
<group
|
|
108
|
+
name="link_3"
|
|
109
|
+
position={[0.659, 0, 0]}
|
|
110
|
+
rotation={[-Math.PI / 2, 0, Math.PI / 2]}
|
|
111
|
+
>
|
|
112
|
+
<mesh
|
|
113
|
+
name="shape005"
|
|
114
|
+
geometry={nodes.shape005.geometry}
|
|
115
|
+
material={materials.universalrobots_stainlesssteel}
|
|
116
|
+
/>
|
|
117
|
+
<mesh
|
|
118
|
+
name="shape005_1"
|
|
119
|
+
geometry={nodes.shape005_1.geometry}
|
|
120
|
+
material={materials.universalrobots_aluminum}
|
|
121
|
+
/>
|
|
122
|
+
<mesh
|
|
123
|
+
name="shape005_2"
|
|
124
|
+
geometry={nodes.shape005_2.geometry}
|
|
125
|
+
material={materials.universalrobots_black}
|
|
126
|
+
/>
|
|
127
|
+
<mesh
|
|
128
|
+
name="shape005_3"
|
|
129
|
+
geometry={nodes.shape005_3.geometry}
|
|
130
|
+
material={materials.universalrobots_lightblue}
|
|
131
|
+
/>
|
|
132
|
+
<mesh
|
|
133
|
+
name="shape005_4"
|
|
134
|
+
geometry={nodes.shape005_4.geometry}
|
|
135
|
+
material={materials.universalrobots_darkgrey}
|
|
136
|
+
/>
|
|
137
|
+
</group>
|
|
138
|
+
<animated.group
|
|
139
|
+
name="UNIVERSALROBOTS_UR16E_J03"
|
|
140
|
+
position={[-0.36, 0, 0]}
|
|
141
|
+
>
|
|
142
|
+
<group
|
|
143
|
+
name="link_4"
|
|
144
|
+
position={[0, 0, -1.019]}
|
|
145
|
+
rotation={[-Math.PI / 2, 0, Math.PI]}
|
|
146
|
+
>
|
|
147
|
+
<mesh
|
|
148
|
+
name="shape003"
|
|
149
|
+
geometry={nodes.shape003.geometry}
|
|
150
|
+
material={materials.universalrobots_lightblue}
|
|
151
|
+
/>
|
|
152
|
+
<mesh
|
|
153
|
+
name="shape003_1"
|
|
154
|
+
geometry={nodes.shape003_1.geometry}
|
|
155
|
+
material={materials.universalrobots_darkgrey}
|
|
156
|
+
/>
|
|
157
|
+
<mesh
|
|
158
|
+
name="shape003_2"
|
|
159
|
+
geometry={nodes.shape003_2.geometry}
|
|
160
|
+
material={materials.universalrobots_black}
|
|
161
|
+
/>
|
|
162
|
+
<mesh
|
|
163
|
+
name="shape003_3"
|
|
164
|
+
geometry={nodes.shape003_3.geometry}
|
|
165
|
+
material={materials.universalrobots_stainlesssteel}
|
|
166
|
+
/>
|
|
167
|
+
</group>
|
|
168
|
+
<animated.group
|
|
169
|
+
name="UNIVERSALROBOTS_UR16E_J04"
|
|
170
|
+
position={[0, 0.174, 0]}
|
|
171
|
+
rotation={[Math.PI / 2, 0, 0]}
|
|
172
|
+
>
|
|
173
|
+
<group
|
|
174
|
+
name="link_5"
|
|
175
|
+
position={[0, -1.019, 0.174]}
|
|
176
|
+
rotation={[Math.PI, 0, Math.PI]}
|
|
177
|
+
>
|
|
178
|
+
<mesh
|
|
179
|
+
name="shape"
|
|
180
|
+
geometry={nodes.shape.geometry}
|
|
181
|
+
material={materials.universalrobots_lightblue}
|
|
182
|
+
/>
|
|
183
|
+
<mesh
|
|
184
|
+
name="shape_1"
|
|
185
|
+
geometry={nodes.shape_1.geometry}
|
|
186
|
+
material={materials.universalrobots_darkgrey}
|
|
187
|
+
/>
|
|
188
|
+
<mesh
|
|
189
|
+
name="shape_2"
|
|
190
|
+
geometry={nodes.shape_2.geometry}
|
|
191
|
+
material={materials.universalrobots_black}
|
|
192
|
+
/>
|
|
193
|
+
<mesh
|
|
194
|
+
name="shape_3"
|
|
195
|
+
geometry={nodes.shape_3.geometry}
|
|
196
|
+
material={materials.universalrobots_stainlesssteel}
|
|
197
|
+
/>
|
|
198
|
+
</group>
|
|
199
|
+
<animated.group
|
|
200
|
+
name="UNIVERSALROBOTS_UR16E_J05"
|
|
201
|
+
position={[0, 0.12, 0]}
|
|
202
|
+
rotation={[-Math.PI / 2, 0, 0]}
|
|
203
|
+
>
|
|
204
|
+
<group
|
|
205
|
+
name="link_6"
|
|
206
|
+
position={[0, -0.174, -1.139]}
|
|
207
|
+
rotation={[-Math.PI / 2, 0, Math.PI]}
|
|
208
|
+
>
|
|
209
|
+
<mesh
|
|
210
|
+
name="shape004"
|
|
211
|
+
geometry={nodes.shape004.geometry}
|
|
212
|
+
material={materials.universalrobots_aluminum}
|
|
213
|
+
/>
|
|
214
|
+
<mesh
|
|
215
|
+
name="shape004_1"
|
|
216
|
+
geometry={nodes.shape004_1.geometry}
|
|
217
|
+
material={materials.universalrobots_black}
|
|
218
|
+
/>
|
|
219
|
+
</group>
|
|
220
|
+
<group
|
|
221
|
+
ref={flangeRef}
|
|
222
|
+
name="UNIVERSALROBOTS_UR16E_FLG"
|
|
223
|
+
position={[0, 0.117, 0]}
|
|
224
|
+
/>
|
|
225
|
+
</animated.group>
|
|
226
|
+
</animated.group>
|
|
227
|
+
</animated.group>
|
|
228
|
+
</animated.group>
|
|
229
|
+
</animated.group>
|
|
230
|
+
</animated.group>
|
|
231
|
+
</group>
|
|
232
|
+
</group>
|
|
233
|
+
)
|
|
234
|
+
}
|
package/src/icons/rotation.svg
CHANGED
|
@@ -1 +1,3 @@
|
|
|
1
|
-
<svg
|
|
1
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M8 16C5.76667 16 3.875 15.225 2.325 13.675C0.775 12.125 0 10.2333 0 8C0 5.76667 0.775 3.875 2.325 2.325C3.875 0.775 5.76667 0 8 0C9.15 0 10.25 0.2375 11.3 0.7125C12.35 1.1875 13.25 1.86667 14 2.75V0H16V7H9V5H13.2C12.6667 4.06667 11.9375 3.33333 11.0125 2.8C10.0875 2.26667 9.08333 2 8 2C6.33333 2 4.91667 2.58333 3.75 3.75C2.58333 4.91667 2 6.33333 2 8C2 9.66667 2.58333 11.0833 3.75 12.25C4.91667 13.4167 6.33333 14 8 14C9.28333 14 10.4417 13.6333 11.475 12.9C11.0583 14.1 12.5083 12.1667 11.475 12.9L12.9 14.325C11.4667 15.4417 9.83333 16 8 16Z" fill="white"/>
|
|
3
|
+
</svg>
|
|
@@ -212,7 +212,7 @@ export function createDarkTheme(): Theme {
|
|
|
212
212
|
hovered: "rgba(241, 77, 66, 1)",
|
|
213
213
|
disabled: "rgba(241, 77, 66, 1)",
|
|
214
214
|
},
|
|
215
|
-
color: "rgba(255,
|
|
215
|
+
color: "rgba(255, 198, 198, 1)",
|
|
216
216
|
},
|
|
217
217
|
Y: {
|
|
218
218
|
backgroundColor: "rgba(20, 151, 108, 1)",
|
|
@@ -223,7 +223,7 @@ export function createDarkTheme(): Theme {
|
|
|
223
223
|
disabled: "rgba(28, 188, 135, 1)",
|
|
224
224
|
hovered: "rgba(28, 188, 135, 1)",
|
|
225
225
|
},
|
|
226
|
-
color: "rgba(
|
|
226
|
+
color: "rgba(215, 255, 242, 1)",
|
|
227
227
|
},
|
|
228
228
|
Z: {
|
|
229
229
|
backgroundColor: "rgba(1, 87, 155, 1)",
|
|
@@ -234,7 +234,7 @@ export function createDarkTheme(): Theme {
|
|
|
234
234
|
disabled: "rgba(2, 136, 209, 1)",
|
|
235
235
|
hovered: "rgba(2, 136, 209, 1)",
|
|
236
236
|
},
|
|
237
|
-
color: "rgba(
|
|
237
|
+
color: "rgba(210, 239, 255, 1)",
|
|
238
238
|
},
|
|
239
239
|
},
|
|
240
240
|
},
|