New motor field editor (#470)

* New motor field editor showing two dropdown, first to select the type and the second to select the port.
This commit is contained in:
Sam El-Husseini 2018-04-09 15:59:28 -07:00 committed by GitHub
parent d837a515dc
commit a433988929
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 1998 additions and 310 deletions

View File

@ -3,7 +3,7 @@
import { deployCoreAsync, initAsync } from "./deploy";
import { FieldPorts } from "./field_ports";
import { FieldImages } from "./field_images";
import { FieldMotors } from "./field_motors";
import { FieldSpeed } from "./field_speed";
import { FieldBrickButtons } from "./field_brickbuttons";
import { FieldTurnRatio } from "./field_turnratio";
@ -17,8 +17,8 @@ pxt.editor.initExtensionsAsync = function (opts: pxt.editor.ExtensionOptions): P
selector: "ports",
editor: FieldPorts
}, {
selector: "images",
editor: FieldImages
selector: "motors",
editor: FieldMotors
}, {
selector: "speed",
editor: FieldSpeed

View File

@ -155,5 +155,6 @@ export class FieldBrickButtons extends Blockly.FieldDropdown implements Blockly.
Blockly.DropDownDiv.content_.removeAttribute('role');
Blockly.DropDownDiv.content_.removeAttribute('aria-haspopup');
Blockly.DropDownDiv.content_.removeAttribute('aria-activedescendant');
Blockly.DropDownDiv.getContentDiv().style.width = '';
};
}

View File

@ -1,114 +0,0 @@
/// <reference path="../node_modules/pxt-core/localtypings/blockly.d.ts"/>
/// <reference path="../node_modules/pxt-core/built/pxtblocks.d.ts"/>
/// <reference path="../node_modules/pxt-core/built/pxtsim.d.ts"/>
export interface FieldImagesOptions extends pxtblockly.FieldImageDropdownOptions {
}
export class FieldImages extends pxtblockly.FieldImageDropdown implements Blockly.FieldCustom {
public isFieldCustom_ = true;
constructor(text: string, options: FieldImagesOptions, validator?: Function) {
super(text, options, validator);
}
/**
* Create a dropdown menu under the text.
* @private
*/
public showEditor_() {
// If there is an existing drop-down we own, this is a request to hide the drop-down.
if (Blockly.DropDownDiv.hideIfOwner(this)) {
return;
}
// If there is an existing drop-down someone else owns, hide it immediately and clear it.
Blockly.DropDownDiv.hideWithoutAnimation();
Blockly.DropDownDiv.clearContent();
// Populate the drop-down with the icons for this field.
let dropdownDiv = Blockly.DropDownDiv.getContentDiv();
let contentDiv = document.createElement('div');
// Accessibility properties
contentDiv.setAttribute('role', 'menu');
contentDiv.setAttribute('aria-haspopup', 'true');
const options = this.getOptions();
for (let i = 0, option: any; option = options[i]; i++) {
let content = (options[i] as any)[0]; // Human-readable text or image.
const value = (options[i] as any)[1]; // Language-neutral value.
// Icons with the type property placeholder take up space but don't have any functionality
// Use for special-case layouts
if (content.type == 'placeholder') {
let placeholder = document.createElement('span');
placeholder.setAttribute('class', 'blocklyDropDownPlaceholder');
placeholder.style.width = content.width + 'px';
placeholder.style.height = content.height + 'px';
contentDiv.appendChild(placeholder);
continue;
}
let button = document.createElement('button');
button.setAttribute('id', ':' + i); // For aria-activedescendant
button.setAttribute('role', 'menuitem');
button.setAttribute('class', 'blocklyDropDownButton');
button.title = content.alt;
if ((this as any).columns_) {
button.style.width = (((this as any).width_ / (this as any).columns_) - 8) + 'px';
//button.style.height = ((this.width_ / this.columns_) - 8) + 'px';
} else {
button.style.width = content.width + 'px';
button.style.height = content.height + 'px';
}
let backgroundColor = this.sourceBlock_.getColour();
if (value == this.getValue()) {
// This icon is selected, show it in a different colour
backgroundColor = this.sourceBlock_.getColourTertiary();
button.setAttribute('aria-selected', 'true');
}
button.style.backgroundColor = backgroundColor;
button.style.borderColor = this.sourceBlock_.getColourTertiary();
Blockly.bindEvent_(button, 'click', this, (this as any).buttonClick_);
Blockly.bindEvent_(button, 'mouseup', this, (this as any).buttonClick_);
// These are applied manually instead of using the :hover pseudoclass
// because Android has a bad long press "helper" menu and green highlight
// that we must prevent with ontouchstart preventDefault
Blockly.bindEvent_(button, 'mousedown', button, function (e) {
this.setAttribute('class', 'blocklyDropDownButton blocklyDropDownButtonHover');
e.preventDefault();
});
Blockly.bindEvent_(button, 'mouseover', button, function () {
this.setAttribute('class', 'blocklyDropDownButton blocklyDropDownButtonHover');
contentDiv.setAttribute('aria-activedescendant', this.id);
});
Blockly.bindEvent_(button, 'mouseout', button, function () {
this.setAttribute('class', 'blocklyDropDownButton');
contentDiv.removeAttribute('aria-activedescendant');
});
let buttonImg = document.createElement('img');
buttonImg.src = content.src;
//buttonImg.alt = icon.alt;
// Upon click/touch, we will be able to get the clicked element as e.target
// Store a data attribute on all possible click targets so we can match it to the icon.
button.setAttribute('data-value', value);
buttonImg.setAttribute('data-value', value);
button.appendChild(buttonImg);
contentDiv.appendChild(button);
}
contentDiv.style.width = (this as any).width_ + 'px';
dropdownDiv.appendChild(contentDiv);
Blockly.DropDownDiv.setColour(this.sourceBlock_.getColour(), this.sourceBlock_.getColourTertiary());
// Calculate positioning based on the field position.
var scale = this.sourceBlock_.workspace.scale;
var bBox = { width: this.size_.width, height: this.size_.height };
bBox.width *= scale;
bBox.height *= scale;
var position = this.fieldGroup_.getBoundingClientRect();
var primaryX = position.left + bBox.width / 2;
var primaryY = position.top + bBox.height;
var secondaryX = primaryX;
var secondaryY = position.top;
// Set bounds to workspace; show the drop-down.
(Blockly.DropDownDiv as any).setBoundsElement(this.sourceBlock_.workspace.getParentSvg().parentNode);
(Blockly.DropDownDiv as any).show(this, primaryX, primaryY, secondaryX, secondaryY,
(this as any).onHide_.bind(this));
}
}

