Skip to content

Advanced Operations

This page covers specialized operations for complex harness design tasks.


Copy Wire

Creates a new wire by copying properties from an existing wire and connecting it between specified pins.

When to use:

  • Creating parallel connections with same properties
  • Mirroring wire patterns
  • Replicating signal routing

How to use:

Via Context Menu:

  1. right click click on a wire row in a wire table
  2. Select Copy Wire
  3. left click click on the start pin, then the end pin

Right-click menu on wire Context menu: Wire row with Copy Wire option

Via Script:

javascript
runScriptCommand("copyWire", {
  prototypeWireQuery: "WIRE_NAME", // Wire to copy properties from
  startPinQuery: { componentName: "ECU1", pinName: "1" },
  endPinQuery: { componentName: "ECU2", pinName: "1" },
});

What Gets Copied

  • Wire color
  • Wire gauge
  • Part number
  • Other wire properties

A new wire is created with properties copied from the prototype wire, connected between the specified start and end pins.


Merge Anchors

Combines two anchor points into a single anchor - useful for cleaning up routing or creating junction points.

When to use:

  • Simplifying complex bundle routing
  • Creating clean junction points
  • Fixing overlapping anchors

How to use:

Via Context Menu:

  1. right click click on an anchor
  2. Select Merge with Another Anchor
  3. left click click on the second anchor to merge with

Merge with Another Anchor context menuContext menu: Merge with Another Anchor option

Via Script:

javascript
runScriptCommand("mergeAnchors", {
  main: { id: "anchor-id-1" },
  secondary: { id: "anchor-id-2" },
});

The main anchor is kept and the secondary anchor is merged into it.

Behavior:

  • All wires routing through the secondary anchor now route through the main anchor
  • Bundle segments reconnect to the main anchor
  • The secondary anchor is deleted

Make Sideview

Links an existing image or SVG to a component as its sideview - a visual representation of the connector shell (the physical connector body as seen from the side).

When to use:

  • Showing the physical connector appearance
  • Adding connector shell images from datasheets
  • Visual documentation for assembly

How to use:

Via Context Menu:

  1. Import or draw an SVG/image of the connector shell
  2. right click click on the SVG/image to open the context menu
  3. Select Create Sideview
  4. left click click on the component's wire table or pinout to link thesideview

SVG/Image context menu with sideview optionsContext menu: Create Sideview option

Via Script:

javascript
runScriptCommand("makeSideview", {
  image: { type: "image", query: { id: "image-id" } },
  component: { query: "J101" },
});

The image parameter specifies the SVG or image element to use, and component specifies which component to link it to.

Sideview Properties:

In the Inspector, you can configure:

PropertyDescription
ImageConnector shell image (SVG or raster)
Pin labelsShow/hide pin numbers
OrientationRotate the view
ScaleAdjust size

Sideview in Inspector Sideview configuration in Inspector


Convert to Sideview

Converts an SVG or image into a sideview linked to a component.

When to use:

  • Converting imported connector shell images into functional sideviews
  • Linking graphics to components

How to use:

Via Context Menu:

  1. right click click on the SVG/image to open the context menu
  2. Select Convert to Sideview
  3. left click click on the component's wire table or pinout to link thesideview

Via Script:

javascript
runScriptCommand("convertToSideview", {
  type: "svg", // or "image"
  query: { id: "svg-element-id" },
});

The command converts the SVG/image into a sideview. You then select which component to link it to.


Bundle Splice Creation

Creates a named splice point at a bundle junction — important for manufacturing documentation.

When to use:

  • Marking wire splice locations
  • Creating branch points in harness
  • Documenting where wires split off

How to use:

Via Tool (Recommended):

  1. Select the Bundle Splice tool from the Toolbar
  2. left click click on a bundle anchor point
  3. Fill in the splice properties dialog (name, part number, appearance)
  4. Submit to place the splice

Via Context Menu (converting existing image):

  1. Import an SVG or image to use as the splice marker
  2. Merge the image's anchor with an anchor that is shared by two bundles (see Merge Anchors)
  3. right click click on the SVG/image
  4. Select Convert to Bundle Splice — this option only appears when the image's anchor is shared by two bundles
  5. The image becomes a splice marker at that junction

Convert to Bundle Splice context menuContext menu: Convert to Bundle Splice option

Bundle splice creation dialog Bundle splice creation dialog

Script API

