• Home
  • Guide
    Upload GuideInstallation Guide
  • API Docs
    Development GuideAPI CallsAPI Reference
  • Related Sites
    EasyEDAJLCHUBOSHWLab
  • Editor
    Online Editor (Pro)Client Download
  • Manage extensions
  • LoginRegister
· EasyEDA Extension Marketplace
Home

Guide

Upload GuideInstallation Guide

API Docs

Development GuideAPI CallsAPI Reference

Related Sites

EasyEDAJLCHUBOSHWLab

Editor

Online Editor (Pro)Client Download
LoginRegister

Fusion360 MCAD Integration

oshwhub-official2v1.1.2
(0)Apache-2.0
Export PCB 3D model to Fusion360 via WebSocket for viewing and editing, with bidirectional interaction support
Details
Changelog
Historical versions
Comments

Fusion360 MCAD Integration

oshwhub-official2
(0)Apache-2.0
Details
Changelog
Historical versions
Comments

English | 简体中文

Fusion360 MCAD Integration — EasyEDA Pro Extension

Real-time collaboration between EasyEDA Pro and Fusion360 via WebSocket + HTTP. Supports model export, bidirectional position sync, cross-probe, and deletion sync.

Features

FeatureDescription
3D Model ExportTransfer PCB STEP model to Fusion360 in chunks, supports large files
Download ScriptOne-click save Fusion360 Add-In script to local disk
Bidirectional Position SyncDrag component in EDA → Fusion360 follows, and vice versa
Cross-ProbeClick a component on one side, the other side auto-focuses
Deletion SyncDelete component in EDA, Fusion360 removes it simultaneously

Requirements

ItemRequirement
EasyEDA Pro≥ 3.0
Fusion360Installed and runnable
PythonFusion360 built-in Python environment
NetworkLocalhost available

Installation

Step 1: Install EDA Extension

  1. Open EasyEDA Pro
  2. After installation, find Fusion360 MCAD Integration in the extension list and confirm it is enabled
  3. Enable external interaction permission: Go to Extensions → Extension Settings → Enable External Interaction permission (required for WebSocket communication)

Step 2: Install Fusion360 Script

  1. Download the script (The script file can also be saved locally via EDA menu Fusion360 MCAD Integration → Download Script)

  2. Open Fusion360 and create a new document

  3. Create a new add-in module

  4. Open the script file location, replace the script content with the downloaded script file. Note that the script name must match the one used during creation.

  5. Click Run. Note: you must run the module, not the script file.

  6. Verify successful startup: You should see the following in Fusion360's text command window:

[EasyEDA] CustomEvent registered
[EasyEDA] Add-in started ✅
[EasyEDA] Starting WebSocket server on ws://0.0.0.0:8767

Usage Guide

1. Export 3D Model to Fusion360

  1. Make sure the Fusion360 Add-In script is running

  2. Create or open a component design document in Fusion360

    If the script is already running, just click the export button — a new document will be created automatically.

  3. Open a PCB design file in EDA, enter the PCB Editor

  4. Click menu Fusion360 MCAD Integration → Export 3D to Fusion360


5. Automatically connects to Fusion360, retrieves the STEP file, and uploads it in chunks.

2. Enable Bidirectional Interaction

After exporting the model, you can enable bidirectional interaction for real-time sync:

  1. Click menu Fusion360 MCAD Integration → Enable Bidirectional
  2. EDA will automatically map component designators to Fusion360 3D objects (build_mapping)
  3. After mapping is successful, you can:
    • Drag a component in EDA → The 3D model in Fusion360 follows in real-time
    • Drag an object in Fusion360 → The component in EDA moves synchronously (via HTTP polling for position changes)
    • Click a component in EDA → Fusion360 auto-selects and focuses (flashing highlight)
    • Click an object in Fusion360 → EDA auto-navigates to the corresponding component

Known Limitation: The mapping is one-to-one. Opening multiple pages will cause mapping conflicts. Please operate on a single page.

3. Stop Bidirectional Interaction

  1. Click menu Fusion360 MCAD Integration → Disable Bidirectional

  1. All mappings and listeners will be cleared.

4. Connection Management

Menu OptionFunction
Export 3D to Fusion360Auto-connect + chunked upload + import
Enable BidirectionalEnable real-time bidirectional sync
Disable BidirectionalStop sync and clear mappings
Disconnect Fusion360Disconnect WebSocket connection
Download ScriptSave Fusion360 script

Technical Details

Communication Architecture

EDA ←— WebSocket:8767 —→ Fusion (Command channel: upload/mapping/position update/cross-probe)
EDA ←— HTTP:8768/poll ←— Fusion (Status channel: selection detection/position changes)
DirectionProtocolDescription
EDA → FusionWebSocketFile upload, designator mapping, position sync, cross-probe, delete, rename
Fusion → EDAHTTP PollingDetect selection state and position changes every 2 seconds, return to EDA

