# Sw2robot — a SolidWorks → URDF exporter with a browser-based editor (free Windows .exe)

**URL:** <https://discourse.openrobotics.org/t/sw2robot-a-solidworks-urdf-exporter-with-a-browser-based-editor-free-windows-exe/55616>\
**Category:** Projects\
**Tags:** ros2, tools, cad, urdf\
**Created:** [June 22, 2026, 3:16pm UTC](https://discourse.openrobotics.org/t/sw2robot-a-solidworks-urdf-exporter-with-a-browser-based-editor-free-windows-exe/55616 "2026-06-22T15:16:00Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![iory](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/iory/32/34390_2.png) [@iory](https://discourse.openrobotics.org/u/iory)\
**Post date:** [June 22, 2026, 3:16pm UTC](https://discourse.openrobotics.org/t/sw2robot-a-solidworks-urdf-exporter-with-a-browser-based-editor-free-windows-exe/55616/1 "2026-06-22T15:16:01Z")

</div>

Hi all,

**TL;DR:**  **sw2robot** is yet another SolidWorks to URDF exporter—a modern, browser-based alternative to the official [sw\_urdf\_exporter](https://wiki.ros.org/sw_urdf_exporter) ([GitHub](https://github.com/ros/solidworks_urdf_exporter)). Rather than doing all the configuration inside a SolidWorks add-in, it safely extracts the raw kinematic graph from your `.sldasm` and lets you visually clean up joints, test `<mimic>` setups, and export a ready-to-use ROS package in a fast, standalone web UI.

**Repo:** [GitHub - jsk-ros-pkg/solidworks\_urdf\_exporter2: Solidworks to robot (urdf) converter. · GitHub](https://github.com/jsk-ros-pkg/solidworks_urdf_exporter2)  
**License:** Apache-2.0

## See it in action (~2.5 min)

The clip below is a full round-trip on a real example — a tendon/gear-driven robot hand actuated by Feetech servos — from loading the extracted model to downloading a ROS package.

[https://github.com/user-attachments/assets/d821525c-d1e2-4a33-8bbf-fea42ba12434](https://github.com/user-attachments/assets/d821525c-d1e2-4a33-8bbf-fea42ba12434)

- **0:00–0:22 — Launch & load.** Start the local server (a command-prompt window) and open the editor in your browser at `localhost:8090`. Pick `feetech_hand_urdf` from the previously-extracted datasets and the hand’s 3D model loads.
- **0:23–1:14 — Inspect joints.** Select a part from the link/joint tree on the right; its details show up in the editor panel on the left. Each joint’s rotation **axis** (XYZ arrows) and **direction** (the yellow circular arrow) are drawn right in the 3D view, so you can confirm the axis is set correctly and the joint moves the way you intended — all on-screen, no round-trip to a text editor.
- **1:15–2:21 — Mimic joints (coupled motion).** The highlight: couple the hand’s internal **pulleys** (the gear/pulley parts) to the actual finger joints. In the **mimic** panel you link a pulley (e.g. `pulley_HL53606M_3`) so it _follows_ a finger joint (e.g. `thumb_proximal_1`) with a multiplier (ratio / reversed direction). Drag the finger in the UI and the internal pulley rotates with it — confirming a fairly complex tendon/gear-driven `<mimic>` setup actually works before you ever leave the browser.
- **2:22–2:35 — Export.** From the **Export** menu (bottom-right) click **ROS1 package**. The browser instantly downloads a fully-packaged ZIP (`feetech_hand_urdf_description.zip`) with all the meshes and description files — ready to drop into a workspace.

## What it does

- **Extract** — opens a _throwaway copy_ of your `.sldasm` in a hidden SolidWorks instance and pulls the kinematic graph + per-link meshes. Your original CAD file is never touched.
- **Edit (in the browser)** — a single-page editor on top of that graph:
  - **Make root** any link (the tree re-roots and flips edges for you).
  - **Joint types** — toggle fixed ↔ movable, or Shift+drag box-select to bulk-set a whole range; flip a joint’s axis in one keystroke.
  - **Mimic** — link follower joints to a master with a multiplier + offset (URDF `<mimic>`); move the master and the followers track it live. (This is exactly the pulley-follows-finger coupling shown in the video.)
  - **Coordinate frames** — align the root frame to a face, or drop named **end-coords “ports”** on a face (+Z = face normal) for end-effector / sensor / mount frames.
  - **Live self-collision** as you drag a joint, plus an **automatic joint-limit** sweep, and per-link materials/densities.
  - Fast **keyboard shortcuts** (`t` toggle joint, `f` flip axis, `m` mimic, `r` make root, `Del` delete subtree, …).

- **Export** — a ROS / robot-compiler package (URDF + meshes + configs) you can drop straight into your workspace.

## Try it in ~2 minutes — no Python, no clone

1. Download the prebuilt editor from the [latest release](https://github.com/jsk-ros-pkg/solidworks_urdf_exporter2/releases/latest): `sw2robot-web-windows-x64-v<version>.exe`. It’s a single self-contained file.
2. Double-click it. A local server starts and your browser opens the editor at `http://localhost:8090`. (Windows SmartScreen may warn that the publisher is unknown since the binary is unsigned — _More info → Run anyway_.)
3. Open your `.sldasm` with the in-app file picker (🗄 file browser, which lists SolidWorks’ recent files, or 📋 paste a full path). The app drives SolidWorks for you and you get an editable robot.
4. Tidy up the tree / joints / materials, then export a ROS package.

**Note:** the _extract_ step needs SolidWorks installed on the same Windows machine (the app talks to it over COM; it does not embed SolidWorks). If you don’t have SolidWorks, you can still open, edit, and export an already-extracted package — a small sample is bundled.

There’s also a `pip install` path for developers who want to run it from source on any platform (only _extract_ is Windows-only); see the README.

I’d love feedback, bug reports, and feature ideas. Thanks!

---

<div class="post-metadata">

**Author:** ![Katherine\_Scott](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/katherine_scott/32/4434_2.png) [@Katherine\_Scott](https://discourse.openrobotics.org/u/Katherine_Scott)\
**Post date:** [June 22, 2026, 3:17pm UTC](https://discourse.openrobotics.org/t/sw2robot-a-solidworks-urdf-exporter-with-a-browser-based-editor-free-windows-exe/55616/2 "2026-06-22T15:17:04Z")

</div>

My feedback is you check your AI’s markdown formatting before blindly posting it to Discourse. 🤣

---

<div class="post-metadata">

**Author:** ![khalidbourr](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/khalidbourr/32/31219_2.png) [@khalidbourr](https://discourse.openrobotics.org/u/khalidbourr)\
**Post date:** [June 22, 2026, 4:10pm UTC](https://discourse.openrobotics.org/t/sw2robot-a-solidworks-urdf-exporter-with-a-browser-based-editor-free-windows-exe/55616/3 "2026-06-22T16:10:23Z")

</div>

Could be an interesting contribution, but come on, man !!, just explain briefly, spontaneously, no need for a AI perfect description, that sucks.

---

<div class="post-metadata">

**Author:** ![iory](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/iory/32/34390_2.png) [@iory](https://discourse.openrobotics.org/u/iory)\
**Post date:** [June 23, 2026, 2:08am UTC](https://discourse.openrobotics.org/t/sw2robot-a-solidworks-urdf-exporter-with-a-browser-based-editor-free-windows-exe/55616/4 "2026-06-23T02:08:39Z")

</div>

Thanks for the great suggestion! I’ve added a TL;DR and a link to the official exporter at the top of the post.

---

<div class="post-metadata">

**Author:** ![iory](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/iory/32/34390_2.png) [@iory](https://discourse.openrobotics.org/u/iory)\
**Post date:** [June 24, 2026, 11:21am UTC](https://discourse.openrobotics.org/t/sw2robot-a-solidworks-urdf-exporter-with-a-browser-based-editor-free-windows-exe/55616/5 "2026-06-24T11:21:39Z")

</div>

I’ve integrated CoACD for collision detection. We can now easily import SolidWorks assemblies into the robotics simulator.

![coacd](https://us1.discourse-cdn.com/flex022/uploads/ros/original/3X/8/5/851888fcabf62b0ba15cbe8d521004c82ab87f10.gif)