565
editor/field_motors.ts Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,5 @@
/// <reference path="../node_modules/pxt-core/localtypings/blockly.d.ts"/>
/// <reference path="../node_modules/pxt-core/built/pxtblocks.d.ts"/>
/// <reference path="../node_modules/pxt-core/built/pxtsim.d.ts"/>
export interface FieldPortsOptions extends Blockly.FieldCustomDropdownOptions {
@ -6,146 +7,31 @@ export interface FieldPortsOptions extends Blockly.FieldCustomDropdownOptions {
width?: string;
}
export class FieldPorts extends Blockly.FieldDropdown implements Blockly.FieldCustom {
export class FieldPorts extends pxtblockly.FieldImages implements Blockly.FieldCustom {
public isFieldCustom_ = true;
// Width in pixels
private width_: number;
// Columns in grid
private columns_: number;
private savedPrimary_: string;
constructor(text: string, options: FieldPortsOptions, validator?: Function) {
super(options.data);
super(text, options, validator);
this.columns_ = parseInt(options.columns) || 4;
this.width_ = parseInt(options.width) || 300;
this.setText = Blockly.FieldDropdown.prototype.setText;
this.updateWidth = (Blockly.Field as any).prototype.updateWidth;
this.updateTextNode_ = Blockly.Field.prototype.updateTextNode_;
}
trimOptions_() {
}
/**
* Create a dropdown menu under the text.
* @private
*/
public showEditor_() {
// If there is an existing drop-down we own, this is a request to hide the drop-down.
if (Blockly.DropDownDiv.hideIfOwner(this)) {
return;
}
// If there is an existing drop-down someone else owns, hide it immediately and clear it.
Blockly.DropDownDiv.hideWithoutAnimation();
Blockly.DropDownDiv.clearContent();
// Populate the drop-down with the icons for this field.
let dropdownDiv = Blockly.DropDownDiv.getContentDiv();
let contentDiv = document.createElement('div');
// Accessibility properties
contentDiv.setAttribute('role', 'menu');
contentDiv.setAttribute('aria-haspopup', 'true');
let options = this.getOptions();
options = options.sort();
for (let i = 0, option: any; option = options[i]; i++) {
let content = (options[i] as any)[0]; // Human-readable text or image.
const value = (options[i] as any)[1]; // Language-neutral value.
// Icons with the type property placeholder take up space but don't have any functionality
// Use for special-case layouts
if (content.type == 'placeholder') {
let placeholder = document.createElement('span');
placeholder.setAttribute('class', 'blocklyDropDownPlaceholder');
placeholder.style.width = content.width + 'px';
placeholder.style.height = content.height + 'px';
contentDiv.appendChild(placeholder);
continue;
}
let button = document.createElement('button');
button.setAttribute('id', ':' + i); // For aria-activedescendant
button.setAttribute('role', 'menuitem');
button.setAttribute('class', 'blocklyDropDownButton');
button.title = content.alt;
if (this.columns_) {
button.style.width = ((this.width_ / this.columns_) - 8) + 'px';
button.style.height = ((this.width_ / this.columns_) - 8) + 'px';
} else {
button.style.width = content.width + 'px';
button.style.height = content.height + 'px';
}
let backgroundColor = this.sourceBlock_.getColour();
if (value == this.getValue()) {
// This icon is selected, show it in a different colour
backgroundColor = this.sourceBlock_.getColourTertiary();
button.setAttribute('aria-selected', 'true');
}
button.style.backgroundColor = backgroundColor;
button.style.borderColor = this.sourceBlock_.getColourTertiary();
Blockly.bindEvent_(button, 'click', this, this.buttonClick_);
Blockly.bindEvent_(button, 'mouseup', this, this.buttonClick_);
// These are applied manually instead of using the :hover pseudoclass
// because Android has a bad long press "helper" menu and green highlight
// that we must prevent with ontouchstart preventDefault
Blockly.bindEvent_(button, 'mousedown', button, function (e) {
this.setAttribute('class', 'blocklyDropDownButton blocklyDropDownButtonHover');
e.preventDefault();
});
Blockly.bindEvent_(button, 'mouseover', button, function () {
this.setAttribute('class', 'blocklyDropDownButton blocklyDropDownButtonHover');
contentDiv.setAttribute('aria-activedescendant', this.id);
});
Blockly.bindEvent_(button, 'mouseout', button, function () {
this.setAttribute('class', 'blocklyDropDownButton');
contentDiv.removeAttribute('aria-activedescendant');
});
let buttonImg = document.createElement('img');
buttonImg.src = content.src;
//buttonImg.alt = icon.alt;
// Upon click/touch, we will be able to get the clicked element as e.target
// Store a data attribute on all possible click targets so we can match it to the icon.
button.setAttribute('data-value', value);
buttonImg.setAttribute('data-value', value);
button.appendChild(buttonImg);
contentDiv.appendChild(button);
}
contentDiv.style.width = this.width_ + 'px';
dropdownDiv.appendChild(contentDiv);
Blockly.DropDownDiv.setColour(this.sourceBlock_.getColour(), this.sourceBlock_.getColourTertiary());
// Calculate positioning based on the field position.
var scale = this.sourceBlock_.workspace.scale;
var bBox = { width: this.size_.width, height: this.size_.height };
bBox.width *= scale;
bBox.height *= scale;
var position = this.fieldGroup_.getBoundingClientRect();
var primaryX = position.left + bBox.width / 2;
var primaryY = position.top + bBox.height;
var secondaryX = primaryX;
var secondaryY = position.top;
// Set bounds to workspace; show the drop-down.
(Blockly.DropDownDiv as any).setBoundsElement(this.sourceBlock_.workspace.getParentSvg().parentNode);
(Blockly.DropDownDiv as any).show(this, primaryX, primaryY, secondaryX, secondaryY,
this.onHide_.bind(this));
getOptions() {
const options = super.getOptions();
return options ? options.sort() : undefined;
}
/**
* Callback for when a button is clicked inside the drop-down.
* Should be bound to the FieldIconMenu.
* @param {Event} e DOM event for the click/touch
* @private
*/
private buttonClick_ = function (e: any) {
protected buttonClick_ = function (e: any) {
let value = e.target.getAttribute('data-value');
this.setValue(value);
Blockly.DropDownDiv.hide();
};
/**
* Callback for when the drop-down is hidden.
*/
private onHide_ = function () {
Blockly.DropDownDiv.content_.removeAttribute('role');
Blockly.DropDownDiv.content_.removeAttribute('aria-haspopup');
Blockly.DropDownDiv.content_.removeAttribute('aria-activedescendant');
};
}

View File

@ -13,7 +13,7 @@
sodipodi:docname="Large Motor.svg"
width="153.634"
height="153.634"
inkscape:version="0.92.1 r15371"
inkscape:version="0.91 r13725"
inkscape:export-filename="C:\gh\pxt-ev3\libs\core\jres\icons\motorLarge-icon.png"
inkscape:export-xdpi="74.983398"
inkscape:export-ydpi="74.983398">
@ -25,7 +25,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -38,15 +38,15 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="837"
inkscape:window-width="2560"
inkscape:window-height="1395"
id="namedview7026"
showgrid="false"
inkscape:zoom="1.5361183"
inkscape:cx="39.260502"
inkscape:cy="76.817001"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:zoom="3.0722366"
inkscape:cx="-73.361033"
inkscape:cy="76.817002"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
inkscape:current-layer="svg7024" />
<defs
@ -317,7 +317,7 @@
<g
id="Large_Motor"
data-name="Large Motor"
transform="translate(1383.553,5554.0014)">
transform="matrix(-1,0,0,-1,3003.735,6879.9214)">
<g
id="Mask_Group_6"
data-name="Mask Group 6"
@ -327,12 +327,12 @@
<g
id="Large_motor-2"
data-name="Large motor"
transform="translate(-1.623)">
transform="translate(-1.623,0)">
<path
id="Path_45"
data-name="Path 45"
class="cls-1"
d="m 5.461,0 h 5.612 a 5.461,5.461 0 0 1 5.461,5.461 v 22.9 a 5.461,5.461 0 0 1 -5.461,5.461 H 5.461 A 5.461,5.461 0 0 1 0,28.365 V 5.461 A 5.461,5.461 0 0 1 5.461,0 Z"
d="m 5.461,0 5.612,0 a 5.461,5.461 0 0 1 5.461,5.461 l 0,22.9 a 5.461,5.461 0 0 1 -5.461,5.461 l -5.612,0 A 5.461,5.461 0 0 1 0,28.365 L 0,5.461 A 5.461,5.461 0 0 1 5.461,0 Z"
transform="translate(42.123,84.012)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
@ -358,8 +358,8 @@
id="Path_36"
data-name="Path 36"
class="cls-1"
d="m 0.607,0 h 26.262 a 0.607,0.607 0 0 1 0.607,0.607 V 5.9 A 0.607,0.607 0 0 1 26.869,6.507 H 0.607 A 0.607,0.607 0 0 1 0,5.9 V 0.607 A 0.607,0.607 0 0 1 0.607,0 Z"
transform="translate(41.1)"
d="m 0.607,0 26.262,0 a 0.607,0.607 0 0 1 0.607,0.607 l 0,5.293 a 0.607,0.607 0 0 1 -0.607,0.607 l -26.262,0 A 0.607,0.607 0 0 1 0,5.9 L 0,0.607 A 0.607,0.607 0 0 1 0.607,0 Z"
transform="translate(41.1,0)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
<g
@ -371,7 +371,7 @@
id="Path_34-2"
data-name="Path 34"
class="cls-1"
d="M 0.607,0 H 31.93 a 0.607,0.607 0 0 1 0.607,0.607 V 15.3 A 0.607,0.607 0 0 1 31.93,15.907 H 0.607 A 0.607,0.607 0 0 1 0,15.3 V 0.607 A 0.607,0.607 0 0 1 0.607,0 Z"
d="M 0.607,0 31.93,0 a 0.607,0.607 0 0 1 0.607,0.607 l 0,14.693 a 0.607,0.607 0 0 1 -0.607,0.607 l -31.323,0 A 0.607,0.607 0 0 1 0,15.3 L 0,0.607 A 0.607,0.607 0 0 1 0.607,0 Z"
transform="translate(2171.89,6141.59)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
@ -380,7 +380,7 @@
id="Path_2-2"
data-name="Path 2"
class="cls-3"
d="m 5610.158,939.234 a 4.151,4.151 0 0 1 -2.342,0.705 5.131,5.131 0 0 1 -2.988,-0.705 c -1.257,-0.931 -1.229,0.1 -1.229,0.1 v 1.8 c 0,0.45 0.553,0.846 1.229,0.459 0.676,-0.387 1,-0.581 1,-0.581 0,0 0.361,-0.184 0.361,0.335 v 2.62 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.293,0.248 -0.293,1.385 0,1.137 0.293,1.322 0.293,1.322 h 1.38 c 0,0 0.73,-0.024 0.73,0.649 v 1.3 c 0,0 0.227,0.359 1.169,0.306 a 3.6,3.6 0 0 0 1.4,-0.306 v -1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.252,-0.191 0.287,-1.322 0.035,-1.131 -0.287,-1.385 -0.287,-1.385 h -1.257 c 0,0 -0.805,-0.052 -0.817,-0.768 -0.012,-0.716 0,-2.62 0,-2.62 0,0 -0.047,-0.515 0.332,-0.335 0.379,0.18 1.215,0.581 1.215,0.581 0,0 0.83,0.407 0.814,-0.459 -0.016,-0.866 0,-1.8 0,-1.8 0,0 -0.072,-0.534 -0.804,-0.1 z"
d="m 5610.158,939.234 a 4.151,4.151 0 0 1 -2.342,0.705 5.131,5.131 0 0 1 -2.988,-0.705 c -1.257,-0.931 -1.229,0.1 -1.229,0.1 l 0,1.8 c 0,0.45 0.553,0.846 1.229,0.459 0.676,-0.387 1,-0.581 1,-0.581 0,0 0.361,-0.184 0.361,0.335 l 0,2.62 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.293,0.248 -0.293,1.385 0,1.137 0.293,1.322 0.293,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 l 0,1.3 c 0,0 0.227,0.359 1.169,0.306 a 3.6,3.6 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.252,-0.191 0.287,-1.322 0.035,-1.131 -0.287,-1.385 -0.287,-1.385 l -1.257,0 c 0,0 -0.805,-0.052 -0.817,-0.768 -0.012,-0.716 0,-2.62 0,-2.62 0,0 -0.047,-0.515 0.332,-0.335 0.379,0.18 1.215,0.581 1.215,0.581 0,0 0.83,0.407 0.814,-0.459 -0.016,-0.866 0,-1.8 0,-1.8 0,0 -0.072,-0.534 -0.804,-0.1 z"
transform="translate(-5553.893,-845.301)"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
@ -388,7 +388,7 @@
id="Path_3"
data-name="Path 3"
class="cls-3"
d="m 5601.9,1015.336 a 0.83,0.83 0 0 1 1.2,-0.594 6.516,6.516 0 0 0 2.85,0.772 5.05,5.05 0 0 0 2.768,-0.772 c 0.829,-0.4 1.067,0.594 1.067,0.594 v 1.76 a 0.71,0.71 0 0 1 -1.067,0.561 5.791,5.791 0 0 0 -2.768,-0.837 7.06,7.06 0 0 0 -2.85,0.837 c 0,0 -1.178,0.239 -1.2,-0.561 -0.022,-0.8 0,-1.76 0,-1.76 z"
d="m 5601.9,1015.336 a 0.83,0.83 0 0 1 1.2,-0.594 6.516,6.516 0 0 0 2.85,0.772 5.05,5.05 0 0 0 2.768,-0.772 c 0.829,-0.4 1.067,0.594 1.067,0.594 l 0,1.76 a 0.71,0.71 0 0 1 -1.067,0.561 5.791,5.791 0 0 0 -2.768,-0.837 7.06,7.06 0 0 0 -2.85,0.837 c 0,0 -1.178,0.239 -1.2,-0.561 -0.022,-0.8 0,-1.76 0,-1.76 z"
transform="translate(-5552.485,-909.604)"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
@ -415,7 +415,7 @@
id="Path_2-3"
data-name="Path 2"
class="cls-1"
d="m 1484.037,521.285 v 17.253 c 0,0 0.019,0.845 0.3,1.121 0.281,0.276 3.516,3.626 3.516,3.626 a 1.566,1.566 0 0 0 1.157,0.4 c 0.758,-0.025 11.627,0 11.627,0 l 4.429,-4.7 v -7.963 l -10.662,-0.567 z"
d="m 1484.037,521.285 0,17.253 c 0,0 0.019,0.845 0.3,1.121 0.281,0.276 3.516,3.626 3.516,3.626 a 1.566,1.566 0 0 0 1.157,0.4 c 0.758,-0.025 11.627,0 11.627,0 l 4.429,-4.7 0,-7.963 -10.662,-0.567 z"
transform="translate(676.31,5680.52)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
@ -428,7 +428,7 @@
id="Path_44"
data-name="Path 44"
class="cls-1"
d="m 5.461,0 h 5.612 a 5.461,5.461 0 0 1 5.461,5.461 v 22.9 a 5.461,5.461 0 0 1 -5.461,5.461 H 5.461 A 5.461,5.461 0 0 1 0,28.365 V 5.461 A 5.461,5.461 0 0 1 5.461,0 Z"
d="m 5.461,0 5.612,0 a 5.461,5.461 0 0 1 5.461,5.461 l 0,22.9 a 5.461,5.461 0 0 1 -5.461,5.461 l -5.612,0 A 5.461,5.461 0 0 1 0,28.365 L 0,5.461 A 5.461,5.461 0 0 1 5.461,0 Z"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
<circle
@ -453,7 +453,7 @@
id="Path_5"
data-name="Path 5"
class="cls-3"
d="m 5610.158,939.234 a 4.151,4.151 0 0 1 -2.342,0.705 5.131,5.131 0 0 1 -2.988,-0.705 c -1.257,-0.931 -1.229,0.1 -1.229,0.1 v 1.8 c 0,0.45 0.553,0.846 1.229,0.459 0.676,-0.387 1,-0.581 1,-0.581 0,0 0.361,-0.184 0.361,0.335 v 2.62 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.293,0.248 -0.293,1.385 0,1.137 0.293,1.322 0.293,1.322 h 1.38 c 0,0 0.73,-0.024 0.73,0.649 v 1.3 c 0,0 0.227,0.359 1.169,0.306 a 3.6,3.6 0 0 0 1.4,-0.306 v -1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.252,-0.191 0.287,-1.322 0.035,-1.131 -0.287,-1.385 -0.287,-1.385 h -1.257 c 0,0 -0.805,-0.052 -0.817,-0.768 -0.012,-0.716 0,-2.62 0,-2.62 0,0 -0.047,-0.515 0.332,-0.335 0.379,0.18 1.215,0.581 1.215,0.581 0,0 0.83,0.407 0.814,-0.459 -0.016,-0.866 0,-1.8 0,-1.8 0,0 -0.072,-0.534 -0.804,-0.1 z"
d="m 5610.158,939.234 a 4.151,4.151 0 0 1 -2.342,0.705 5.131,5.131 0 0 1 -2.988,-0.705 c -1.257,-0.931 -1.229,0.1 -1.229,0.1 l 0,1.8 c 0,0.45 0.553,0.846 1.229,0.459 0.676,-0.387 1,-0.581 1,-0.581 0,0 0.361,-0.184 0.361,0.335 l 0,2.62 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.293,0.248 -0.293,1.385 0,1.137 0.293,1.322 0.293,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 l 0,1.3 c 0,0 0.227,0.359 1.169,0.306 a 3.6,3.6 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.252,-0.191 0.287,-1.322 0.035,-1.131 -0.287,-1.385 -0.287,-1.385 l -1.257,0 c 0,0 -0.805,-0.052 -0.817,-0.768 -0.012,-0.716 0,-2.62 0,-2.62 0,0 -0.047,-0.515 0.332,-0.335 0.379,0.18 1.215,0.581 1.215,0.581 0,0 0.83,0.407 0.814,-0.459 -0.016,-0.866 0,-1.8 0,-1.8 0,0 -0.072,-0.534 -0.804,-0.1 z"
transform="translate(-5602.386,-929.312)"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
@ -461,7 +461,7 @@
id="Path_6"
data-name="Path 6"
class="cls-3"
d="m 5601.9,1015.336 a 0.83,0.83 0 0 1 1.2,-0.594 6.516,6.516 0 0 0 2.85,0.772 5.05,5.05 0 0 0 2.768,-0.772 c 0.829,-0.4 1.067,0.594 1.067,0.594 v 1.76 a 0.71,0.71 0 0 1 -1.067,0.561 5.791,5.791 0 0 0 -2.768,-0.837 7.06,7.06 0 0 0 -2.85,0.837 c 0,0 -1.178,0.239 -1.2,-0.561 -0.022,-0.8 0,-1.76 0,-1.76 z"
d="m 5601.9,1015.336 a 0.83,0.83 0 0 1 1.2,-0.594 6.516,6.516 0 0 0 2.85,0.772 5.05,5.05 0 0 0 2.768,-0.772 c 0.829,-0.4 1.067,0.594 1.067,0.594 l 0,1.76 a 0.71,0.71 0 0 1 -1.067,0.561 5.791,5.791 0 0 0 -2.768,-0.837 7.06,7.06 0 0 0 -2.85,0.837 c 0,0 -1.178,0.239 -1.2,-0.561 -0.022,-0.8 0,-1.76 0,-1.76 z"
transform="translate(-5600.979,-993.616)"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
@ -475,7 +475,7 @@
id="Path_1-4"
data-name="Path 1"
class="cls-1"
d="m 5.784,0 h 42.66 a 5.784,5.784 0 0 1 5.784,5.784 v 29.64 C 43.86,49.487 36.1,59.29 36.1,59.29 h -0.595 c 0,0 -19.462,-0.147 -23.864,-0.147 A 2.28,2.28 0 0 1 9.263,58.158 L 0,48.582 V 5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
d="m 5.784,0 42.66,0 a 5.784,5.784 0 0 1 5.784,5.784 l 0,29.64 C 43.86,49.487 36.1,59.29 36.1,59.29 l -0.595,0 c 0,0 -19.462,-0.147 -23.864,-0.147 A 2.28,2.28 0 0 1 9.263,58.158 L 0,48.582 0,5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
transform="translate(2159.6,6153.16)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
@ -492,7 +492,7 @@
id="hvid-2"
data-name="hvid"
class="cls-5"
d="m 1498.578,449.051 7.155,7.37 23.789,31.08 v 14.857 l 13.063,-16.131 v -31.221 l -0.993,-7.691 z"
d="m 1498.578,449.051 7.155,7.37 23.789,31.08 0,14.857 13.063,-16.131 0,-31.221 -0.993,-7.691 z"
transform="translate(-1487.315,-449.455)"
inkscape:connector-curvature="0"
style="fill:#f2f2f2" />
@ -507,7 +507,7 @@
id="Path_4-2"
data-name="Path 4"
class="cls-1"
d="M 5.784,0 H 36.875 A 5.784,5.784 0 0 1 42.66,5.784 V 28.032 C 34.013,39.3 27.1,48.444 27.1,48.444 H 5.784 A 5.784,5.784 0 0 1 0,42.66 V 5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
d="m 5.784,0 31.091,0 a 5.784,5.784 0 0 1 5.785,5.784 l 0,22.248 C 34.013,39.3 27.1,48.444 27.1,48.444 l -21.316,0 A 5.784,5.784 0 0 1 0,42.66 L 0,5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
transform="translate(2165.38,6158.22)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
@ -525,7 +525,7 @@
id="Union_1"
data-name="Union 1"
class="cls-7"
d="M 14.461,28.56 V 1.085 a 1.085,1.085 0 1 1 2.169,0 V 28.56 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 V 1.085 a 1.085,1.085 0 1 1 2.169,0 V 28.56 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 V 1.085 a 1.085,1.085 0 1 1 2.169,0 V 28.56 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 V 1.085 a 1.085,1.085 0 1 1 2.169,0 V 28.56 a 1.085,1.085 0 1 1 -2.169,0 z M 0,28.56 V 1.085 a 1.085,1.085 0 1 1 2.169,0 V 28.56 A 1.085,1.085 0 1 1 0,28.56 Z"
d="m 14.461,28.56 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z M 0,28.56 0,1.085 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 A 1.085,1.085 0 1 1 0,28.56 Z"
transform="translate(15.907,-5.365)"
inkscape:connector-curvature="0"
style="fill:#6a6a6a" />
@ -573,7 +573,7 @@
class="cls-10"
cx="3.7920001"
cy="3.7920001"
transform="translate(11.528)"
transform="translate(11.528,0)"
r="3.7920001"
style="fill:#3c3c3c" />
<circle
@ -607,15 +607,15 @@
id="Path_4-3"
data-name="Path 4"
class="cls-11"
d="m 2.4,1.566 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.29,0.248 -0.29,1.385 0,1.137 0.294,1.322 0.294,1.322 h 1.38 c 0,0 0.73,-0.024 0.73,0.649 0,0.673 0,1.3 0,1.3 0,0 0.227,0.359 1.17,0.306 a 3.594,3.594 0 0 0 1.4,-0.306 v -1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.253,-0.191 0.287,-1.322 C 7.212,2.588 6.891,2.333 6.891,2.333 H 5.638 c 0,0 -0.806,-0.052 -0.818,-0.768 A 12.478,12.478 0 0 1 4.884,0.305 2.9,2.9 0 0 0 2.529,0.213 C 2.45,0.819 2.4,1.566 2.4,1.566 Z"
transform="rotate(-90,15.2715,3.5915)"
d="m 2.4,1.566 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.29,0.248 -0.29,1.385 0,1.137 0.294,1.322 0.294,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 0,0.673 0,1.3 0,1.3 0,0 0.227,0.359 1.17,0.306 a 3.594,3.594 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.253,-0.191 0.287,-1.322 C 7.212,2.588 6.891,2.333 6.891,2.333 l -1.253,0 c 0,0 -0.806,-0.052 -0.818,-0.768 A 12.478,12.478 0 0 1 4.884,0.305 2.9,2.9 0 0 0 2.529,0.213 C 2.45,0.819 2.4,1.566 2.4,1.566 Z"
transform="matrix(0,-1,1,0,11.68,18.863)"
inkscape:connector-curvature="0"
style="fill:#242424" />
<path
id="Path_5-2"
data-name="Path 5"
class="cls-10"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 V 2.734 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 V 0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
transform="translate(13.241,8.084)"
inkscape:connector-curvature="0"
style="fill:#3c3c3c" />
@ -623,28 +623,361 @@
id="Path_7"
data-name="Path 7"
class="cls-10"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 V 2.734 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 V 0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
transform="rotate(-90,12.71,4.628)"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
transform="matrix(0,-1,1,0,8.082,17.338)"
inkscape:connector-curvature="0"
style="fill:#3c3c3c" />
<path
id="Path_6-2"
data-name="Path 6"
class="cls-10"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 V 2.734 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 V 0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
transform="rotate(180,8.668,11.2485)"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
transform="matrix(-1,0,0,-1,17.336,22.497)"
inkscape:connector-curvature="0"
style="fill:#3c3c3c" />
<path
id="Path_8"
data-name="Path 8"
class="cls-10"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 V 2.734 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 V 0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
transform="rotate(90,4.6265,17.8685)"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
transform="matrix(0,1,-1,0,22.495,13.242)"
inkscape:connector-curvature="0"
style="fill:#3c3c3c" />
</g>
</g>
</g>
</g>
<g
transform="matrix(-1,0,0,-1,3078.599,6880.5724)"
data-name="Large Motor"
id="g4220">
<g
clip-path="url(#clip-path)"
transform="translate(789.306,586.141)"
class="cls-2"
data-name="Mask Group 6"
id="g4222">
<g
transform="translate(-1.623,0)"
data-name="Large motor"
id="g4224">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(42.123,84.012)"
d="m 5.461,0 5.612,0 a 5.461,5.461 0 0 1 5.461,5.461 l 0,22.9 a 5.461,5.461 0 0 1 -5.461,5.461 l -5.612,0 A 5.461,5.461 0 0 1 0,28.365 L 0,5.461 A 5.461,5.461 0 0 1 5.461,0 Z"
class="cls-1"
data-name="Path 45"
id="path4226" />
<circle
style="fill:#ffffff"
r="3.7920001"
transform="translate(49.555,85.528)"
cy="3.7920001"
cx="3.7920001"
class="cls-3"
data-name="Ellipse 2"
id="circle4228" />
<circle
style="fill:#ffffff"
r="3.7920001"
transform="translate(49.555,108.736)"
cy="3.7920001"
cx="3.7920001"
class="cls-3"
data-name="Ellipse 1"
id="circle4230" />
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(41.1,0)"
d="m 0.607,0 26.262,0 a 0.607,0.607 0 0 1 0.607,0.607 l 0,5.293 a 0.607,0.607 0 0 1 -0.607,0.607 l -26.262,0 A 0.607,0.607 0 0 1 0,5.9 L 0,0.607 A 0.607,0.607 0 0 1 0.607,0 Z"
class="cls-1"
data-name="Path 36"
id="path4232" />
<g
style="filter:url(#Path_34)"
id="g4234"
transform="translate(-2133.68,-6140.14)"
class="cls-17">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(2171.89,6141.59)"
d="M 0.607,0 31.93,0 a 0.607,0.607 0 0 1 0.607,0.607 l 0,14.693 a 0.607,0.607 0 0 1 -0.607,0.607 l -31.323,0 A 0.607,0.607 0 0 1 0,15.3 L 0,0.607 A 0.607,0.607 0 0 1 0.607,0 Z"
class="cls-1"
data-name="Path 34"
id="path4236" />
</g>
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
transform="translate(-5553.893,-845.301)"
d="m 5610.158,939.234 a 4.151,4.151 0 0 1 -2.342,0.705 5.131,5.131 0 0 1 -2.988,-0.705 c -1.257,-0.931 -1.229,0.1 -1.229,0.1 l 0,1.8 c 0,0.45 0.553,0.846 1.229,0.459 0.676,-0.387 1,-0.581 1,-0.581 0,0 0.361,-0.184 0.361,0.335 l 0,2.62 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.293,0.248 -0.293,1.385 0,1.137 0.293,1.322 0.293,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 l 0,1.3 c 0,0 0.227,0.359 1.169,0.306 a 3.6,3.6 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.252,-0.191 0.287,-1.322 0.035,-1.131 -0.287,-1.385 -0.287,-1.385 l -1.257,0 c 0,0 -0.805,-0.052 -0.817,-0.768 -0.012,-0.716 0,-2.62 0,-2.62 0,0 -0.047,-0.515 0.332,-0.335 0.379,0.18 1.215,0.581 1.215,0.581 0,0 0.83,0.407 0.814,-0.459 -0.016,-0.866 0,-1.8 0,-1.8 0,0 -0.072,-0.534 -0.804,-0.1 z"
class="cls-3"
data-name="Path 2"
id="path4238" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
transform="translate(-5552.485,-909.604)"
d="m 5601.9,1015.336 a 0.83,0.83 0 0 1 1.2,-0.594 6.516,6.516 0 0 0 2.85,0.772 5.05,5.05 0 0 0 2.768,-0.772 c 0.829,-0.4 1.067,0.594 1.067,0.594 l 0,1.76 a 0.71,0.71 0 0 1 -1.067,0.561 5.791,5.791 0 0 0 -2.768,-0.837 7.06,7.06 0 0 0 -2.85,0.837 c 0,0 -1.178,0.239 -1.2,-0.561 -0.022,-0.8 0,-1.76 0,-1.76 z"
class="cls-3"
data-name="Path 3"
id="path4240" />
<g
style="filter:url(#Path_1)"
id="g4242"
transform="translate(-2133.68,-6140.14)"
class="cls-16">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(2149.43,6214.55)"
d="M 0.016,8.513 13.42,-4.416 31.991,-3.746 32.162,55.2 c 0,0.838 -0.155,0.838 -0.462,1.137 l -10.416,10.096 -0.212,0.19 c -0.584,0.4 -1.987,-0.115 -1.987,-0.952 L -0.364,44.961 -0.375,9.187 c 0,-0.419 0.142,-0.402 0.391,-0.674 z"
class="cls-1"
data-name="Path 1"
id="path4244" />
</g>
<g
style="filter:url(#Path_2)"
id="g4246"
transform="translate(-2133.68,-6140.14)"
class="cls-15">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(676.31,5680.52)"
d="m 1484.037,521.285 0,17.253 c 0,0 0.019,0.845 0.3,1.121 0.281,0.276 3.516,3.626 3.516,3.626 a 1.566,1.566 0 0 0 1.157,0.4 c 0.758,-0.025 11.627,0 11.627,0 l 4.429,-4.7 0,-7.963 -10.662,-0.567 z"
class="cls-1"
data-name="Path 2"
id="path4248" />
</g>
<g
transform="translate(15.123,26.978)"
data-name="Group 4"
id="g4250">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
d="m 5.461,0 5.612,0 a 5.461,5.461 0 0 1 5.461,5.461 l 0,22.9 a 5.461,5.461 0 0 1 -5.461,5.461 l -5.612,0 A 5.461,5.461 0 0 1 0,28.365 L 0,5.461 A 5.461,5.461 0 0 1 5.461,0 Z"
class="cls-1"
data-name="Path 44"
id="path4252" />
<circle
style="fill:#ffffff"
r="3.7920001"
transform="translate(1.062,1.517)"
cy="3.7920001"
cx="3.7920001"
class="cls-3"
data-name="Ellipse 3"
id="circle4254" />
<circle
style="fill:#ffffff"
r="3.7920001"
transform="translate(1.062,24.725)"
cy="3.7920001"
cx="3.7920001"
class="cls-3"
data-name="Ellipse 4"
id="circle4256" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
transform="translate(-5602.386,-929.312)"
d="m 5610.158,939.234 a 4.151,4.151 0 0 1 -2.342,0.705 5.131,5.131 0 0 1 -2.988,-0.705 c -1.257,-0.931 -1.229,0.1 -1.229,0.1 l 0,1.8 c 0,0.45 0.553,0.846 1.229,0.459 0.676,-0.387 1,-0.581 1,-0.581 0,0 0.361,-0.184 0.361,0.335 l 0,2.62 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.293,0.248 -0.293,1.385 0,1.137 0.293,1.322 0.293,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 l 0,1.3 c 0,0 0.227,0.359 1.169,0.306 a 3.6,3.6 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.252,-0.191 0.287,-1.322 0.035,-1.131 -0.287,-1.385 -0.287,-1.385 l -1.257,0 c 0,0 -0.805,-0.052 -0.817,-0.768 -0.012,-0.716 0,-2.62 0,-2.62 0,0 -0.047,-0.515 0.332,-0.335 0.379,0.18 1.215,0.581 1.215,0.581 0,0 0.83,0.407 0.814,-0.459 -0.016,-0.866 0,-1.8 0,-1.8 0,0 -0.072,-0.534 -0.804,-0.1 z"
class="cls-3"
data-name="Path 5"
id="path4258" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
transform="translate(-5600.979,-993.616)"
d="m 5601.9,1015.336 a 0.83,0.83 0 0 1 1.2,-0.594 6.516,6.516 0 0 0 2.85,0.772 5.05,5.05 0 0 0 2.768,-0.772 c 0.829,-0.4 1.067,0.594 1.067,0.594 l 0,1.76 a 0.71,0.71 0 0 1 -1.067,0.561 5.791,5.791 0 0 0 -2.768,-0.837 7.06,7.06 0 0 0 -2.85,0.837 c 0,0 -1.178,0.239 -1.2,-0.561 -0.022,-0.8 0,-1.76 0,-1.76 z"
class="cls-3"
data-name="Path 6"
id="path4260" />
</g>
<g
style="filter:url(#Path_1-2)"
id="g4262"
transform="translate(-2133.68,-6140.14)"
class="cls-14">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(2159.6,6153.16)"
d="m 5.784,0 42.66,0 a 5.784,5.784 0 0 1 5.784,5.784 l 0,29.64 C 43.86,49.487 36.1,59.29 36.1,59.29 l -0.595,0 c 0,0 -19.462,-0.147 -23.864,-0.147 A 2.28,2.28 0 0 1 9.263,58.158 L 0,48.582 0,5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
class="cls-1"
data-name="Path 1"
id="path4264" />
</g>
<g
transform="translate(25.916,13.015)"
id="g4266">
<g
clip-path="url(#clip-path-2)"
class="cls-4"
data-name="Mask Group 1"
id="g4268">
<path
style="fill:#f2f2f2"
inkscape:connector-curvature="0"
transform="translate(-1487.315,-449.455)"
d="m 1498.578,449.051 7.155,7.37 23.789,31.08 0,14.857 13.063,-16.131 0,-31.221 -0.993,-7.691 z"
class="cls-5"
data-name="hvid"
id="path4270" />
</g>
</g>
<g
style="filter:url(#Path_4)"
id="g4272"
transform="translate(-2133.68,-6140.14)"
class="cls-13">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(2165.38,6158.22)"
d="m 5.784,0 31.091,0 a 5.784,5.784 0 0 1 5.785,5.784 l 0,22.248 C 34.013,39.3 27.1,48.444 27.1,48.444 l -21.316,0 A 5.784,5.784 0 0 1 0,42.66 L 0,5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
class="cls-1"
data-name="Path 4"
id="path4274" />
</g>
<g
transform="translate(31.7,18.38)"
data-name="Group 3"
id="g4276">
<g
clip-path="url(#clip-path-3)"
class="cls-6"
data-name="Mask Group 2"
id="g4278">
<path
style="fill:#6a6a6a"
inkscape:connector-curvature="0"
transform="translate(15.907,-5.365)"
d="m 14.461,28.56 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z M 0,28.56 0,1.085 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 A 1.085,1.085 0 1 1 0,28.56 Z"
class="cls-7"
data-name="Union 1"
id="path4280" />
</g>
</g>
<circle
style="fill:#9a9a9a"
r="2.2449999"
transform="translate(29.076,16.175)"
cy="2.2449999"
cx="2.2449999"
class="cls-8"
data-name="Ellipse 1"
id="circle4282" />
<circle
style="fill:#9a9a9a"
r="2.2449999"
transform="translate(57.744,66.686)"
cy="2.2449999"
cx="2.2449999"
class="cls-8"
data-name="Ellipse 2"
id="circle4284" />
<g
id="g4286"
transform="translate(-2133.68,-6140.14)"
class="cls-12">
<circle
style="fill:#b72b1c"
r="17.063999"
transform="translate(2135.31,6259.65)"
cy="17.063999"
cx="17.063999"
class="cls-9"
data-name="rød"
id="circle4288" />
</g>
<g
transform="matrix(0.966,0.259,-0.259,0.966,7.93,117.883)"
data-name="Group 2"
id="g4290">
<circle
style="fill:#3c3c3c"
r="3.7920001"
transform="translate(11.528,0)"
cy="3.7920001"
cx="3.7920001"
class="cls-10"
data-name="Ellipse 4"
id="circle4292" />
<circle
style="fill:#3c3c3c"
r="3.7920001"
transform="translate(23.056,11.528)"
cy="3.7920001"
cx="3.7920001"
class="cls-10"
data-name="Ellipse 7"
id="circle4294" />
<circle
style="fill:#3c3c3c"
r="3.7920001"
transform="translate(11.528,23.056)"
cy="3.7920001"
cx="3.7920001"
class="cls-10"
data-name="Ellipse 5"
id="circle4296" />
<circle
style="fill:#3c3c3c"
r="3.7920001"
transform="translate(0,11.528)"
cy="3.7920001"
cx="3.7920001"
class="cls-10"
data-name="Ellipse 6"
id="circle4298" />
<path
style="fill:#242424"
inkscape:connector-curvature="0"
transform="matrix(0,-1,1,0,11.68,18.863)"
d="m 2.4,1.566 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.29,0.248 -0.29,1.385 0,1.137 0.294,1.322 0.294,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 0,0.673 0,1.3 0,1.3 0,0 0.227,0.359 1.17,0.306 a 3.594,3.594 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.253,-0.191 0.287,-1.322 C 7.212,2.588 6.891,2.333 6.891,2.333 l -1.253,0 c 0,0 -0.806,-0.052 -0.818,-0.768 A 12.478,12.478 0 0 1 4.884,0.305 2.9,2.9 0 0 0 2.529,0.213 C 2.45,0.819 2.4,1.566 2.4,1.566 Z"
class="cls-11"
data-name="Path 4"
id="path4300" />
<path
style="fill:#3c3c3c"
inkscape:connector-curvature="0"
transform="translate(13.241,8.084)"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
class="cls-10"
data-name="Path 5"
id="path4302" />
<path
style="fill:#3c3c3c"
inkscape:connector-curvature="0"
transform="matrix(0,-1,1,0,8.082,17.338)"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
class="cls-10"
data-name="Path 7"
id="path4304" />
<path
style="fill:#3c3c3c"
inkscape:connector-curvature="0"
transform="matrix(-1,0,0,-1,17.336,22.497)"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
class="cls-10"
data-name="Path 6"
id="path4306" />
<path
style="fill:#3c3c3c"
inkscape:connector-curvature="0"
transform="matrix(0,1,-1,0,22.495,13.242)"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
class="cls-10"
data-name="Path 8"
id="path4308" />
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -0,0 +1,983 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="2135.306 6140.141 153.634 153.634"
version="1.1"
id="svg7024"
sodipodi:docname="Large Motors.svg"
width="153.634"
height="153.634"
inkscape:version="0.91 r13725"
inkscape:export-filename="/Users/sam/pxt-ev3/libs/core/jres/icons/dualMotorLarge-icon.png"
inkscape:export-xdpi="74.983398"
inkscape:export-ydpi="74.983398">
<metadata
id="metadata7028">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1395"
id="namedview7026"
showgrid="false"
inkscape:zoom="3.0722366"
inkscape:cx="-73.361033"
inkscape:cy="76.817002"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
inkscape:current-layer="svg7024" />
<defs
id="defs6971">
<style
id="style6897">
.cls-1 {
fill: #a8a9a8;
}
.cls-2 {
clip-path: url(#clip-path);
}
.cls-3 {
fill: #fff;
}
.cls-4 {
clip-path: url(#clip-path-2);
}
.cls-5 {
fill: #f2f2f2;
}
.cls-6 {
clip-path: url(#clip-path-3);
}
.cls-7 {
fill: #6a6a6a;
}
.cls-8 {
fill: #9a9a9a;
}
.cls-9 {
fill: #b72b1c;
}
.cls-10 {
fill: #3c3c3c;
}
.cls-11 {
fill: #242424;
}
.cls-12 {
filter: url(#rød);
}
.cls-13 {
filter: url(#Path_4);
}
.cls-14 {
filter: url(#Path_1-2);
}
.cls-15 {
filter: url(#Path_2);
}
.cls-16 {
filter: url(#Path_1);
}
.cls-17 {
filter: url(#Path_34);
}
</style>
<clipPath
id="clip-path">
<path
id="Union_6"
data-name="Union 6"
class="cls-1"
d="M 0,136.571 A 17.07,17.07 0 0 1 14.122,119.759 L 13.757,119.371 13.747,83.6 c 0,-0.419 0.142,-0.4 0.392,-0.673 L 25.043,72.4 V 62.372 l -0.75,-0.775 V 60.8 H 17.5 a 4,4 0 0 1 -4,-4 V 30.978 a 4,4 0 0 1 4,-4 h 6.793 V 18.8 a 5.784,5.784 0 0 1 5.784,-5.784 h 6.508 V 5.446 A 4,4 0 0 1 39.477,1.6 v -1 A 0.607,0.607 0 0 1 40.084,0 h 26.262 a 0.607,0.607 0 0 1 0.607,0.607 v 1.282 a 4,4 0 0 1 2.169,3.557 v 7.569 h 3.615 A 5.784,5.784 0 0 1 78.521,18.8 V 48.44 C 68.153,62.5 60.394,72.305 60.394,72.305 H 59.8 c 0,0 -7.092,-0.053 -13.682,-0.1 l 0.034,11.8 h 6.882 a 4,4 0 0 1 4,4 v 25.826 a 4,4 0 0 1 -4,4 h -6.785 l 0.034,11.775 c 0,0.838 -0.155,0.838 -0.462,1.137 l -10.415,10.099 -0.212,0.191 A 1.518,1.518 0 0 1 33.6,140.8 17.067,17.067 0 0 1 0,136.571 Z"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
</clipPath>
<filter
id="Path_34"
x="2168.8911"
y="6138.5869"
width="38.536999"
height="21.907"
filterUnits="userSpaceOnUse">
<feOffset
input="SourceAlpha"
id="feOffset6901" />
<feGaussianBlur
stdDeviation="1"
result="blur"
id="feGaussianBlur6903" />
<feFlood
flood-opacity="0.502"
id="feFlood6905" />
<feComposite
operator="in"
in2="blur"
id="feComposite6907"
result="result1" />
<feComposite
in="SourceGraphic"
in2="result1"
id="feComposite6909" />
</filter>
<filter
id="Path_1"
x="2146.053"
y="6207.1338"
width="38.536999"
height="77.177002"
filterUnits="userSpaceOnUse">
<feOffset
input="SourceAlpha"
id="feOffset6912" />
<feGaussianBlur
stdDeviation="1"
result="blur-2"
id="feGaussianBlur6914" />
<feFlood
flood-opacity="0.502"
id="feFlood6916" />
<feComposite
operator="in"
in2="blur-2"
id="feComposite6918"
result="result1" />
<feComposite
in="SourceGraphic"
in2="result1"
id="feComposite6920" />
</filter>
<filter
id="Path_2"
x="2157.3491"
y="6198.8062"
width="27.028999"
height="28.403"
filterUnits="userSpaceOnUse">
<feOffset
input="SourceAlpha"
id="feOffset6923" />
<feGaussianBlur
stdDeviation="1"
result="blur-3"
id="feGaussianBlur6925" />
<feFlood
flood-opacity="0.502"
id="feFlood6927" />
<feComposite
operator="in"
in2="blur-3"
id="feComposite6929"
result="result1" />
<feComposite
in="SourceGraphic"
in2="result1"
id="feComposite6931" />
</filter>
<filter
id="Path_1-2"
x="2156.6001"
y="6150.1548"
width="60.229"
height="65.290001"
filterUnits="userSpaceOnUse">
<feOffset
input="SourceAlpha"
id="feOffset6934" />
<feGaussianBlur
stdDeviation="1"
result="blur-4"
id="feGaussianBlur6936" />
<feFlood
flood-opacity="0.502"
id="feFlood6938" />
<feComposite
operator="in"
in2="blur-4"
id="feComposite6940"
result="result1" />
<feComposite
in="SourceGraphic"
in2="result1"
id="feComposite6942" />
</filter>
<clipPath
id="clip-path-2">
<path
id="Path_9"
data-name="Path 9"
class="cls-1"
d="m 5.784,0 h 42.66 a 5.784,5.784 0 0 1 5.784,5.784 v 29.64 C 43.86,49.487 36.1,59.29 36.1,59.29 h -0.595 c 0,0 -19.462,-0.147 -23.864,-0.147 A 2.28,2.28 0 0 1 9.263,58.158 L 0,48.582 V 5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
</clipPath>
<filter
id="Path_4"
x="2162.384"
y="6155.2168"
width="48.66"
height="54.444"
filterUnits="userSpaceOnUse">
<feOffset
input="SourceAlpha"
id="feOffset6947" />
<feGaussianBlur
stdDeviation="1"
result="blur-5"
id="feGaussianBlur6949" />
<feFlood
flood-opacity="0.502"
id="feFlood6951" />
<feComposite
operator="in"
in2="blur-5"
id="feComposite6953"
result="result1" />
<feComposite
in="SourceGraphic"
in2="result1"
id="feComposite6955" />
</filter>
<clipPath
id="clip-path-3">
<path
id="Path_10"
data-name="Path 10"
class="cls-1"
d="M 5.784,0 H 36.875 A 5.784,5.784 0 0 1 42.66,5.784 V 28.032 C 34.013,39.3 27.1,48.444 27.1,48.444 H 5.784 A 5.784,5.784 0 0 1 0,42.66 V 5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
</clipPath>
<filter
id="rød"
x="2132.3059"
y="6256.646"
width="40.129002"
height="40.129002"
filterUnits="userSpaceOnUse">
<feOffset
input="SourceAlpha"
id="feOffset6960" />
<feGaussianBlur
stdDeviation="1"
result="blur-6"
id="feGaussianBlur6962" />
<feFlood
flood-opacity="0.502"
id="feFlood6964" />
<feComposite
operator="in"
in2="blur-6"
id="feComposite6966"
result="result1" />
<feComposite
in="SourceGraphic"
in2="result1"
id="feComposite6968" />
</filter>
</defs>
<g
id="Large_Motor"
data-name="Large Motor"
transform="matrix(-1,0,0,-1,3003.735,6879.9214)">
<g
id="Mask_Group_6"
data-name="Mask Group 6"
class="cls-2"
transform="translate(789.306,586.141)"
clip-path="url(#clip-path)">
<g
id="Large_motor-2"
data-name="Large motor"
transform="translate(-1.623,0)">
<path
id="Path_45"
data-name="Path 45"
class="cls-1"
d="m 5.461,0 5.612,0 a 5.461,5.461 0 0 1 5.461,5.461 l 0,22.9 a 5.461,5.461 0 0 1 -5.461,5.461 l -5.612,0 A 5.461,5.461 0 0 1 0,28.365 L 0,5.461 A 5.461,5.461 0 0 1 5.461,0 Z"
transform="translate(42.123,84.012)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
<circle
id="Ellipse_2"
data-name="Ellipse 2"
class="cls-3"
cx="3.7920001"
cy="3.7920001"
transform="translate(49.555,85.528)"
r="3.7920001"
style="fill:#ffffff" />
<circle
id="Ellipse_1"
data-name="Ellipse 1"
class="cls-3"
cx="3.7920001"
cy="3.7920001"
transform="translate(49.555,108.736)"
r="3.7920001"
style="fill:#ffffff" />
<path
id="Path_36"
data-name="Path 36"
class="cls-1"
d="m 0.607,0 26.262,0 a 0.607,0.607 0 0 1 0.607,0.607 l 0,5.293 a 0.607,0.607 0 0 1 -0.607,0.607 l -26.262,0 A 0.607,0.607 0 0 1 0,5.9 L 0,0.607 A 0.607,0.607 0 0 1 0.607,0 Z"
transform="translate(41.1,0)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
<g
class="cls-17"
transform="translate(-2133.68,-6140.14)"
id="g6978"
style="filter:url(#Path_34)">
<path
id="Path_34-2"
data-name="Path 34"
class="cls-1"
d="M 0.607,0 31.93,0 a 0.607,0.607 0 0 1 0.607,0.607 l 0,14.693 a 0.607,0.607 0 0 1 -0.607,0.607 l -31.323,0 A 0.607,0.607 0 0 1 0,15.3 L 0,0.607 A 0.607,0.607 0 0 1 0.607,0 Z"
transform="translate(2171.89,6141.59)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
</g>
<path
id="Path_2-2"
data-name="Path 2"
class="cls-3"
d="m 5610.158,939.234 a 4.151,4.151 0 0 1 -2.342,0.705 5.131,5.131 0 0 1 -2.988,-0.705 c -1.257,-0.931 -1.229,0.1 -1.229,0.1 l 0,1.8 c 0,0.45 0.553,0.846 1.229,0.459 0.676,-0.387 1,-0.581 1,-0.581 0,0 0.361,-0.184 0.361,0.335 l 0,2.62 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.293,0.248 -0.293,1.385 0,1.137 0.293,1.322 0.293,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 l 0,1.3 c 0,0 0.227,0.359 1.169,0.306 a 3.6,3.6 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.252,-0.191 0.287,-1.322 0.035,-1.131 -0.287,-1.385 -0.287,-1.385 l -1.257,0 c 0,0 -0.805,-0.052 -0.817,-0.768 -0.012,-0.716 0,-2.62 0,-2.62 0,0 -0.047,-0.515 0.332,-0.335 0.379,0.18 1.215,0.581 1.215,0.581 0,0 0.83,0.407 0.814,-0.459 -0.016,-0.866 0,-1.8 0,-1.8 0,0 -0.072,-0.534 -0.804,-0.1 z"
transform="translate(-5553.893,-845.301)"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
id="Path_3"
data-name="Path 3"
class="cls-3"
d="m 5601.9,1015.336 a 0.83,0.83 0 0 1 1.2,-0.594 6.516,6.516 0 0 0 2.85,0.772 5.05,5.05 0 0 0 2.768,-0.772 c 0.829,-0.4 1.067,0.594 1.067,0.594 l 0,1.76 a 0.71,0.71 0 0 1 -1.067,0.561 5.791,5.791 0 0 0 -2.768,-0.837 7.06,7.06 0 0 0 -2.85,0.837 c 0,0 -1.178,0.239 -1.2,-0.561 -0.022,-0.8 0,-1.76 0,-1.76 z"
transform="translate(-5552.485,-909.604)"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<g
class="cls-16"
transform="translate(-2133.68,-6140.14)"
id="g6983"
style="filter:url(#Path_1)">
<path
id="Path_1-3"
data-name="Path 1"
class="cls-1"
d="M 0.016,8.513 13.42,-4.416 31.991,-3.746 32.162,55.2 c 0,0.838 -0.155,0.838 -0.462,1.137 l -10.416,10.096 -0.212,0.19 c -0.584,0.4 -1.987,-0.115 -1.987,-0.952 L -0.364,44.961 -0.375,9.187 c 0,-0.419 0.142,-0.402 0.391,-0.674 z"
transform="translate(2149.43,6214.55)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
</g>
<g
class="cls-15"
transform="translate(-2133.68,-6140.14)"
id="g6986"
style="filter:url(#Path_2)">
<path
id="Path_2-3"
data-name="Path 2"
class="cls-1"
d="m 1484.037,521.285 0,17.253 c 0,0 0.019,0.845 0.3,1.121 0.281,0.276 3.516,3.626 3.516,3.626 a 1.566,1.566 0 0 0 1.157,0.4 c 0.758,-0.025 11.627,0 11.627,0 l 4.429,-4.7 0,-7.963 -10.662,-0.567 z"
transform="translate(676.31,5680.52)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
</g>
<g
id="Group_4"
data-name="Group 4"
transform="translate(15.123,26.978)">
<path
id="Path_44"
data-name="Path 44"
class="cls-1"
d="m 5.461,0 5.612,0 a 5.461,5.461 0 0 1 5.461,5.461 l 0,22.9 a 5.461,5.461 0 0 1 -5.461,5.461 l -5.612,0 A 5.461,5.461 0 0 1 0,28.365 L 0,5.461 A 5.461,5.461 0 0 1 5.461,0 Z"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
<circle
id="Ellipse_3"
data-name="Ellipse 3"
class="cls-3"
cx="3.7920001"
cy="3.7920001"
transform="translate(1.062,1.517)"
r="3.7920001"
style="fill:#ffffff" />
<circle
id="Ellipse_4"
data-name="Ellipse 4"
class="cls-3"
cx="3.7920001"
cy="3.7920001"
transform="translate(1.062,24.725)"
r="3.7920001"
style="fill:#ffffff" />
<path
id="Path_5"
data-name="Path 5"
class="cls-3"
d="m 5610.158,939.234 a 4.151,4.151 0 0 1 -2.342,0.705 5.131,5.131 0 0 1 -2.988,-0.705 c -1.257,-0.931 -1.229,0.1 -1.229,0.1 l 0,1.8 c 0,0.45 0.553,0.846 1.229,0.459 0.676,-0.387 1,-0.581 1,-0.581 0,0 0.361,-0.184 0.361,0.335 l 0,2.62 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.293,0.248 -0.293,1.385 0,1.137 0.293,1.322 0.293,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 l 0,1.3 c 0,0 0.227,0.359 1.169,0.306 a 3.6,3.6 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.252,-0.191 0.287,-1.322 0.035,-1.131 -0.287,-1.385 -0.287,-1.385 l -1.257,0 c 0,0 -0.805,-0.052 -0.817,-0.768 -0.012,-0.716 0,-2.62 0,-2.62 0,0 -0.047,-0.515 0.332,-0.335 0.379,0.18 1.215,0.581 1.215,0.581 0,0 0.83,0.407 0.814,-0.459 -0.016,-0.866 0,-1.8 0,-1.8 0,0 -0.072,-0.534 -0.804,-0.1 z"
transform="translate(-5602.386,-929.312)"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
id="Path_6"
data-name="Path 6"
class="cls-3"
d="m 5601.9,1015.336 a 0.83,0.83 0 0 1 1.2,-0.594 6.516,6.516 0 0 0 2.85,0.772 5.05,5.05 0 0 0 2.768,-0.772 c 0.829,-0.4 1.067,0.594 1.067,0.594 l 0,1.76 a 0.71,0.71 0 0 1 -1.067,0.561 5.791,5.791 0 0 0 -2.768,-0.837 7.06,7.06 0 0 0 -2.85,0.837 c 0,0 -1.178,0.239 -1.2,-0.561 -0.022,-0.8 0,-1.76 0,-1.76 z"
transform="translate(-5600.979,-993.616)"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
</g>
<g
class="cls-14"
transform="translate(-2133.68,-6140.14)"
id="g6995"
style="filter:url(#Path_1-2)">
<path
id="Path_1-4"
data-name="Path 1"
class="cls-1"
d="m 5.784,0 42.66,0 a 5.784,5.784 0 0 1 5.784,5.784 l 0,29.64 C 43.86,49.487 36.1,59.29 36.1,59.29 l -0.595,0 c 0,0 -19.462,-0.147 -23.864,-0.147 A 2.28,2.28 0 0 1 9.263,58.158 L 0,48.582 0,5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
transform="translate(2159.6,6153.16)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
</g>
<g
id="hvid"
transform="translate(25.916,13.015)">
<g
id="Mask_Group_1"
data-name="Mask Group 1"
class="cls-4"
clip-path="url(#clip-path-2)">
<path
id="hvid-2"
data-name="hvid"
class="cls-5"
d="m 1498.578,449.051 7.155,7.37 23.789,31.08 0,14.857 13.063,-16.131 0,-31.221 -0.993,-7.691 z"
transform="translate(-1487.315,-449.455)"
inkscape:connector-curvature="0"
style="fill:#f2f2f2" />
</g>
</g>
<g
class="cls-13"
transform="translate(-2133.68,-6140.14)"
id="g7001"
style="filter:url(#Path_4)">
<path
id="Path_4-2"
data-name="Path 4"
class="cls-1"
d="m 5.784,0 31.091,0 a 5.784,5.784 0 0 1 5.785,5.784 l 0,22.248 C 34.013,39.3 27.1,48.444 27.1,48.444 l -21.316,0 A 5.784,5.784 0 0 1 0,42.66 L 0,5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
transform="translate(2165.38,6158.22)"
inkscape:connector-curvature="0"
style="fill:#a8a9a8" />
</g>
<g
id="Group_3"
data-name="Group 3"
transform="translate(31.7,18.38)">
<g
id="Mask_Group_2"
data-name="Mask Group 2"
class="cls-6"
clip-path="url(#clip-path-3)">
<path
id="Union_1"
data-name="Union 1"
class="cls-7"
d="m 14.461,28.56 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z M 0,28.56 0,1.085 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 A 1.085,1.085 0 1 1 0,28.56 Z"
transform="translate(15.907,-5.365)"
inkscape:connector-curvature="0"
style="fill:#6a6a6a" />
</g>
</g>
<circle
id="Ellipse_1-2"
data-name="Ellipse 1"
class="cls-8"
cx="2.2449999"
cy="2.2449999"
transform="translate(29.076,16.175)"
r="2.2449999"
style="fill:#9a9a9a" />
<circle
id="Ellipse_2-2"
data-name="Ellipse 2"
class="cls-8"
cx="2.2449999"
cy="2.2449999"
transform="translate(57.744,66.686)"
r="2.2449999"
style="fill:#9a9a9a" />
<g
class="cls-12"
transform="translate(-2133.68,-6140.14)"
id="g7009">
<circle
id="rød-2"
data-name="rød"
class="cls-9"
cx="17.063999"
cy="17.063999"
transform="translate(2135.31,6259.65)"
r="17.063999"
style="fill:#b72b1c" />
</g>
<g
id="Group_2"
data-name="Group 2"
transform="matrix(0.966,0.259,-0.259,0.966,7.93,117.883)">
<circle
id="Ellipse_4-2"
data-name="Ellipse 4"
class="cls-10"
cx="3.7920001"
cy="3.7920001"
transform="translate(11.528,0)"
r="3.7920001"
style="fill:#3c3c3c" />
<circle
id="Ellipse_7"
data-name="Ellipse 7"
class="cls-10"
cx="3.7920001"
cy="3.7920001"
transform="translate(23.056,11.528)"
r="3.7920001"
style="fill:#3c3c3c" />
<circle
id="Ellipse_5"
data-name="Ellipse 5"
class="cls-10"
cx="3.7920001"
cy="3.7920001"
transform="translate(11.528,23.056)"
r="3.7920001"
style="fill:#3c3c3c" />
<circle
id="Ellipse_6"
data-name="Ellipse 6"
class="cls-10"
cx="3.7920001"
cy="3.7920001"
transform="translate(0,11.528)"
r="3.7920001"
style="fill:#3c3c3c" />
<path
id="Path_4-3"
data-name="Path 4"
class="cls-11"
d="m 2.4,1.566 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.29,0.248 -0.29,1.385 0,1.137 0.294,1.322 0.294,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 0,0.673 0,1.3 0,1.3 0,0 0.227,0.359 1.17,0.306 a 3.594,3.594 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.253,-0.191 0.287,-1.322 C 7.212,2.588 6.891,2.333 6.891,2.333 l -1.253,0 c 0,0 -0.806,-0.052 -0.818,-0.768 A 12.478,12.478 0 0 1 4.884,0.305 2.9,2.9 0 0 0 2.529,0.213 C 2.45,0.819 2.4,1.566 2.4,1.566 Z"
transform="matrix(0,-1,1,0,11.68,18.863)"
inkscape:connector-curvature="0"
style="fill:#242424" />
<path
id="Path_5-2"
data-name="Path 5"
class="cls-10"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
transform="translate(13.241,8.084)"
inkscape:connector-curvature="0"
style="fill:#3c3c3c" />
<path
id="Path_7"
data-name="Path 7"
class="cls-10"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
transform="matrix(0,-1,1,0,8.082,17.338)"
inkscape:connector-curvature="0"
style="fill:#3c3c3c" />
<path
id="Path_6-2"
data-name="Path 6"
class="cls-10"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
transform="matrix(-1,0,0,-1,17.336,22.497)"
inkscape:connector-curvature="0"
style="fill:#3c3c3c" />
<path
id="Path_8"
data-name="Path 8"
class="cls-10"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
transform="matrix(0,1,-1,0,22.495,13.242)"
inkscape:connector-curvature="0"
style="fill:#3c3c3c" />
</g>
</g>
</g>
</g>
<g
transform="matrix(-1,0,0,-1,3078.599,6880.5724)"
data-name="Large Motor"
id="g4220">
<g
clip-path="url(#clip-path)"
transform="translate(789.306,586.141)"
class="cls-2"
data-name="Mask Group 6"
id="g4222">
<g
transform="translate(-1.623,0)"
data-name="Large motor"
id="g4224">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(42.123,84.012)"
d="m 5.461,0 5.612,0 a 5.461,5.461 0 0 1 5.461,5.461 l 0,22.9 a 5.461,5.461 0 0 1 -5.461,5.461 l -5.612,0 A 5.461,5.461 0 0 1 0,28.365 L 0,5.461 A 5.461,5.461 0 0 1 5.461,0 Z"
class="cls-1"
data-name="Path 45"
id="path4226" />
<circle
style="fill:#ffffff"
r="3.7920001"
transform="translate(49.555,85.528)"
cy="3.7920001"
cx="3.7920001"
class="cls-3"
data-name="Ellipse 2"
id="circle4228" />
<circle
style="fill:#ffffff"
r="3.7920001"
transform="translate(49.555,108.736)"
cy="3.7920001"
cx="3.7920001"
class="cls-3"
data-name="Ellipse 1"
id="circle4230" />
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(41.1,0)"
d="m 0.607,0 26.262,0 a 0.607,0.607 0 0 1 0.607,0.607 l 0,5.293 a 0.607,0.607 0 0 1 -0.607,0.607 l -26.262,0 A 0.607,0.607 0 0 1 0,5.9 L 0,0.607 A 0.607,0.607 0 0 1 0.607,0 Z"
class="cls-1"
data-name="Path 36"
id="path4232" />
<g
style="filter:url(#Path_34)"
id="g4234"
transform="translate(-2133.68,-6140.14)"
class="cls-17">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(2171.89,6141.59)"
d="M 0.607,0 31.93,0 a 0.607,0.607 0 0 1 0.607,0.607 l 0,14.693 a 0.607,0.607 0 0 1 -0.607,0.607 l -31.323,0 A 0.607,0.607 0 0 1 0,15.3 L 0,0.607 A 0.607,0.607 0 0 1 0.607,0 Z"
class="cls-1"
data-name="Path 34"
id="path4236" />
</g>
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
transform="translate(-5553.893,-845.301)"
d="m 5610.158,939.234 a 4.151,4.151 0 0 1 -2.342,0.705 5.131,5.131 0 0 1 -2.988,-0.705 c -1.257,-0.931 -1.229,0.1 -1.229,0.1 l 0,1.8 c 0,0.45 0.553,0.846 1.229,0.459 0.676,-0.387 1,-0.581 1,-0.581 0,0 0.361,-0.184 0.361,0.335 l 0,2.62 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.293,0.248 -0.293,1.385 0,1.137 0.293,1.322 0.293,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 l 0,1.3 c 0,0 0.227,0.359 1.169,0.306 a 3.6,3.6 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.252,-0.191 0.287,-1.322 0.035,-1.131 -0.287,-1.385 -0.287,-1.385 l -1.257,0 c 0,0 -0.805,-0.052 -0.817,-0.768 -0.012,-0.716 0,-2.62 0,-2.62 0,0 -0.047,-0.515 0.332,-0.335 0.379,0.18 1.215,0.581 1.215,0.581 0,0 0.83,0.407 0.814,-0.459 -0.016,-0.866 0,-1.8 0,-1.8 0,0 -0.072,-0.534 -0.804,-0.1 z"
class="cls-3"
data-name="Path 2"
id="path4238" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
transform="translate(-5552.485,-909.604)"
d="m 5601.9,1015.336 a 0.83,0.83 0 0 1 1.2,-0.594 6.516,6.516 0 0 0 2.85,0.772 5.05,5.05 0 0 0 2.768,-0.772 c 0.829,-0.4 1.067,0.594 1.067,0.594 l 0,1.76 a 0.71,0.71 0 0 1 -1.067,0.561 5.791,5.791 0 0 0 -2.768,-0.837 7.06,7.06 0 0 0 -2.85,0.837 c 0,0 -1.178,0.239 -1.2,-0.561 -0.022,-0.8 0,-1.76 0,-1.76 z"
class="cls-3"
data-name="Path 3"
id="path4240" />
<g
style="filter:url(#Path_1)"
id="g4242"
transform="translate(-2133.68,-6140.14)"
class="cls-16">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(2149.43,6214.55)"
d="M 0.016,8.513 13.42,-4.416 31.991,-3.746 32.162,55.2 c 0,0.838 -0.155,0.838 -0.462,1.137 l -10.416,10.096 -0.212,0.19 c -0.584,0.4 -1.987,-0.115 -1.987,-0.952 L -0.364,44.961 -0.375,9.187 c 0,-0.419 0.142,-0.402 0.391,-0.674 z"
class="cls-1"
data-name="Path 1"
id="path4244" />
</g>
<g
style="filter:url(#Path_2)"
id="g4246"
transform="translate(-2133.68,-6140.14)"
class="cls-15">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(676.31,5680.52)"
d="m 1484.037,521.285 0,17.253 c 0,0 0.019,0.845 0.3,1.121 0.281,0.276 3.516,3.626 3.516,3.626 a 1.566,1.566 0 0 0 1.157,0.4 c 0.758,-0.025 11.627,0 11.627,0 l 4.429,-4.7 0,-7.963 -10.662,-0.567 z"
class="cls-1"
data-name="Path 2"
id="path4248" />
</g>
<g
transform="translate(15.123,26.978)"
data-name="Group 4"
id="g4250">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
d="m 5.461,0 5.612,0 a 5.461,5.461 0 0 1 5.461,5.461 l 0,22.9 a 5.461,5.461 0 0 1 -5.461,5.461 l -5.612,0 A 5.461,5.461 0 0 1 0,28.365 L 0,5.461 A 5.461,5.461 0 0 1 5.461,0 Z"
class="cls-1"
data-name="Path 44"
id="path4252" />
<circle
style="fill:#ffffff"
r="3.7920001"
transform="translate(1.062,1.517)"
cy="3.7920001"
cx="3.7920001"
class="cls-3"
data-name="Ellipse 3"
id="circle4254" />
<circle
style="fill:#ffffff"
r="3.7920001"
transform="translate(1.062,24.725)"
cy="3.7920001"
cx="3.7920001"
class="cls-3"
data-name="Ellipse 4"
id="circle4256" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
transform="translate(-5602.386,-929.312)"
d="m 5610.158,939.234 a 4.151,4.151 0 0 1 -2.342,0.705 5.131,5.131 0 0 1 -2.988,-0.705 c -1.257,-0.931 -1.229,0.1 -1.229,0.1 l 0,1.8 c 0,0.45 0.553,0.846 1.229,0.459 0.676,-0.387 1,-0.581 1,-0.581 0,0 0.361,-0.184 0.361,0.335 l 0,2.62 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.293,0.248 -0.293,1.385 0,1.137 0.293,1.322 0.293,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 l 0,1.3 c 0,0 0.227,0.359 1.169,0.306 a 3.6,3.6 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.252,-0.191 0.287,-1.322 0.035,-1.131 -0.287,-1.385 -0.287,-1.385 l -1.257,0 c 0,0 -0.805,-0.052 -0.817,-0.768 -0.012,-0.716 0,-2.62 0,-2.62 0,0 -0.047,-0.515 0.332,-0.335 0.379,0.18 1.215,0.581 1.215,0.581 0,0 0.83,0.407 0.814,-0.459 -0.016,-0.866 0,-1.8 0,-1.8 0,0 -0.072,-0.534 -0.804,-0.1 z"
class="cls-3"
data-name="Path 5"
id="path4258" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
transform="translate(-5600.979,-993.616)"
d="m 5601.9,1015.336 a 0.83,0.83 0 0 1 1.2,-0.594 6.516,6.516 0 0 0 2.85,0.772 5.05,5.05 0 0 0 2.768,-0.772 c 0.829,-0.4 1.067,0.594 1.067,0.594 l 0,1.76 a 0.71,0.71 0 0 1 -1.067,0.561 5.791,5.791 0 0 0 -2.768,-0.837 7.06,7.06 0 0 0 -2.85,0.837 c 0,0 -1.178,0.239 -1.2,-0.561 -0.022,-0.8 0,-1.76 0,-1.76 z"
class="cls-3"
data-name="Path 6"
id="path4260" />
</g>
<g
style="filter:url(#Path_1-2)"
id="g4262"
transform="translate(-2133.68,-6140.14)"
class="cls-14">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(2159.6,6153.16)"
d="m 5.784,0 42.66,0 a 5.784,5.784 0 0 1 5.784,5.784 l 0,29.64 C 43.86,49.487 36.1,59.29 36.1,59.29 l -0.595,0 c 0,0 -19.462,-0.147 -23.864,-0.147 A 2.28,2.28 0 0 1 9.263,58.158 L 0,48.582 0,5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
class="cls-1"
data-name="Path 1"
id="path4264" />
</g>
<g
transform="translate(25.916,13.015)"
id="g4266">
<g
clip-path="url(#clip-path-2)"
class="cls-4"
data-name="Mask Group 1"
id="g4268">
<path
style="fill:#f2f2f2"
inkscape:connector-curvature="0"
transform="translate(-1487.315,-449.455)"
d="m 1498.578,449.051 7.155,7.37 23.789,31.08 0,14.857 13.063,-16.131 0,-31.221 -0.993,-7.691 z"
class="cls-5"
data-name="hvid"
id="path4270" />
</g>
</g>
<g
style="filter:url(#Path_4)"
id="g4272"
transform="translate(-2133.68,-6140.14)"
class="cls-13">
<path
style="fill:#a8a9a8"
inkscape:connector-curvature="0"
transform="translate(2165.38,6158.22)"
d="m 5.784,0 31.091,0 a 5.784,5.784 0 0 1 5.785,5.784 l 0,22.248 C 34.013,39.3 27.1,48.444 27.1,48.444 l -21.316,0 A 5.784,5.784 0 0 1 0,42.66 L 0,5.784 A 5.784,5.784 0 0 1 5.784,0 Z"
class="cls-1"
data-name="Path 4"
id="path4274" />
</g>
<g
transform="translate(31.7,18.38)"
data-name="Group 3"
id="g4276">
<g
clip-path="url(#clip-path-3)"
class="cls-6"
data-name="Mask Group 2"
id="g4278">
<path
style="fill:#6a6a6a"
inkscape:connector-curvature="0"
transform="translate(15.907,-5.365)"
d="m 14.461,28.56 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z m -3.615,0 0,-27.475 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 a 1.085,1.085 0 1 1 -2.169,0 z M 0,28.56 0,1.085 a 1.085,1.085 0 1 1 2.169,0 l 0,27.475 A 1.085,1.085 0 1 1 0,28.56 Z"
class="cls-7"
data-name="Union 1"
id="path4280" />
</g>
</g>
<circle
style="fill:#9a9a9a"
r="2.2449999"
transform="translate(29.076,16.175)"
cy="2.2449999"
cx="2.2449999"
class="cls-8"
data-name="Ellipse 1"
id="circle4282" />
<circle
style="fill:#9a9a9a"
r="2.2449999"
transform="translate(57.744,66.686)"
cy="2.2449999"
cx="2.2449999"
class="cls-8"
data-name="Ellipse 2"
id="circle4284" />
<g
id="g4286"
transform="translate(-2133.68,-6140.14)"
class="cls-12">
<circle
style="fill:#b72b1c"
r="17.063999"
transform="translate(2135.31,6259.65)"
cy="17.063999"
cx="17.063999"
class="cls-9"
data-name="rød"
id="circle4288" />
</g>
<g
transform="matrix(0.966,0.259,-0.259,0.966,7.93,117.883)"
data-name="Group 2"
id="g4290">
<circle
style="fill:#3c3c3c"
r="3.7920001"
transform="translate(11.528,0)"
cy="3.7920001"
cx="3.7920001"
class="cls-10"
data-name="Ellipse 4"
id="circle4292" />
<circle
style="fill:#3c3c3c"
r="3.7920001"
transform="translate(23.056,11.528)"
cy="3.7920001"
cx="3.7920001"
class="cls-10"
data-name="Ellipse 7"
id="circle4294" />
<circle
style="fill:#3c3c3c"
r="3.7920001"
transform="translate(11.528,23.056)"
cy="3.7920001"
cx="3.7920001"
class="cls-10"
data-name="Ellipse 5"
id="circle4296" />
<circle
style="fill:#3c3c3c"
r="3.7920001"
transform="translate(0,11.528)"
cy="3.7920001"
cx="3.7920001"
class="cls-10"
data-name="Ellipse 6"
id="circle4298" />
<path
style="fill:#242424"
inkscape:connector-curvature="0"
transform="matrix(0,-1,1,0,11.68,18.863)"
d="m 2.4,1.566 c 0,0 0.021,0.786 -0.73,0.768 -0.751,-0.018 -1.38,0 -1.38,0 0,0 -0.29,0.248 -0.29,1.385 0,1.137 0.294,1.322 0.294,1.322 l 1.38,0 c 0,0 0.73,-0.024 0.73,0.649 0,0.673 0,1.3 0,1.3 0,0 0.227,0.359 1.17,0.306 a 3.594,3.594 0 0 0 1.4,-0.306 l 0,-1.3 a 0.67,0.67 0 0 1 0.66,-0.649 c 0.631,-0.01 1.257,0 1.257,0 0,0 0.253,-0.191 0.287,-1.322 C 7.212,2.588 6.891,2.333 6.891,2.333 l -1.253,0 c 0,0 -0.806,-0.052 -0.818,-0.768 A 12.478,12.478 0 0 1 4.884,0.305 2.9,2.9 0 0 0 2.529,0.213 C 2.45,0.819 2.4,1.566 2.4,1.566 Z"
class="cls-11"
data-name="Path 4"
id="path4300" />
<path
style="fill:#3c3c3c"
inkscape:connector-curvature="0"
transform="translate(13.241,8.084)"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
class="cls-10"
data-name="Path 5"
id="path4302" />
<path
style="fill:#3c3c3c"
inkscape:connector-curvature="0"
transform="matrix(0,-1,1,0,8.082,17.338)"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
class="cls-10"
data-name="Path 7"
id="path4304" />
<path
style="fill:#3c3c3c"
inkscape:connector-curvature="0"
transform="matrix(-1,0,0,-1,17.336,22.497)"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
class="cls-10"
data-name="Path 6"
id="path4306" />
<path
style="fill:#3c3c3c"
inkscape:connector-curvature="0"
transform="matrix(0,1,-1,0,22.495,13.242)"
d="M 0.455,0.155 2.016,0 3.64,0.155 A 0.455,0.455 0 0 1 4.1,0.61 l 0,2.124 A 0.455,0.455 0 0 1 3.645,3.189 L 2.094,2.979 0.46,3.189 A 0.455,0.455 0 0 1 0,2.734 L 0,0.61 A 0.455,0.455 0 0 1 0.455,0.155 Z"
class="cls-10"
data-name="Path 8"
id="path4308" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -13,10 +13,10 @@
sodipodi:docname="icn_port.svg"
width="58.928001"
height="58.928001"
inkscape:export-filename="C:\gh\pxt-ev3\libs\core\jres\icons\portB.png"
inkscape:export-xdpi="156.39424"
inkscape:export-ydpi="156.39424"
inkscape:version="0.92.1 r15371">
inkscape:export-filename="/Users/sam/pxt-ev3/libs/core/jres/icons/portCD-icon.png"
inkscape:export-xdpi="146.62"
inkscape:export-ydpi="146.62"
inkscape:version="0.91 r13725">
<metadata
id="metadata6352">
<rdf:RDF>
@ -25,7 +25,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -38,15 +38,15 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="837"
inkscape:window-width="2560"
inkscape:window-height="1395"
id="namedview6350"
showgrid="false"
inkscape:zoom="4.0048872"
inkscape:cx="24.98"
inkscape:cx="-18.217222"
inkscape:cy="29.464001"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
inkscape:current-layer="svg6348" />
<defs
@ -79,11 +79,15 @@
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:1.25;font-family:consolas;-inkscape-font-specification:consolas;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
x="1475.2291"
y="6185.2339"
id="text10060"><tspan
x="1457.2511"
y="6184.4844"
id="text10060"
inkscape:export-filename="/Users/sam/pxt-ev3/libs/core/jres/icons/portA-icon.png"
inkscape:export-xdpi="146.62"
inkscape:export-ydpi="146.62"><tspan
sodipodi:role="line"
id="tspan10058"
x="1475.2291"
y="6185.2339">B</tspan></text>
x="1457.2511"
y="6184.4844"
style="font-size:27.5px">CD</tspan></text>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -163,6 +163,7 @@ namespace motors {
* @param brake a value indicating if the motor should break when off
*/
//% blockId=outputMotorSetBrakeMode block="set %motor|brake %brake=toggleOnOff"
//% motor.fieldEditor="motors"
//% weight=60 blockGap=8
//% group="Properties"
//% help=motors/motor/set-brake
@ -175,6 +176,7 @@ namespace motors {
* Inverts the motor polarity
*/
//% blockId=motorSetInverted block="set %motor|inverted %reversed=toggleOnOff"
//% motor.fieldEditor="motors"
//% weight=59 blockGap=8
//% group="Properties"
//% help=motors/motor/set-inverted
@ -192,6 +194,7 @@ namespace motors {
//% group="Move"
//% help=motors/motor/stop
//% blockId=motorStop block="stop %motors|"
//% motors.fieldEditor="motors"
stop() {
this.init();
stop(this._port, this._brake);
@ -212,6 +215,7 @@ namespace motors {
//% group="Move"
//% help=motors/motor/reset
//% blockId=motorReset block="reset %motors|"
//% motors.fieldEditor="motors"
reset() {
this.init();
reset(this._port);
@ -226,6 +230,7 @@ namespace motors {
//% blockId=motorRun block="run %motor at %speed=motorSpeedPicker|\\%||for %value %unit"
//% weight=100 blockGap=8
//% group="Move"
//% motor.fieldEditor="motors"
//% expandableArgumentMode=toggle
//% help=motors/motor/run
run(speed: number, value: number = 0, unit: MoveUnit = MoveUnit.MilliSeconds) {
@ -287,6 +292,7 @@ namespace motors {
* @param timeOut optional maximum pausing time in milliseconds
*/
//% blockId=motorPauseUntilRead block="pause until %motor|ready"
//% motor.fieldEditor="motors"
//% weight=90
//% group="Move"
pauseUntilReady(timeOut?: number) {
@ -343,6 +349,7 @@ namespace motors {
* @param value true for regulated motor
*/
//% blockId=outputMotorSetRegulated block="set %motor|regulated %value=toggleOnOff"
//% motor.fieldEditor="motors"
//% weight=58
//% group="Properties"
//% help=motors/motor/set-regulated
@ -355,6 +362,7 @@ namespace motors {
* @param motor the port which connects to the motor
*/
//% blockId=motorSpeed block="%motor|speed"
//% motor.fieldEditor="motors"
//% weight=72
//% blockGap=8
//% group="Counters"
@ -369,6 +377,7 @@ namespace motors {
* @param motor the port which connects to the motor
*/
//% blockId=motorAngle block="%motor|angle"
//% motor.fieldEditor="motors"
//% weight=70
//% blockGap=8
//% group="Counters"
@ -382,6 +391,7 @@ namespace motors {
* Clears the motor count
*/
//% blockId=motorClearCount block="clear %motor|counters"
//% motor.fieldEditor="motors"
//% weight=68
//% blockGap=8
//% group="Counters"
@ -406,28 +416,28 @@ namespace motors {
}
}
//% whenUsed fixedInstance block="large motor A"
//% whenUsed fixedInstance block="large motor A" jres=icons.portA
export const largeA = new Motor(Output.A, true);
//% whenUsed fixedInstance block="large motor B"
//% whenUsed fixedInstance block="large motor B" jres=icons.portB
export const largeB = new Motor(Output.B, true);
//% whenUsed fixedInstance block="large motor C"
//% whenUsed fixedInstance block="large motor C" jres=icons.portC
export const largeC = new Motor(Output.C, true);
//% whenUsed fixedInstance block="large motor D"
//% whenUsed fixedInstance block="large motor D" jres=icons.portD
export const largeD = new Motor(Output.D, true);
//% whenUsed fixedInstance block="medium motor A"
//% whenUsed fixedInstance block="medium motor A" jres=icons.portA
export const mediumA = new Motor(Output.A, false);
//% whenUsed fixedInstance block="medium motor B"
//% whenUsed fixedInstance block="medium motor B" jres=icons.portB
export const mediumB = new Motor(Output.B, false);
//% whenUsed fixedInstance block="medium motor C"
//% whenUsed fixedInstance block="medium motor C" jres=icons.portC
export const mediumC = new Motor(Output.C, false);
//% whenUsed fixedInstance block="medium motor D"
//% whenUsed fixedInstance block="medium motor D" jres=icons.portD
export const mediumD = new Motor(Output.D, false);
//% fixedInstances
@ -481,7 +491,8 @@ namespace motors {
* @param value (optional) move duration or rotation
* @param unit (optional) unit of the value
*/
//% blockId=motorPairTank block="tank %motors %speedLeft=motorSpeedPicker|\\% %speedRight=motorSpeedPicker|\\%||for %value %unit"
//% blockId=motorPairTank block="tank **motors** %motors %speedLeft=motorSpeedPicker|\\% %speedRight=motorSpeedPicker|\\%||for %value %unit"
//% motors.fieldEditor="ports"
//% weight=96 blockGap=8
//% inlineInputMode=inline
//% group="Move"
@ -508,7 +519,8 @@ namespace motors {
* @param value (optional) move duration or rotation
* @param unit (optional) unit of the value
*/
//% blockId=motorPairSteer block="steer %chassis turn ratio %turnRatio=motorTurnRatioPicker speed %speed=motorSpeedPicker|\\%||for %value %unit"
//% blockId=motorPairSteer block="steer **motors** %chassis turn ratio %turnRatio=motorTurnRatioPicker speed %speed=motorSpeedPicker|\\%||for %value %unit"
//% chassis.fieldEditor="ports"
//% weight=95
//% turnRatio.min=-200 turnRatio=200
//% inlineInputMode=inline
@ -571,16 +583,16 @@ namespace motors {
}
}
//% whenUsed fixedInstance block="large motors B+C"
//% whenUsed fixedInstance block="B+C" jres=icons.portBC
export const largeBC = new SynchedMotorPair(Output.BC);
//% whenUsed fixedInstance block="large motors A+D"
//% whenUsed fixedInstance block="A+D" jres=icons.portAD
export const largeAD = new SynchedMotorPair(Output.AD);
//% whenUsed fixedInstance block="large motors A+B"
//% whenUsed fixedInstance block="A+B" jres=icons.portAB
export const largeAB = new SynchedMotorPair(Output.AB);
//% whenUsed fixedInstance block="large motors C+D"
//% whenUsed fixedInstance block="C+D" jres=icons.portCD
export const largeCD = new SynchedMotorPair(Output.CD);
function reset(out: Output) {