Key Technical Decisions

ItemSolutionReason
WebSocket ImplementationPure PythonFusion360 environment cannot install third-party libraries
HTTP ServerPython built-in http.serverPolling for Fusion state changes
STEP ImportexecuteTextCommand('Translator.Import')Can be safely called from background thread, bypasses DataFile limitations
Selection/Movement DetectionHTTP polling ui.activeSelectionsFusion360 API events (activeSelectionChanged, selectionEvent) do not respond to component selection in this version
Position Change ThresholdPosition 0.1mm, Rotation 0.5°Filter floating-point noise, avoid feedback loops

Thread Safety

Fusion360 API requires all document operations to run on the main thread, but WebSocket/HTTP runs on background threads.

  • Read operations (selection detection, position reading): Can be called directly from HTTP/WS background threads, works but not fully stable
  • Write operations (position update, cross-probe, delete): Commands received via WS are called directly
  • executeTextCommand: Can be safely called from background thread (Fusion executes internally on main thread)
  • Polling interval of 2 seconds reduces crash probability caused by thread contention

FAQ

Failed to connect to Fusion360

Check in order:

  1. Is Fusion360 running and the Add-In script is active
  2. Is port 8767/8768 occupied — Close Fusion360 and retry
  3. External interaction permission — Is it enabled in EDA extension settings
  4. Firewall — Check if Windows firewall is blocking the port

"Design OK" after import but no model visible

Make sure a component design document is open or created before import. Translator.Import imports the STEP into the currently active document.

Fusion360 freezes when importing large files

Fusion360's STEP import is a synchronous operation. The UI may become unresponsive during large file imports. It recovers automatically after import completes. The code uses time.sleep(3) to wait for import completion.

Fusion360 crashes after bidirectional interaction runs for a while

This is a Fusion360 API thread safety limitation. Background threads (HTTP/WS) reading Fusion API may compete with the main thread, causing crashes. Reducing polling frequency can help (currently 2 seconds).

Selecting a component in Fusion360 has no response in EDA

  1. Confirm bidirectional interaction is enabled (log should show Monitor enabled)
  2. Polling interval is 2 seconds, wait 1-2 seconds after selection
  3. Check if designator mapping was correctly established (log should show Mapping: X / Y matched)

Project Structure

pcb-export-to-fusion/
├── src/
│   └── index.ts                         # EDA extension main logic (TypeScript)
├── script/
│   ├── Interactive-with-fusion.py       # Python script
├── config/
│   ├── esbuild.common.ts                # Build configuration
│   └── esbuild.prod.ts
├── build/
│   ├── packaged.ts                      # Packaging script
│   └── dist/
├── locales/
│   ├── zh-Hans.json                     # Chinese translations
│   └── en.json                          # English translations
├── images/
│   └── logo.png                         # Extension icon
├── extension.json                       # Extension manifest
├── package.json
└── tsconfig.json

Fusion360 机电协同 -- 变更记录

1.1.1

优化

  • 使用新的logo

1.1.0

优化

  • 多语言优化

1.1.0

新功能

  • 自动新建文档:每次导出 3D 模型时自动创建新 Fusion 设计文档,不再需要手动新建
  • 选中高亮:交叉定位从闪烁效果改为选中状态 + 相机导航,高亮持续到用户点击其他位置

1.0.0

  • 初始版本
暂无数据
暂无数据

Comment

LoginorRegisterto add a comment
All Comments(1)
Sort by time|Sort by popularity

Type

PCB

Keyword

Fusion360PCBSTEP3DWebSocket机电协同

Extension Info

Versionv1.1.2
Author

EasyEDA

Published at2026-06-26 12:49:54
Name

mcad-integration-with-fusion360

UUID

c7e2a4f61b9d47e8b3d5c0a1e2f3d4b5

Works with^3.0.0
Report

Report abuse

Related links

Homepage:https://github.com/easyeda
Feedback:https://github.com/easyeda/eext-mcad-integration-with-fusion360/issues
Repository:https://github.com/easyeda/eext-mcad-integration-with-fusion360
Product
Online Editor(Pro Edition)
Online Editor(Std Edition)
Client Download
Education Edition
On-Premises-Hosting
Services
Prototyping - JLCPCB
Component Purchasing - LCSC
Open Source Hardware - OSHWLab
Policy Terms
Legal
Privacy Policy
Project License Agreement
Cookie Notice
Contribute
Thanks
Help
Tutorials (Pro Edition)
Tutorials (Std Edition)
Edition Update History (Pro Edition)
Edition Update History (Std Edition)
Forum
About Us
About Team
Contact Us

© 2026 EasyEDA All rights reserved

ISO/IEC
Cookie Notice
Our website uses essential cookies to help us ensure that it is working as expected, and uses optional analytics cookies to offer you a better browsing experience. To find out more, read our Cookie Notice