├── .editorconfig
├── .gitattributes
├── .github
├── CODE_OF_CONDUCT.md
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── bug.yml
│ └── config.yml
├── README.md
├── SUPPORT.md
└── workflows
│ └── publish.yml
├── .gitignore
├── Directory.Build.props
├── LICENSE
├── NOTICE
├── RELEASE
├── Robots.slnx
├── build
├── Assets
│ ├── Icons.ai
│ ├── icon128.png
│ ├── iconRhino128.png
│ ├── iconRobot.png
│ └── social.svg
└── Robots.Build
│ ├── Program.cs
│ └── Robots.Build.csproj
├── docs
├── Bartlett
│ ├── Adhesive_extruder.3dm
│ ├── Flange.3dm
│ ├── IO_layout.PNG
│ └── IO_layout.pdf
├── Images
│ ├── coordinate system.png
│ ├── iconRobot.svg
│ └── logo.png
└── Sponsors
│ ├── Bmade_dark.png
│ └── Bmade_light.png
├── lib
├── ABB.Robotics.Controllers.PC.dll
├── Newtonsoft.Json.Rhino.dll
├── RobotStudio.Services.RobApi.Desktop.dll
└── RobotStudio.Services.RobApi.dll
├── samples
├── Robots.Samples.Dynamo
│ ├── DynamoMeshPoser.cs
│ ├── Geometry.cs
│ ├── Program.cs
│ ├── Robot.cs
│ ├── Robots.Samples.Dynamo.csproj
│ ├── RobotsViewExtension.cs
│ └── package
│ │ ├── bin
│ │ └── Robots.Dynamo_DynamoCustomization.xml
│ │ ├── extra
│ │ └── Robots.Dynamo_ViewExtensionDefinition.xml
│ │ └── pkg.json
├── Robots.Samples.Grasshopper
│ ├── Python script example.gh
│ ├── extrusion example.gh
│ ├── metal forming example.gh
│ ├── pick and place example.gh
│ ├── positioner example.gh
│ └── simple example.gh
├── Robots.Samples.Unity
│ ├── .gitattributes
│ ├── .gitignore
│ ├── Assets
│ │ ├── CameraSimple.cs
│ │ ├── CameraSimple.cs.meta
│ │ ├── Floor.mat
│ │ ├── Floor.mat.meta
│ │ ├── Material.mat
│ │ ├── Material.mat.meta
│ │ ├── Robot.cs
│ │ ├── Robot.cs.meta
│ │ ├── Robots.Samples.Unity.asmdef
│ │ ├── Robots.Samples.Unity.asmdef.meta
│ │ ├── Scene.unity
│ │ ├── Scene.unity.meta
│ │ ├── TestProgram.cs
│ │ ├── TestProgram.cs.meta
│ │ ├── URP-Global.asset
│ │ ├── URP-Global.asset.meta
│ │ ├── URP-Renderer.asset
│ │ ├── URP-Renderer.asset.meta
│ │ ├── URP.asset
│ │ ├── URP.asset.meta
│ │ ├── UnityMeshPoser.cs
│ │ ├── UnityMeshPoser.cs.meta
│ │ ├── Volume.asset
│ │ ├── Volume.asset.meta
│ │ ├── csc.rsp
│ │ └── csc.rsp.meta
│ ├── Packages
│ │ ├── manifest.json
│ │ └── packages-lock.json
│ ├── ProjectSettings
│ │ ├── EditorSettings.asset
│ │ ├── GraphicsSettings.asset
│ │ ├── PackageManagerSettings.asset
│ │ ├── ProjectSettings.asset
│ │ ├── ProjectVersion.txt
│ │ ├── QualitySettings.asset
│ │ ├── ShaderGraphSettings.asset
│ │ └── URPProjectSettings.asset
│ └── README.md
└── Robots.Samples.Wpf
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── HelixMeshPoser.cs
│ ├── MainViewModel.cs
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Robots.Samples.Wpf.csproj
│ └── TestProgram.cs
├── src
├── Robots.Grasshopper
│ ├── Assets
│ │ └── Embed
│ │ │ ├── iconAngles.png
│ │ │ ├── iconCheckCollisions.png
│ │ │ ├── iconCommandParam.png
│ │ │ ├── iconCreateFrame.png
│ │ │ ├── iconCreateProgram.png
│ │ │ ├── iconCreateTarget.png
│ │ │ ├── iconCreateTool.png
│ │ │ ├── iconCustomCode.png
│ │ │ ├── iconCustomCommand.png
│ │ │ ├── iconDeconstructProgramTarget.png
│ │ │ ├── iconDeconstructTarget.png
│ │ │ ├── iconDeconstructToolpath.png
│ │ │ ├── iconFrame.png
│ │ │ ├── iconFrameParam.png
│ │ │ ├── iconGetPlane.png
│ │ │ ├── iconGroupCommand.png
│ │ │ ├── iconJointsParam.png
│ │ │ ├── iconKinematics.png
│ │ │ ├── iconMessage.png
│ │ │ ├── iconPostProcessorParam.png
│ │ │ ├── iconProgramParam.png
│ │ │ ├── iconPulseDO.png
│ │ │ ├── iconRobot.png
│ │ │ ├── iconRobotParam.png
│ │ │ ├── iconSave.png
│ │ │ ├── iconSetAO.png
│ │ │ ├── iconSetDO.png
│ │ │ ├── iconSimpleTrail.png
│ │ │ ├── iconSimulation.png
│ │ │ ├── iconSpeed.png
│ │ │ ├── iconSpeedParam.png
│ │ │ ├── iconStopCommand.png
│ │ │ ├── iconTargetParam.png
│ │ │ ├── iconToPlane.png
│ │ │ ├── iconTool.png
│ │ │ ├── iconToolParam.png
│ │ │ ├── iconToolpathParam.png
│ │ │ ├── iconURRemote.png
│ │ │ ├── iconWait.png
│ │ │ ├── iconWaitDI.png
│ │ │ └── iconZoneParam.png
│ ├── Commands
│ │ ├── CustomCommand.cs
│ │ ├── Group.cs
│ │ ├── Message.cs
│ │ ├── PulseDO.cs
│ │ ├── SetAO.cs
│ │ ├── SetDO.cs
│ │ ├── Stop.cs
│ │ ├── Wait.cs
│ │ └── WaitDI.cs
│ ├── ComponentButton.cs
│ ├── ComponentForm.cs
│ ├── Goos
│ │ ├── GH_Command.cs
│ │ ├── GH_Frame.cs
│ │ ├── GH_Joints.cs
│ │ ├── GH_PostProcessor.cs
│ │ ├── GH_Program.cs
│ │ ├── GH_RobotSystem.cs
│ │ ├── GH_Speed.cs
│ │ ├── GH_Target.cs
│ │ ├── GH_Tool.cs
│ │ ├── GH_Toolpath.cs
│ │ └── GH_Zone.cs
│ ├── Obsolete
│ │ ├── CreateProgram.cs
│ │ ├── CreateSpeed.cs
│ │ └── Custom.cs
│ ├── Parameters
│ │ ├── CommandParameter.cs
│ │ ├── FrameParameter.cs
│ │ ├── JointsParameter.cs
│ │ ├── PostProcessorParameter.cs
│ │ ├── ProgramParameter.cs
│ │ ├── RobotSystemParameter.cs
│ │ ├── SpeedParameter.cs
│ │ ├── TargetParameter.cs
│ │ ├── ToolParameter.cs
│ │ ├── ToolpathParameter.cs
│ │ └── ZoneParameter.cs
│ ├── Program
│ │ ├── CheckCollisions.cs
│ │ ├── CreateProgramVariable.cs
│ │ ├── CustomCode.cs
│ │ ├── DeconstructProgramTargets.cs
│ │ ├── Remote.cs
│ │ ├── SaveProgram.cs
│ │ ├── Simulation.cs
│ │ └── SimulationForm.cs
│ ├── RobotSystem
│ │ ├── DegreesToRadians.cs
│ │ ├── FromPlane.cs
│ │ ├── GetPlane.cs
│ │ ├── Kinematics.cs
│ │ ├── LibraryForm.cs
│ │ ├── LibraryParam.cs
│ │ ├── LoadFrame.cs
│ │ ├── LoadRobotSystem.cs
│ │ └── LoadTool.cs
│ ├── Robots.Grasshopper.csproj
│ ├── RobotsInfo.cs
│ ├── Target
│ │ ├── ConfigParam.cs
│ │ ├── CreateFrame.cs
│ │ ├── CreateSpeedAccel.cs
│ │ ├── CreateTarget.cs
│ │ ├── CreateTool.cs
│ │ ├── DeconstructTarget.cs
│ │ └── DeconstructToolpath.cs
│ ├── Util.cs
│ ├── Visualization
│ │ └── DrawSimpleTrail.cs
│ └── build
│ │ └── Robots.Rhino.targets
└── Robots
│ ├── Commands
│ ├── Command.cs
│ ├── Custom.cs
│ ├── Group.cs
│ ├── Message.cs
│ ├── PulseDO.cs
│ ├── SetAO.cs
│ ├── SetDO.cs
│ ├── Stop.cs
│ ├── Wait.cs
│ └── WaitDI.cs
│ ├── Geometry
│ ├── CircumcentreSolver.cs
│ └── Vector6d.cs
│ ├── IO
│ ├── CleanFile3dm.cs
│ ├── FileIO.cs
│ ├── OnlineLibrary.cs
│ └── Settings.cs
│ ├── Kinematics
│ ├── CustomKinematics.cs
│ ├── KinematicSolution.cs
│ ├── MechanicalGroupKinematics.cs
│ ├── MechanismKinematics.cs
│ ├── NumericalKinematics.cs
│ ├── OffsetWristKinematics.cs
│ ├── PositionerKinematics.cs
│ ├── RobotCellKinematics.cs
│ ├── RobotKinematics.cs
│ ├── SphericalWristKinematics.cs
│ └── TrackKinematics.cs
│ ├── Mechanisms
│ ├── Custom.cs
│ ├── Joints.cs
│ ├── Mechanism.cs
│ ├── Positioner.cs
│ └── Track.cs
│ ├── PostProcessors
│ ├── DrlPostProcessor.cs
│ ├── FanucPostProcessor.cs
│ ├── FrankxPostProcessor.cs
│ ├── IgusPostProcessor.cs
│ ├── JKSPostProcessor.cs
│ ├── KRLPostProcessor.cs
│ ├── RapidPostProcessor.cs
│ ├── URScriptPostProcessor.cs
│ └── VAL3PostProcessor.cs
│ ├── Program
│ ├── CellTarget.cs
│ ├── CheckProgram.cs
│ ├── Collision.cs
│ ├── CustomProgram.cs
│ ├── Program.cs
│ ├── ProgramTarget.cs
│ └── Simulation.cs
│ ├── Remotes
│ ├── Ftp.cs
│ ├── IRemote.cs
│ ├── RemoteAbb.cs
│ ├── RemoteFranka.cs
│ ├── RemoteUR.cs
│ ├── RemoteURFtp.cs
│ ├── RemoteURPrimaryClient.cs
│ ├── URRealTime.cs
│ ├── URRealTimeDataExchange.cs
│ └── User.cs
│ ├── Resources
│ ├── URRTDE.csv
│ ├── URRealTime.csv
│ └── UrpTemplate.txt
│ ├── RobotArms
│ ├── RobotAbb.cs
│ ├── RobotArm.cs
│ ├── RobotDoosan.cs
│ ├── RobotFanuc.cs
│ ├── RobotFranka.cs
│ ├── RobotIgus.cs
│ ├── RobotJaka.cs
│ ├── RobotKuka.cs
│ ├── RobotStaubli.cs
│ └── RobotUR.cs
│ ├── RobotSystems
│ ├── CobotSystem.cs
│ ├── IO.cs
│ ├── IndustrialSystem.cs
│ ├── MechanicalGroup.cs
│ ├── RobotSystem.cs
│ ├── SystemAbb.cs
│ ├── SystemDoosan.cs
│ ├── SystemFanuc.cs
│ ├── SystemFranka.cs
│ ├── SystemIgus.cs
│ ├── SystemJaka.cs
│ ├── SystemKuka.cs
│ ├── SystemStaubli.cs
│ └── SystemUR.cs
│ ├── Robots.csproj
│ ├── TargetAttributes
│ ├── Frame.cs
│ ├── Speed.cs
│ ├── TargetAttribute.cs
│ ├── Tool.cs
│ └── Zone.cs
│ ├── Targets
│ ├── CartesianTarget.cs
│ ├── JointTarget.cs
│ ├── Target.cs
│ └── Toolpath.cs
│ ├── Util.cs
│ └── Visualization
│ ├── MeshPoser.cs
│ ├── RhinoMeshPoser.cs
│ └── SimpleTrail.cs
└── tests
└── Robots.Tests
├── ABBTests.cs
├── Performance.cs
├── Program.cs
├── Robots.Tests.csproj
└── URTests.cs
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
--------------------------------------------------------------------------------
/.github/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Code of Conduct
2 |
3 | This project adheres to the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct).
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: visose
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: visose.com/paypal
13 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug.yml:
--------------------------------------------------------------------------------
1 | name: 🐞 Bug
2 | description: File a bug
3 | title: "[Bug]
"
4 | labels: ["bug"]
5 | body:
6 | - type: checkboxes
7 | id: searched
8 | attributes:
9 | label: Is there an existing issue for this?
10 | description: Please search to see if an issue or discussion already exists for the bug you encountered.
11 | options:
12 | - label: I have searched the existing issues
13 | required: true
14 | - type: input
15 | id: robotsVersion
16 | attributes:
17 | label: What Robots version are you using?
18 | description: You can find the version number using the _PackageManager command. Please check if the bug exists on the latest version.
19 | placeholder: "1.0.1"
20 | validations:
21 | required: true
22 | - type: dropdown
23 | id: rhinoVersion
24 | attributes:
25 | label: What Rhino version are you using?
26 | description: Only Rhino 7 and 8 for Windows and MacOS are supported.
27 | options:
28 | - Rhino 7 for Windows
29 | - Rhino 7 for MacOS
30 | - Rhino 8 for Windows
31 | - Rhino 8 for MacOS
32 | - Other
33 | validations:
34 | required: true
35 | - type: textarea
36 | id: behavior
37 | attributes:
38 | label: Current Behavior
39 | description: A concise description of what you're experiencing.
40 | validations:
41 | required: true
42 | - type: textarea
43 | id: expected
44 | attributes:
45 | label: Expected Behavior
46 | description: A concise description of what you expected to happen.
47 | validations:
48 | required: false
49 | - type: textarea
50 | id: steps
51 | attributes:
52 | label: Steps To Reproduce
53 | description: Steps to reproduce the behavior.
54 | validations:
55 | required: false
56 | - type: textarea
57 | id: other
58 | attributes:
59 | label: Anything else?
60 | description: |
61 | Links, references, or anything that will give us more context about the issue you are encountering!
62 | Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
63 | validations:
64 | required: false
65 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: 💬 Discussions
4 | url: https://github.com/visose/Robots/discussions/new?category=q-a
5 | about: Ask a question
--------------------------------------------------------------------------------
/.github/SUPPORT.md:
--------------------------------------------------------------------------------
1 | ## Support
2 |
3 | If you have a question, or need help:
4 | 1. Check out the [docs](../../../wiki)
5 | 1. Search the [discussions](https://github.com/visose/Robots/discussions)
6 | 1. Ask a question [here](https://github.com/visose/Robots/discussions/new?category=q-a)
7 |
--------------------------------------------------------------------------------
/.github/workflows/publish.yml:
--------------------------------------------------------------------------------
1 | name: Publish
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | workflow_dispatch:
8 | inputs:
9 | commands:
10 | description: 'Commands'
11 | required: true
12 | default: 'debug'
13 |
14 | jobs:
15 | publish:
16 | runs-on: windows-2022
17 |
18 | steps:
19 | - uses: actions/checkout@v2
20 | - run: dotnet run --project "build/Robots.Build/Robots.Build.csproj" ${{ github.event.inputs.commands }}
21 | env:
22 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23 | YAK_TOKEN: ${{ secrets.YAK_TOKEN }}
24 | NUGET_KEY: ${{ secrets.NUGET_KEY }}
25 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | nupkg/
3 | secrets*
4 |
5 | # Build results
6 | artifacts/
7 |
8 | # Visual Studio Code
9 | .vscode
10 |
11 | # Rider
12 | .idea
13 |
14 | # Visual Studio
15 | .vs/
16 |
17 | # User-specific files
18 | *.suo
19 | *.user
20 | *.userosscache
21 | *.sln.docstates
--------------------------------------------------------------------------------
/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Robots
5 | 1.9.0
6 | Robots Authors
7 | Create and simulate ABB, KUKA, UR, and Staubli robot programs.
8 | Robots;ABB;KUKA;UR;Staubli;Robotics
9 | https://github.com/visose/robots
10 | iconRobot.png
11 | RELEASE
12 |
13 | $([System.DateTime]::Now.Year)
14 | Copyright (c) 2015-$(CurrentYear) $(Authors)
15 | $(Authors) - $(PackageProjectUrl)
16 | MIT
17 | https://github.com/visose/robots.git
18 |
19 |
20 |
21 | latest
22 | enable
23 | enable
24 | latest
25 | MSB3270
26 | $(MSBuildThisFileDirectory)
27 | $(RootDir)artifacts
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2015 Robots Authors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/NOTICE:
--------------------------------------------------------------------------------
1 | Robots uses third-party libraries or other resources that may be
2 | distributed under licenses different than the Robots software.
3 |
4 | In the event that we accidentally failed to list a required notice, please
5 | bring it to our attention.
6 |
7 | Kdl.NetStandard (MIT)
8 | * Copyright (c) 2020 Doug Slater
9 | * https://github.com/slater1/Kdl.NetStandard/blob/master/LICENSE
10 |
11 | Orocos KDL (LGPL-v2)
12 | * Copyright (с) Orocos
13 | * https://www.orocos.org/content/orocos-licenses
14 |
15 | Math.NET (MIT)
16 | * Copyright (с) 2002-2022 Math.NET
17 | * https://github.com/mathnet/mathnet-numerics/blob/master/LICENSE-MKL.md
18 |
19 | OPW Kinematics (Apache-2.0)
20 | * Copyright (с) Jonathan Meyer
21 | * https://github.com/Jmeyer1292/opw_kinematics/blob/master/LICENSE
22 |
23 | Frankx (LGPL-3.0)
24 | * Copyright (с) Lars Berscheid
25 | * https://github.com/pantor/frankx/blob/master/LICENSE
26 |
27 | ROS-Industrial Support for Universal Robots (BSD, 3-Clause)
28 | * Copyright (с) Felix Messmer, Kelsey Hawkins, Shaun Edwards, Stuart Glaser, Wim Meeussen
29 | * https://opensource.org/licenses/BSD-3-Clause
30 |
31 | ABB PC SDK
32 | * Copyright (c) 2021 ABB
33 | * https://developercenter.robotstudio.com/pc-sdk
34 |
35 | Convertalot
36 | * Copyright (c) 2004 Stephen R. Schmitt
37 | * http://www.convertalot.com/
38 |
39 | Euclidean Space
40 | * Copyright (c) 1998-2021 Martin John Baker
41 | * http://www.euclideanspace.com/
42 |
--------------------------------------------------------------------------------
/Robots.slnx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/build/Assets/Icons.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/build/Assets/Icons.ai
--------------------------------------------------------------------------------
/build/Assets/icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/build/Assets/icon128.png
--------------------------------------------------------------------------------
/build/Assets/iconRhino128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/build/Assets/iconRhino128.png
--------------------------------------------------------------------------------
/build/Assets/iconRobot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/build/Assets/iconRobot.png
--------------------------------------------------------------------------------
/build/Robots.Build/Program.cs:
--------------------------------------------------------------------------------
1 | using RhinoPackager;
2 | using RhinoPackager.Commands;
3 |
4 | var app = App.Create(args);
5 | Props props = new("Directory.Build.props");
6 | Github github = new("visose", "Robots");
7 |
8 | app.Add(
9 | [
10 | new Test
11 | (
12 | testProject: "tests/Robots.Tests/Robots.Tests.csproj"
13 | ),
14 | new CheckVersion
15 | (
16 | props: props,
17 | github: github
18 | ),
19 | new Build
20 | (
21 | buildProject: "src/Robots.Grasshopper/Robots.Grasshopper.csproj"
22 | ),
23 | new Yak
24 | (
25 | props: props,
26 | sourceFolder: "artifacts/bin/Robots.Grasshopper/release",
27 | files:
28 | [
29 | "Robots.dll",
30 | "Robots.gha",
31 | "ABB.Robotics.Controllers.PC.dll",
32 | "RobotStudio.Services.RobApi.Desktop.dll",
33 | "RobotStudio.Services.RobApi.dll",
34 | "Renci.SshNet.dll",
35 | "iconRobot.png"
36 | ],
37 | tags:
38 | [
39 | "rh7_0-any",
40 | "rh8_0-any"
41 | ]
42 | ),
43 | new Nuget
44 | (
45 | props: props,
46 | project: "src/Robots/Robots.csproj",
47 | targets: "netstandard2.0"
48 | ),
49 | new Nuget
50 | (
51 | props: props,
52 | project: "src/Robots.Grasshopper/Robots.Grasshopper.csproj",
53 | targets: "net48"
54 | ),
55 | new Release
56 | (
57 | props: props,
58 | github: github,
59 | notesFile: "RELEASE",
60 | message: "> This **release** can only be installed through the package manager in **Rhino 7** or **Rhino 8** using the `_PackageManager` command.\n> Check the [readme](../../blob/master/.github/README.md) for more details."
61 | )
62 | ]);
63 |
64 | await app.RunAsync();
65 |
--------------------------------------------------------------------------------
/build/Robots.Build/Robots.Build.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | net8.0
6 | $(RootDir)
7 |
8 | CA1852
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/docs/Bartlett/Adhesive_extruder.3dm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/docs/Bartlett/Adhesive_extruder.3dm
--------------------------------------------------------------------------------
/docs/Bartlett/Flange.3dm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/docs/Bartlett/Flange.3dm
--------------------------------------------------------------------------------
/docs/Bartlett/IO_layout.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/docs/Bartlett/IO_layout.PNG
--------------------------------------------------------------------------------
/docs/Bartlett/IO_layout.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/docs/Bartlett/IO_layout.pdf
--------------------------------------------------------------------------------
/docs/Images/coordinate system.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/docs/Images/coordinate system.png
--------------------------------------------------------------------------------
/docs/Images/iconRobot.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/docs/Images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/docs/Images/logo.png
--------------------------------------------------------------------------------
/docs/Sponsors/Bmade_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/docs/Sponsors/Bmade_dark.png
--------------------------------------------------------------------------------
/docs/Sponsors/Bmade_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/docs/Sponsors/Bmade_light.png
--------------------------------------------------------------------------------
/lib/ABB.Robotics.Controllers.PC.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/lib/ABB.Robotics.Controllers.PC.dll
--------------------------------------------------------------------------------
/lib/Newtonsoft.Json.Rhino.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/lib/Newtonsoft.Json.Rhino.dll
--------------------------------------------------------------------------------
/lib/RobotStudio.Services.RobApi.Desktop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/lib/RobotStudio.Services.RobApi.Desktop.dll
--------------------------------------------------------------------------------
/lib/RobotStudio.Services.RobApi.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/visose/Robots/3becdb8f87ed174c04dfb9c6447693b5c57384a0/lib/RobotStudio.Services.RobApi.dll
--------------------------------------------------------------------------------
/samples/Robots.Samples.Dynamo/Geometry.cs:
--------------------------------------------------------------------------------
1 | using Autodesk.DesignScript.Runtime;
2 | using Rhino.Geometry;
3 | using D = Autodesk.DesignScript.Geometry;
4 |
5 | namespace Robots.Dynamo;
6 |
7 | [IsVisibleInDynamoLibrary(false)]
8 | public static class Geometry
9 | {
10 | public static D.Plane ToDPlane(this ref Plane p)
11 | {
12 | var origin = p.Origin.ToDPoint();
13 | var xAxis = p.XAxis.ToDPoint();
14 | var yAxis = p.YAxis.ToDPoint();
15 |
16 | return D.Plane.ByOriginXAxisYAxis(origin, xAxis, yAxis);
17 | }
18 |
19 | public static Plane ToPlane(this D.Plane p)
20 | {
21 | var origin = p.Origin.ToPoint3d();
22 | var xAxis = p.XAxis.ToVector3d();
23 | var yAxis = p.YAxis.ToVector3d();
24 |
25 | return new(origin, xAxis, yAxis);
26 | }
27 |
28 | static D.Point ToDPoint(this Point3d p) => D.Point.ByCoordinates(p.X, p.Y, p.Z);
29 | static D.Vector ToDPoint(this Vector3d p) => D.Vector.ByCoordinates(p.X, p.Y, p.Z);
30 |
31 | static Point3d ToPoint3d(this D.Point p) => new(p.X, p.Y, p.Z);
32 | static Vector3d ToVector3d(this D.Vector p) => new(p.X, p.Y, p.Z);
33 | }
34 |
--------------------------------------------------------------------------------
/samples/Robots.Samples.Dynamo/Program.cs:
--------------------------------------------------------------------------------
1 | using Autodesk.DesignScript.Runtime;
2 | using Autodesk.DesignScript.Geometry;
3 |
4 | namespace Robots.Dynamo;
5 |
6 | public class Program : IDisposable
7 | {
8 | readonly Robots.Program _program;
9 |
10 | [IsVisibleInDynamoLibrary(false)]
11 | public Program(Robots.Program program)
12 | {
13 | program.MeshPoser = new DynamoMeshPoser(program.RobotSystem);
14 | _program = program;
15 | }
16 |
17 | [IsVisibleInDynamoLibrary(false)]
18 | public void Dispose()
19 | {
20 | var poser = _program.MeshPoser as IDisposable;
21 | poser?.Dispose();
22 | }
23 |
24 | ///
25 | /// Run the robot simulation
26 | ///
27 | /// Normalized time (0 to 1)
28 | /// Joint planes
29 | public List Simulation(double time)
30 | {
31 | _program.Animate(time);
32 | var planes = _program.CurrentSimulationPose.Kinematics
33 | .SelectMany(k => k.Planes.Select(p => p.ToDPlane()));
34 |
35 | return planes.ToList();
36 | }
37 |
38 | public override string ToString() => $"Program(Name = {_program.Name})";
39 | }
40 |
--------------------------------------------------------------------------------
/samples/Robots.Samples.Dynamo/Robot.cs:
--------------------------------------------------------------------------------
1 | using Autodesk.DesignScript.Runtime;
2 | using Rhino.Geometry;
3 |
4 | namespace Robots.Dynamo;
5 |
6 | public class Robot
7 | {
8 | // static
9 | ///
10 | /// Load a robot system
11 | ///
12 | /// Name of robot system
13 | /// Robot system
14 | public static Robot ByName(string name)
15 | {
16 | var system = FileIO.LoadRobotSystem(name, Plane.WorldXY);
17 | return new(system);
18 | }
19 |
20 | // instance
21 | [IsVisibleInDynamoLibrary(false)]
22 | public RobotSystem System { get; }
23 |
24 | private Robot(RobotSystem system)
25 | {
26 | System = system;
27 | }
28 |
29 | public override string ToString() => $"RobotSystem(Name = {System.Name})";
30 | }
31 |
--------------------------------------------------------------------------------
/samples/Robots.Samples.Dynamo/Robots.Samples.Dynamo.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Robots.Dynamo
5 | net48
6 | true
7 | CS1591
8 |
9 | 2023
10 | 2.13
11 |
12 | C:\Program Files\Autodesk\Revit $(RevitVersion)\Revit.exe
13 | /language ENG
14 | Program
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/samples/Robots.Samples.Dynamo/RobotsViewExtension.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 | using Autodesk.DesignScript.Runtime;
3 | using Dynamo.Wpf.Extensions;
4 | using Dynamo.Controls;
5 | using HelixToolkit.Wpf.SharpDX;
6 |
7 | namespace Robots.Dynamo;
8 |
9 | [IsVisibleInDynamoLibrary(false)]
10 | public class RobotsViewExtension : IViewExtension
11 | {
12 | internal static RobotsViewExtension Instance { get; private set; } = default!;
13 |
14 | Panel _content = default!;
15 | public string UniqueId => "073FBA9B-49C6-41D1-95FD-8335D6E8F305";
16 | public string Name => nameof(RobotsViewExtension);
17 |
18 | public void Startup(ViewStartupParams viewStartupParams) { }
19 |
20 | public void Shutdown() { }
21 |
22 | public void Loaded(ViewLoadedParams viewLoadedParams)
23 | {
24 | var window = viewLoadedParams.DynamoWindow;
25 | _content = (Panel)window.Content;
26 | Instance = this;
27 | }
28 |
29 | Viewport3DX GetViewport()
30 | {
31 | Queue