Bundle splice creation via script command is not currently implemented. Use the toolbar tool or context menu conversion.

Splice Properties:

PropertyDescription
NameIdentifier on drawing
Part NumberManufacturing PN
Covering MaterialMaterial type
Covering ColorColor code

Attach All to Anchor

Converts all independent root anchors on the sheet into children of a single parent anchor. Child anchors become positioned relative to the parent and move together with it.

When to use:

This is essential when creating library components. A library sheet often contains a component plus related elements (dimensions, images, text labels). By attaching all anchors to the component's main anchor, everything moves as a unit when a user places the library item on their drawing.

How to use:

  1. Create your component and any related elements (dimensions, images, etc.)
  2. right click click on the component's root anchor
  3. Select Attach all to anchor

All other root anchors on the sheet are re-parented to the selected anchor.

Library template with all elements attached to one anchorLibrary template: all elements attached to a single anchor for unified placement


Rehang Wire

Moves a wire connection from one pin to another - useful for fixing routing errors or reassigning connections.

When to use:

  • Correcting wiring mistakes
  • Reassigning connections during redesign
  • Moving wires between pins on same or different components

How to use:

Via Drag:

  1. Select the wire endpoint
  2. Drag to the new pin
  3. Release to connect

Via Script:

You can rehang the start pin, end pin, or both:

javascript
// Rehang start pin only:
runScriptCommand("rehangWire", {
  wire: "PWR_MAIN",
  newStart: { componentName: "ECU2", pinName: "1" },
});

// Rehang end pin only:
runScriptCommand("rehangWire", {
  wire: "PWR_MAIN",
  newEnd: { componentName: "ECU3", pinName: "2" },
});

// Rehang both ends:
runScriptCommand("rehangWire", {
  wire: "PWR_MAIN",
  newStart: { componentName: "ECU2", pinName: "1" },
  newEnd: { componentName: "ECU3", pinName: "2" },
});

Important notes:

  • The wire maintains its properties (color, gauge, etc.)
  • Length recalculates based on new routing
  • newStart and newEnd can be used independently or together

Bundle Break Operations

Bundle breaks are visual markers indicating that the drawn bundle length does not reflect its actual physical length.

Add Bundle Break:

Inserts a visual break in a bundle segment:

Via Tool:

  1. Select the Bundle Break tool from the toolbar
  2. left click click on the bundle where you want the break

Via Script:

javascript
runScriptCommand("drawBundleBreak", {
  bundleName: "MAIN_TRUNK",
  offset: 0.5, // Position along bundle (0.0 = start, 1.0 = end)
});

Remove Bundle Break:

Via Context Menu:

  1. right click click on a bundle part
  2. Select Remove Break

Via Script:

javascript
runScriptCommand("removeBundleBreak", {
  bundleName: "MAIN_TRUNK",
});

When to use bundle breaks:

  • When the drawn bundle is visually shortened but represents a longer real-world path
  • When bundle length in the drawing doesn't match the physical harness length
  • When a bundle visually terminates at the sheet edge but continues in reality

Bundle Bend Operations

Add or remove bend points (corners) in bundles for routing control.

Add Bundle Bend:

Splits a bundle segment into two at the bend point:

Via Context Menu:

  1. right click click on a bundle segment
  2. Select Add Bend
  3. The bend is placed at the click location

Via Script:

javascript
runScriptCommand("addBundleBend", {
  bundleName: "MAIN_TRUNK",
  point: { x: 250, y: 200 },
});

Remove Bundle Bend:

Merges two adjacent segments back into one:

Via Context Menu:

  1. right click click on a bend anchor (the point where two segments meet)
  2. Select Remove Bend

Via Script:

javascript
runScriptCommand("removeBundleBend", {
  anchorID: "bend-anchor-id",
});

WARNING

Removing a bend also removes any bundle breaks on the affected segments.


Sheet Wire Table

A sheet wire table shows all wires on the current sheet in a single table.

How to create:

Via Command Palette:

  1. Open the Command Palette
  2. Run Create sheet wire table

Each sheet can have at most one sheet wire table. Component-level wire tables are created automatically as part of component creation.

Sheet wire table Sheet wire table


Practical Examples

Example 1: Merging Nearby Anchors

javascript
// Get all anchors in the project
const result = runScriptCommand("queryAnchor", {});
const anchors = result.elements;

// Find pairs of anchors that are close together
for (let i = 0; i < anchors.length; i++) {
  for (let j = i + 1; j < anchors.length; j++) {
    const a = anchors[i];
    const b = anchors[j];
    if (Math.abs(a.x - b.x) < 10 && Math.abs(a.y - b.y) < 10) {
      // Merge the second anchor into the first
      runScriptCommand("mergeAnchors", {
        main: { id: a.id },
        secondary: { id: b.id },
      });
      scriptConsole.log(`Merged anchor ${b.id} into ${a.id}`);
    }
  }
}

Finding bundle anchors

queryAnchor doesn't support filtering by bundle. Query all anchors and filter in JavaScript based on position or other properties.

Example 2: Linking Connector Shell Images as Sideviews

javascript
// Query all images and components
const images = runScriptCommand("queryImage", {}).elements;
const components = runScriptCommand("queryComponent", {}).elements;

// Match images to nearby components and create sideviews
for (const img of images) {
  // Find the closest component to this image
  let closest = null;
  let minDist = Infinity;
  for (const comp of components) {
    const dist = Math.sqrt((img.x - comp.x) ** 2 + (img.y - comp.y) ** 2);
    if (dist < minDist) {
      minDist = dist;
      closest = comp;
    }
  }

  if (closest && minDist < 200) {
    runScriptCommand("makeSideview", {
      image: { type: "image", query: { id: img.id } },
      component: { query: closest.name },
    });
    scriptConsole.log(`Linked image to ${closest.name}`);
  }
}

Example 3: Adding Breaks to Long Bundles

javascript
// Get all bundles and add breaks to those longer than 500mm
const result = runScriptCommand("queryBundle", {});
const bundles = result.elements;

for (const bundle of bundles) {
  if (bundle.length > 500) {
    // Add a break in the middle of long bundles
    runScriptCommand("drawBundleBreak", {
      bundleName: bundle.name,
      offset: 0.5,
    });
    scriptConsole.log(`Added break to ${bundle.name}`);
  }
}

Context Menu Quick Reference

right click click on any element to access context-sensitive operations. The

available options depend on what you've selected.

By Element Type

Components are represented by wire tables, sideviews, and pinouts.

right click click on these elements shows component-level options plus

element-specific options.

ElementAvailable Actions
Bundle PartAdd Bend, Add Break / Remove Break, Open Inspector
PinoutFlip Component, Add Pins, Open Inspector
SideviewFlip Component, Open Inspector
Wire Table (caption)Flip Component, Open Inspector
Wire Table (row)Copy Wire, Open Inspector
Pin (in pinout)Add Start/End Wire, Remove Wire, Remove Pin, Open Inspector
AnchorAttach All to Anchor, Merge with Another Anchor, Remove Bend (bend anchors), Open Inspector
SVGConvert to Sideview, Convert to Bundle Splice, Use as Background, Create Sideview, Open Inspector
ImageConvert to Sideview, Convert to Bundle Splice, Use as Background, Create Sideview, Open Inspector
SelectionCopy Selection, Copy Selection to (sheet), Paste
Script (sidebar)Delete

Note: Some options are contextual:

  • After selecting "Convert to Sideview" or "Create Sideview", click on a component's wire table or pinout to link the sideview
  • "Convert to Bundle Splice" appears only when the SVG/image anchor is merged with an anchor shared by two bundles
  • Anchor options appear only for root anchors

Right-click on wire row Context menu: Wire row in wire table

Right-click on wire table captionContext menu: Wire table caption

Right-click on bundle Context menu: Bundle

Right-click on pinout Context menu: Pinout

Right-click on anchor Context menu: Anchor

Right-click on pin in pinout Context menu: Pin in pinout

Right-click on SVG/image Context menu: SVG/Image

Operations Quick Reference

OperationTarget ElementScript Command
Copy WireWire rowcopyWire
Merge AnchorsAnchormergeAnchors
Make SideviewSVG/ImagemakeSideview
Convert to SideviewSVG/ImageconvertToSideview
Convert to SpliceSVG/Image-
Add Bundle BendBundle PartaddBundleBend
Remove Bundle BendBend AnchorremoveBundleBend
Add Bundle BreakBundle (via tool)drawBundleBreak
Remove Bundle BreakBundle PartremoveBundleBreak
Rehang WireWire endpointrehangWire
Flip ComponentComponent-
Attach All to AnchorAnchor-

Next Steps