@windypro-rourou/dsh-eda 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -119
- package/cordis.patch.yml +9 -7
- package/lib/board.js +80 -0
- package/lib/client.js +2 -2
- package/lib/index.js +339 -11
- package/lib/installer.js +4 -4
- package/lib/skill.js +138 -0
- package/package.json +3 -2
- package/skill/INDEX.md +193 -0
- package/skill/README.official.md +125 -0
- package/skill/README.zh-Hans.official.md +125 -0
- package/skill/SKILL.md +746 -0
- package/skill/format/index.md +152 -0
- package/skill/format/pcb/3d.md +166 -0
- package/skill/format/pcb/attr.md +63 -0
- package/skill/format/pcb/common.md +306 -0
- package/skill/format/pcb/component.md +132 -0
- package/skill/format/pcb/dimension.md +58 -0
- package/skill/format/pcb/index.md +17 -0
- package/skill/format/pcb/obj.md +43 -0
- package/skill/format/pcb/pad_via.md +151 -0
- package/skill/format/pcb/panel.md +64 -0
- package/skill/format/pcb/partition.md +43 -0
- package/skill/format/pcb/primitive.md +196 -0
- package/skill/format/pcb/rule.md +71 -0
- package/skill/format/pcb/shape.md +441 -0
- package/skill/format/pcb/text.md +62 -0
- package/skill/format/project/blob.md +30 -0
- package/skill/format/project/common.md +42 -0
- package/skill/format/project/group.md +62 -0
- package/skill/format/project/index.md +12 -0
- package/skill/format/project/instance.md +32 -0
- package/skill/format/project/meta.md +189 -0
- package/skill/format/project/variant.md +30 -0
- package/skill/format/schematic/attr.md +41 -0
- package/skill/format/schematic/common.md +47 -0
- package/skill/format/schematic/component.md +91 -0
- package/skill/format/schematic/index.md +14 -0
- package/skill/format/schematic/obj.md +41 -0
- package/skill/format/schematic/pin.md +59 -0
- package/skill/format/schematic/shape.md +231 -0
- package/skill/format/schematic/structure.md +53 -0
- package/skill/format/schematic/table.md +109 -0
- package/skill/format/schematic/text.md +47 -0
- package/skill/format/schematic/wire.md +132 -0
- package/skill/guide/ancillary-projects/pro-api-sdk.md +1 -0
- package/skill/guide/ancillary-projects/pro-api-types.md +5 -0
- package/skill/guide/ancillary-projects.md +10 -0
- package/skill/guide/error-handling.md +38 -0
- package/skill/guide/extension-json.md +135 -0
- package/skill/guide/extensions-marketplace.md +61 -0
- package/skill/guide/how-to-start.md +301 -0
- package/skill/guide/i18n.md +57 -0
- package/skill/guide/index.md +7 -0
- package/skill/guide/inline-frame.md +20 -0
- package/skill/guide/invoke-apis.md +81 -0
- package/skill/guide/stability.md +37 -0
- package/skill/references/_index.md +398 -0
- package/skill/references/_quick-reference.md +3028 -0
- package/skill/references/classes/DMT_Board.md +533 -0
- package/skill/references/classes/DMT_EditorControl.md +1736 -0
- package/skill/references/classes/DMT_Event.md +356 -0
- package/skill/references/classes/DMT_Folder.md +775 -0
- package/skill/references/classes/DMT_Panel.md +531 -0
- package/skill/references/classes/DMT_Pcb.md +575 -0
- package/skill/references/classes/DMT_Project.md +573 -0
- package/skill/references/classes/DMT_Schematic.md +1477 -0
- package/skill/references/classes/DMT_SelectControl.md +96 -0
- package/skill/references/classes/DMT_Team.md +172 -0
- package/skill/references/classes/DMT_Workspace.md +198 -0
- package/skill/references/classes/EDA.md +961 -0
- package/skill/references/classes/IPCB_ComplexPolygon.md +299 -0
- package/skill/references/classes/IPCB_Polygon.md +175 -0
- package/skill/references/classes/IPCB_PrimitiveArc.md +1901 -0
- package/skill/references/classes/IPCB_PrimitiveAttribute.md +2993 -0
- package/skill/references/classes/IPCB_PrimitiveComponent.md +2627 -0
- package/skill/references/classes/IPCB_PrimitiveComponentPad.md +410 -0
- package/skill/references/classes/IPCB_PrimitiveDimension.md +1419 -0
- package/skill/references/classes/IPCB_PrimitiveFill.md +1325 -0
- package/skill/references/classes/IPCB_PrimitiveImage.md +1461 -0
- package/skill/references/classes/IPCB_PrimitiveLine.md +1639 -0
- package/skill/references/classes/IPCB_PrimitiveObject.md +1700 -0
- package/skill/references/classes/IPCB_PrimitivePad.md +3155 -0
- package/skill/references/classes/IPCB_PrimitivePolyline.md +1193 -0
- package/skill/references/classes/IPCB_PrimitivePour.md +1858 -0
- package/skill/references/classes/IPCB_PrimitivePoured.md +556 -0
- package/skill/references/classes/IPCB_PrimitiveRegion.md +1332 -0
- package/skill/references/classes/IPCB_PrimitiveString.md +2315 -0
- package/skill/references/classes/IPCB_PrimitiveVia.md +1588 -0
- package/skill/references/classes/ISCH_PrimitiveArc.md +1676 -0
- package/skill/references/classes/ISCH_PrimitiveAttribute.md +2541 -0
- package/skill/references/classes/ISCH_PrimitiveBus.md +973 -0
- package/skill/references/classes/ISCH_PrimitiveCbbSymbolComponent.md +260 -0
- package/skill/references/classes/ISCH_PrimitiveCircle.md +1392 -0
- package/skill/references/classes/ISCH_PrimitiveComponent.md +2913 -0
- package/skill/references/classes/ISCH_PrimitiveComponentPin.md +155 -0
- package/skill/references/classes/ISCH_PrimitiveObject.md +960 -0
- package/skill/references/classes/ISCH_PrimitivePin.md +2402 -0
- package/skill/references/classes/ISCH_PrimitivePolygon.md +1028 -0
- package/skill/references/classes/ISCH_PrimitiveRectangle.md +1777 -0
- package/skill/references/classes/ISCH_PrimitiveText.md +1771 -0
- package/skill/references/classes/ISCH_PrimitiveWire.md +973 -0
- package/skill/references/classes/LIB_3DModel.md +780 -0
- package/skill/references/classes/LIB_Cbb.md +957 -0
- package/skill/references/classes/LIB_Classification.md +965 -0
- package/skill/references/classes/LIB_Device.md +1221 -0
- package/skill/references/classes/LIB_Footprint.md +1153 -0
- package/skill/references/classes/LIB_LibrariesList.md +329 -0
- package/skill/references/classes/LIB_PanelLibrary.md +855 -0
- package/skill/references/classes/LIB_SelectControl.md +89 -0
- package/skill/references/classes/LIB_SimulationModel.md +821 -0
- package/skill/references/classes/LIB_Symbol.md +1195 -0
- package/skill/references/classes/PCB_Document.md +1754 -0
- package/skill/references/classes/PCB_Drc.md +3375 -0
- package/skill/references/classes/PCB_Event.md +1081 -0
- package/skill/references/classes/PCB_Layer.md +1911 -0
- package/skill/references/classes/PCB_ManufactureData.md +2968 -0
- package/skill/references/classes/PCB_MathPolygon.md +785 -0
- package/skill/references/classes/PCB_Net.md +1128 -0
- package/skill/references/classes/PCB_Primitive.md +217 -0
- package/skill/references/classes/PCB_PrimitiveArc.md +894 -0
- package/skill/references/classes/PCB_PrimitiveAttribute.md +717 -0
- package/skill/references/classes/PCB_PrimitiveComponent.md +1050 -0
- package/skill/references/classes/PCB_PrimitiveDimension.md +833 -0
- package/skill/references/classes/PCB_PrimitiveFill.md +861 -0
- package/skill/references/classes/PCB_PrimitiveImage.md +875 -0
- package/skill/references/classes/PCB_PrimitiveLine.md +858 -0
- package/skill/references/classes/PCB_PrimitiveObject.md +800 -0
- package/skill/references/classes/PCB_PrimitivePad.md +944 -0
- package/skill/references/classes/PCB_PrimitivePolyline.md +819 -0
- package/skill/references/classes/PCB_PrimitivePour.md +845 -0
- package/skill/references/classes/PCB_PrimitivePoured.md +363 -0
- package/skill/references/classes/PCB_PrimitiveRegion.md +799 -0
- package/skill/references/classes/PCB_PrimitiveString.md +910 -0
- package/skill/references/classes/PCB_PrimitiveVia.md +765 -0
- package/skill/references/classes/PCB_RayTracerEngine.md +263 -0
- package/skill/references/classes/PCB_SelectControl.md +495 -0
- package/skill/references/classes/PNL_Document.md +83 -0
- package/skill/references/classes/SCH_Document.md +809 -0
- package/skill/references/classes/SCH_Drc.md +242 -0
- package/skill/references/classes/SCH_Event.md +583 -0
- package/skill/references/classes/SCH_ManufactureData.md +1205 -0
- package/skill/references/classes/SCH_Net.md +200 -0
- package/skill/references/classes/SCH_Netlist.md +191 -0
- package/skill/references/classes/SCH_Primitive.md +337 -0
- package/skill/references/classes/SCH_PrimitiveArc.md +692 -0
- package/skill/references/classes/SCH_PrimitiveAttribute.md +590 -0
- package/skill/references/classes/SCH_PrimitiveBus.md +624 -0
- package/skill/references/classes/SCH_PrimitiveCircle.md +683 -0
- package/skill/references/classes/SCH_PrimitiveComponent.md +2240 -0
- package/skill/references/classes/SCH_PrimitiveObject.md +666 -0
- package/skill/references/classes/SCH_PrimitivePin.md +754 -0
- package/skill/references/classes/SCH_PrimitivePolygon.md +627 -0
- package/skill/references/classes/SCH_PrimitiveRectangle.md +731 -0
- package/skill/references/classes/SCH_PrimitiveText.md +746 -0
- package/skill/references/classes/SCH_PrimitiveWire.md +703 -0
- package/skill/references/classes/SCH_SelectControl.md +520 -0
- package/skill/references/classes/SCH_SimulationEngine.md +133 -0
- package/skill/references/classes/SCH_Utils.md +121 -0
- package/skill/references/classes/SYS_ClientUrl.md +173 -0
- package/skill/references/classes/SYS_Dialog.md +825 -0
- package/skill/references/classes/SYS_Environment.md +502 -0
- package/skill/references/classes/SYS_FileManager.md +1686 -0
- package/skill/references/classes/SYS_FileSystem.md +1171 -0
- package/skill/references/classes/SYS_FontManager.md +224 -0
- package/skill/references/classes/SYS_FormatConversion.md +349 -0
- package/skill/references/classes/SYS_HeaderMenu.md +479 -0
- package/skill/references/classes/SYS_I18n.md +861 -0
- package/skill/references/classes/SYS_IFrame.md +535 -0
- package/skill/references/classes/SYS_LoadingAndProgressBar.md +246 -0
- package/skill/references/classes/SYS_Log.md +424 -0
- package/skill/references/classes/SYS_Math.md +1565 -0
- package/skill/references/classes/SYS_Message.md +363 -0
- package/skill/references/classes/SYS_MessageBox.md +285 -0
- package/skill/references/classes/SYS_MessageBus.md +1618 -0
- package/skill/references/classes/SYS_PanelControl.md +696 -0
- package/skill/references/classes/SYS_RightClickMenu.md +175 -0
- package/skill/references/classes/SYS_Setting.md +85 -0
- package/skill/references/classes/SYS_ShortcutKey.md +623 -0
- package/skill/references/classes/SYS_Storage.md +484 -0
- package/skill/references/classes/SYS_Timer.md +447 -0
- package/skill/references/classes/SYS_ToastMessage.md +194 -0
- package/skill/references/classes/SYS_Tool.md +241 -0
- package/skill/references/classes/SYS_Unit.md +594 -0
- package/skill/references/classes/SYS_WebSocket.md +401 -0
- package/skill/references/classes/SYS_Window.md +850 -0
- package/skill/references/enums/EDMT_EditorDocumentType.md +279 -0
- package/skill/references/enums/EDMT_EditorSplitScreenDirection.md +48 -0
- package/skill/references/enums/EDMT_EditorTabEventType.md +63 -0
- package/skill/references/enums/EDMT_IndicatorMarkerType.md +81 -0
- package/skill/references/enums/EDMT_ItemType.md +158 -0
- package/skill/references/enums/EDMT_ProjectCollaborationMode.md +48 -0
- package/skill/references/enums/ELIB_DeviceJlcLibraryCategory.md +48 -0
- package/skill/references/enums/ELIB_LibraryType.md +114 -0
- package/skill/references/enums/ELIB_PreviewType.md +70 -0
- package/skill/references/enums/ELIB_SimulationModelType.md +48 -0
- package/skill/references/enums/ELIB_SymbolType.md +125 -0
- package/skill/references/enums/EPCB_AutoRoutingCornerStyle.md +48 -0
- package/skill/references/enums/EPCB_AutoRoutingExistingPrimitiveMode.md +48 -0
- package/skill/references/enums/EPCB_AutoRoutingOptimization.md +48 -0
- package/skill/references/enums/EPCB_DocumentCanvasUpdateCalculationActiveStatus.md +48 -0
- package/skill/references/enums/EPCB_DocumentRatlineCalculatingActiveStatus.md +52 -0
- package/skill/references/enums/EPCB_InactiveLayerDisplayMode.md +59 -0
- package/skill/references/enums/EPCB_LayerColorConfiguration.md +81 -0
- package/skill/references/enums/EPCB_LayerId.md +882 -0
- package/skill/references/enums/EPCB_LayerStatus.md +59 -0
- package/skill/references/enums/EPCB_LayerType.md +114 -0
- package/skill/references/enums/EPCB_MouseEventType.md +59 -0
- package/skill/references/enums/EPCB_NetEventType.md +59 -0
- package/skill/references/enums/EPCB_PcbPlateType.md +48 -0
- package/skill/references/enums/EPCB_PdfOutputMethod.md +59 -0
- package/skill/references/enums/EPCB_PrimitiveArcInteractiveMode.md +48 -0
- package/skill/references/enums/EPCB_PrimitiveDimensionType.md +59 -0
- package/skill/references/enums/EPCB_PrimitiveEventType.md +59 -0
- package/skill/references/enums/EPCB_PrimitiveFillMode.md +63 -0
- package/skill/references/enums/EPCB_PrimitivePadHeatWeldingConnectionMethod.md +59 -0
- package/skill/references/enums/EPCB_PrimitivePadHoleType.md +59 -0
- package/skill/references/enums/EPCB_PrimitivePadShapeType.md +81 -0
- package/skill/references/enums/EPCB_PrimitivePadType.md +59 -0
- package/skill/references/enums/EPCB_PrimitivePourFillMethod.md +59 -0
- package/skill/references/enums/EPCB_PrimitiveRegionRuleType.md +96 -0
- package/skill/references/enums/EPCB_PrimitiveStringAlignMode.md +125 -0
- package/skill/references/enums/EPCB_PrimitiveType.md +202 -0
- package/skill/references/enums/EPCB_PrimitiveViaType.md +59 -0
- package/skill/references/enums/ESCH_DynamicSimulationEnginePullEventType.md +103 -0
- package/skill/references/enums/ESCH_DynamicSimulationEnginePushEventType.md +81 -0
- package/skill/references/enums/ESCH_ExportDocumentFileType.md +59 -0
- package/skill/references/enums/ESCH_MouseEventType.md +48 -0
- package/skill/references/enums/ESCH_PrimitiveComponentType.md +125 -0
- package/skill/references/enums/ESCH_PrimitiveEventType.md +70 -0
- package/skill/references/enums/ESCH_PrimitiveFillStyle.md +114 -0
- package/skill/references/enums/ESCH_PrimitiveLineType.md +70 -0
- package/skill/references/enums/ESCH_PrimitivePinShape.md +70 -0
- package/skill/references/enums/ESCH_PrimitivePinType.md +147 -0
- package/skill/references/enums/ESCH_PrimitiveTextAlignMode.md +125 -0
- package/skill/references/enums/ESCH_PrimitiveType.md +180 -0
- package/skill/references/enums/ESCH_SimulationNetlistType.md +37 -0
- package/skill/references/enums/ESCH_SpiceSimulationEnginePullEventType.md +48 -0
- package/skill/references/enums/ESCH_SpiceSimulationEnginePushEventType.md +70 -0
- package/skill/references/enums/ESYS_BottomPanelTab.md +81 -0
- package/skill/references/enums/ESYS_HeaderMenuEnvironment.md +158 -0
- package/skill/references/enums/ESYS_ImportProjectBoardOutlineSource.md +52 -0
- package/skill/references/enums/ESYS_ImportProjectImportOption.md +59 -0
- package/skill/references/enums/ESYS_ImportProjectSchematicObjectStyle.md +48 -0
- package/skill/references/enums/ESYS_ImportProjectViaSolderMaskExpansion.md +52 -0
- package/skill/references/enums/ESYS_LeftPanelTab.md +81 -0
- package/skill/references/enums/ESYS_LogType.md +103 -0
- package/skill/references/enums/ESYS_NetlistType.md +114 -0
- package/skill/references/enums/ESYS_RightPanelTab.md +202 -0
- package/skill/references/enums/ESYS_ShortcutKeyEffectiveEditorRange.md +191 -0
- package/skill/references/enums/ESYS_ShortcutKeyEffectiveEditorScene.md +92 -0
- package/skill/references/enums/ESYS_StartPageQuickStartItem.md +206 -0
- package/skill/references/enums/ESYS_Theme.md +48 -0
- package/skill/references/enums/ESYS_ToastMessageType.md +81 -0
- package/skill/references/enums/ESYS_Unit.md +103 -0
- package/skill/references/enums/ESYS_WindowEventType.md +48 -0
- package/skill/references/enums/ESYS_WindowOpenTarget.md +48 -0
- package/skill/references/enums/NetportDeviceName.md +147 -0
- package/skill/references/enums/SchToolBarDeviceName.md +279 -0
- package/skill/references/interfaces/BoardProps.md +169 -0
- package/skill/references/interfaces/ButtonProps.md +169 -0
- package/skill/references/interfaces/CheckBoxProps.md +196 -0
- package/skill/references/interfaces/ComponentPropsMap.md +448 -0
- package/skill/references/interfaces/DialogProps.md +385 -0
- package/skill/references/interfaces/FlexItemProps.md +116 -0
- package/skill/references/interfaces/FlexProps.md +224 -0
- package/skill/references/interfaces/GridItemProps.md +143 -0
- package/skill/references/interfaces/GridProps.md +143 -0
- package/skill/references/interfaces/IDMT_BoardItem.md +171 -0
- package/skill/references/interfaces/IDMT_BriefProjectItem.md +171 -0
- package/skill/references/interfaces/IDMT_EditorDocumentItem.md +169 -0
- package/skill/references/interfaces/IDMT_EditorSplitScreenItem.md +173 -0
- package/skill/references/interfaces/IDMT_EditorTabItem.md +169 -0
- package/skill/references/interfaces/IDMT_FolderItem.md +225 -0
- package/skill/references/interfaces/IDMT_IndicatorMarkerShape.md +393 -0
- package/skill/references/interfaces/IDMT_PanelItem.md +144 -0
- package/skill/references/interfaces/IDMT_PcbItem.md +171 -0
- package/skill/references/interfaces/IDMT_ProjectItem.md +143 -0
- package/skill/references/interfaces/IDMT_SchematicItem.md +225 -0
- package/skill/references/interfaces/IDMT_SchematicPageItem.md +198 -0
- package/skill/references/interfaces/IDMT_TeamItem.md +144 -0
- package/skill/references/interfaces/IDMT_WorkspaceItem.md +117 -0
- package/skill/references/interfaces/IDesignPortal.md +103 -0
- package/skill/references/interfaces/ILIB_3DModelItem.md +198 -0
- package/skill/references/interfaces/ILIB_3DModelSearchItem.md +277 -0
- package/skill/references/interfaces/ILIB_CbbItem.md +225 -0
- package/skill/references/interfaces/ILIB_CbbSearchItem.md +277 -0
- package/skill/references/interfaces/ILIB_ClassificationIndex.md +150 -0
- package/skill/references/interfaces/ILIB_DeviceAssociationItem.md +210 -0
- package/skill/references/interfaces/ILIB_DeviceExtendPropertyItem.md +304 -0
- package/skill/references/interfaces/ILIB_DeviceItem.md +279 -0
- package/skill/references/interfaces/ILIB_DevicePropertiesForSearch.md +250 -0
- package/skill/references/interfaces/ILIB_DeviceSearchItem.md +521 -0
- package/skill/references/interfaces/ILIB_ExtendLibrary3DModelFunctions.md +64 -0
- package/skill/references/interfaces/ILIB_ExtendLibraryCbbFunctions.md +99 -0
- package/skill/references/interfaces/ILIB_ExtendLibraryClassificationIndex.md +150 -0
- package/skill/references/interfaces/ILIB_ExtendLibraryDeviceFunctions.md +157 -0
- package/skill/references/interfaces/ILIB_ExtendLibraryFootprintFunctions.md +63 -0
- package/skill/references/interfaces/ILIB_ExtendLibraryFunctions.md +123 -0
- package/skill/references/interfaces/ILIB_ExtendLibraryItem.md +97 -0
- package/skill/references/interfaces/ILIB_ExtendLibraryItemIndex.md +98 -0
- package/skill/references/interfaces/ILIB_ExtendLibrarySearchProperty.md +115 -0
- package/skill/references/interfaces/ILIB_ExtendLibrarySearchResult.md +169 -0
- package/skill/references/interfaces/ILIB_ExtendLibrarySearchResultDataLine.md +234 -0
- package/skill/references/interfaces/ILIB_ExtendLibrarySymbolFunctions.md +105 -0
- package/skill/references/interfaces/ILIB_ExtendLibraryUserIndex.md +96 -0
- package/skill/references/interfaces/ILIB_FootprintItem.md +198 -0
- package/skill/references/interfaces/ILIB_FootprintPropertiesForSearch.md +61 -0
- package/skill/references/interfaces/ILIB_FootprintSearchItem.md +277 -0
- package/skill/references/interfaces/ILIB_LibraryInfo.md +92 -0
- package/skill/references/interfaces/ILIB_LibraryItem.md +115 -0
- package/skill/references/interfaces/ILIB_PanelLibraryItem.md +198 -0
- package/skill/references/interfaces/ILIB_PanelLibrarySearchItem.md +277 -0
- package/skill/references/interfaces/ILIB_SimulationModelItem.md +306 -0
- package/skill/references/interfaces/ILIB_SimulationModelSearchItem.md +304 -0
- package/skill/references/interfaces/ILIB_SymbolItem.md +279 -0
- package/skill/references/interfaces/ILIB_SymbolPropertiesForSearch.md +61 -0
- package/skill/references/interfaces/ILIB_SymbolSearchItem.md +304 -0
- package/skill/references/interfaces/IPCB_AutoLayoutResult.md +169 -0
- package/skill/references/interfaces/IPCB_AutoRoutingProps.md +220 -0
- package/skill/references/interfaces/IPCB_AutoRoutingResult.md +169 -0
- package/skill/references/interfaces/IPCB_BomPropertiesTableColumns.md +169 -0
- package/skill/references/interfaces/IPCB_DifferentialPairItem.md +115 -0
- package/skill/references/interfaces/IPCB_DiscretizeOptions.md +65 -0
- package/skill/references/interfaces/IPCB_DiscretizedPoint.md +88 -0
- package/skill/references/interfaces/IPCB_EqualLengthNetGroupItem.md +115 -0
- package/skill/references/interfaces/IPCB_LayerItem.md +277 -0
- package/skill/references/interfaces/IPCB_NetClassItem.md +115 -0
- package/skill/references/interfaces/IPCB_NetInfo.md +115 -0
- package/skill/references/interfaces/IPCB_PadPairGroupItem.md +88 -0
- package/skill/references/interfaces/IPCB_PadPairMinWireLengthItem.md +88 -0
- package/skill/references/interfaces/IPCB_PhysicalStackingConfiguration.md +115 -0
- package/skill/references/interfaces/IPCB_Primitive.md +218 -0
- package/skill/references/interfaces/IPCB_PrimitiveAPI.md +175 -0
- package/skill/references/interfaces/IPCB_PrimitivePadHeatWelding.md +151 -0
- package/skill/references/interfaces/IPCB_PrimitivePouredPourFill.md +142 -0
- package/skill/references/interfaces/IPCB_PrimitiveSolderMaskAndPasteMaskExpansion.md +154 -0
- package/skill/references/interfaces/IPCB_SubstratePhysicalProperties.md +88 -0
- package/skill/references/interfaces/IRawNet.md +103 -0
- package/skill/references/interfaces/IRawPureSchematic.md +80 -0
- package/skill/references/interfaces/IRawSchematic.md +103 -0
- package/skill/references/interfaces/IRawWire.md +149 -0
- package/skill/references/interfaces/ISCH_DrcError.md +142 -0
- package/skill/references/interfaces/ISCH_DrcErrorPrimitive.md +142 -0
- package/skill/references/interfaces/ISCH_ExportPngResolution.md +94 -0
- package/skill/references/interfaces/ISCH_NetInfo.md +88 -0
- package/skill/references/interfaces/ISCH_Primitive.md +219 -0
- package/skill/references/interfaces/ISCH_PrimitiveAPI.md +175 -0
- package/skill/references/interfaces/ISCH_ProjectNetInfo.md +142 -0
- package/skill/references/interfaces/ISCH_WireInfo.md +169 -0
- package/skill/references/interfaces/ISYS_FileSystemFileList.md +169 -0
- package/skill/references/interfaces/ISYS_HeaderMenuSub1MenuItem.md +174 -0
- package/skill/references/interfaces/ISYS_HeaderMenuSub2MenuItem.md +147 -0
- package/skill/references/interfaces/ISYS_HeaderMenuTopMenuItem.md +115 -0
- package/skill/references/interfaces/ISYS_HeaderMenus.md +408 -0
- package/skill/references/interfaces/ISYS_LogLine.md +115 -0
- package/skill/references/interfaces/ISYS_MathBBox.md +142 -0
- package/skill/references/interfaces/ISYS_MathPoint.md +88 -0
- package/skill/references/interfaces/ISYS_MathPolygonWithHoles.md +92 -0
- package/skill/references/interfaces/ISYS_MessageBusTask.md +115 -0
- package/skill/references/interfaces/ISYS_MultilingualLanguagesData.md +13 -0
- package/skill/references/interfaces/ISYS_PcbComparisonResponse.md +115 -0
- package/skill/references/interfaces/ISYS_RightClickMenuItem.md +174 -0
- package/skill/references/interfaces/ISYS_ShortcutKeyData.md +169 -0
- package/skill/references/interfaces/ISYS_ShortcutKeyDataWithCallFn.md +62 -0
- package/skill/references/interfaces/ISYS_ShortcutKeyDataWithUserDefinedShortcutKey.md +62 -0
- package/skill/references/interfaces/ISYS_WindowEventListenerRemovableObject.md +109 -0
- package/skill/references/interfaces/IconProps.md +88 -0
- package/skill/references/interfaces/ImageProps.md +115 -0
- package/skill/references/interfaces/InputProps.md +520 -0
- package/skill/references/interfaces/ListChildren.md +223 -0
- package/skill/references/interfaces/ListProps.md +223 -0
- package/skill/references/interfaces/ModalProps.md +358 -0
- package/skill/references/interfaces/RadioGroupProps.md +196 -0
- package/skill/references/interfaces/RadioItem.md +115 -0
- package/skill/references/interfaces/ScrollerProps.md +169 -0
- package/skill/references/interfaces/SelectListItem.md +142 -0
- package/skill/references/interfaces/SelectProps.md +169 -0
- package/skill/references/interfaces/SlotProps.md +88 -0
- package/skill/references/interfaces/StyleProps.md +385 -0
- package/skill/references/interfaces/TextAreaProps.md +196 -0
- package/skill/references/interfaces/TextProps.md +169 -0
- package/skill/references/types/ISYS_LanguageKeyValuePairs.md +13 -0
- package/skill/references/types/TPCB_LayerTypesOfInnerLayer.md +12 -0
- package/skill/references/types/TPCB_LayersInTheSelectable.md +43 -0
- package/skill/references/types/TPCB_LayersOfComponent.md +12 -0
- package/skill/references/types/TPCB_LayersOfCopper.md +16 -0
- package/skill/references/types/TPCB_LayersOfCustom.md +42 -0
- package/skill/references/types/TPCB_LayersOfDimension.md +17 -0
- package/skill/references/types/TPCB_LayersOfFill.md +29 -0
- package/skill/references/types/TPCB_LayersOfImage.md +23 -0
- package/skill/references/types/TPCB_LayersOfInner.md +42 -0
- package/skill/references/types/TPCB_LayersOfLine.md +26 -0
- package/skill/references/types/TPCB_LayersOfObject.md +13 -0
- package/skill/references/types/TPCB_LayersOfPad.md +12 -0
- package/skill/references/types/TPCB_LayersOfRegion.md +12 -0
- package/skill/references/types/TPCB_NumberOfCopperLayers.md +10 -0
- package/skill/references/types/TPCB_PolygonSourceArray.md +83 -0
- package/skill/references/types/TPCB_PrimitiveDimensionCoordinateSet.md +67 -0
- package/skill/references/types/TPCB_PrimitivePadHole.md +31 -0
- package/skill/references/types/TPCB_PrimitivePadShape.md +62 -0
- package/skill/references/types/TPCB_PrimitiveSpecialPadShape.md +20 -0
- package/skill/references/types/TSYS_MathPolygonGroup.md +16 -0
- package/skill/references/types/TSYS_MathPolygonInput.md +21 -0
- package/skill/references/types/TSYS_PcbComparisonErrorCode.md +10 -0
- package/skill/references/types/TSYS_ShortcutKeys.md +97 -0
- package/skill/user-guide/using-extension.md +47 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# Basic Primitive Format
|
|
2
|
+
|
|
3
|
+
## NET Net Information Configuration
|
|
4
|
+
|
|
5
|
+
Net information is different from AD's design.
|
|
6
|
+
|
|
7
|
+
- AD requires it here.
|
|
8
|
+
- This format only fills it in when there are special `net types` and `net colors`.
|
|
9
|
+
The design difference stems from whether there is a dedicated net settings interface listing all nets for configuration.
|
|
10
|
+
|
|
11
|
+
```json
|
|
12
|
+
{ "type": "NET","id": "A", "ticket": 1 }||
|
|
13
|
+
{
|
|
14
|
+
"netType":"High Speed",
|
|
15
|
+
"specialColor":"#666666",
|
|
16
|
+
"hideRetLine":0,
|
|
17
|
+
"differentialName":"AASDF",
|
|
18
|
+
"isPositiveNet":1,
|
|
19
|
+
"equalLengthGroupName":"ABC",
|
|
20
|
+
}|
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
1. type net configuration `NET`.
|
|
24
|
+
2. id unique identifier, net name.
|
|
25
|
+
3. ticket logical clock.
|
|
26
|
+
4. netType net type: `null` means no type.
|
|
27
|
+
5. specialColor special color: `null` means no special color.
|
|
28
|
+
6. hideRetLine whether to hide airwires.
|
|
29
|
+
7. differentialName differential pair name: `null` means not a differential pair.
|
|
30
|
+
8. isPositiveNet whether positive net of differential pair.
|
|
31
|
+
9. equalLengthGroupName equal-length group name: `null` means not in an length-matching group.
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{ "type": "NET","id": "B", "ticket": 1 }||
|
|
35
|
+
{
|
|
36
|
+
"netType":null,
|
|
37
|
+
"specialColor":"#666666",
|
|
38
|
+
"hideRetLine":1,
|
|
39
|
+
"differentialName":"AASDF",
|
|
40
|
+
"isPositiveNet":0,
|
|
41
|
+
"equalLengthGroupName":"ABC",
|
|
42
|
+
}|
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{ "type": "NET","id": "C", "ticket": 1 }||
|
|
47
|
+
{
|
|
48
|
+
"netType":"High Speed",
|
|
49
|
+
"specialColor":null,
|
|
50
|
+
"hideRetLine":1,
|
|
51
|
+
"differentialName":null,
|
|
52
|
+
"isPositiveNet":0,
|
|
53
|
+
"equalLengthGroupName":null,
|
|
54
|
+
}|
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## PRIMITIVE Primitive Configuration
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{ "type": "PRIMITIVE","id": "VIA", "ticket": 1 }||
|
|
61
|
+
{
|
|
62
|
+
"display":1,
|
|
63
|
+
"pick":0,
|
|
64
|
+
}|
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
1. type primitive configuration `PRIMITIVE`.
|
|
68
|
+
2. id unique identifier, primitive name.
|
|
69
|
+
3. ticket logical clock.
|
|
70
|
+
4. display whether displayed.
|
|
71
|
+
5. pick whether pickable.
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{ "type": "PRIMITIVE","id": "PAD", "ticket": 1 }||
|
|
75
|
+
{
|
|
76
|
+
"display":0,
|
|
77
|
+
"pick":1,
|
|
78
|
+
}|
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## GROUP Group Configuration
|
|
82
|
+
|
|
83
|
+
Through group configuration, each group is given a name. If there is no name, EDA decides how to display the default group name.
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{ "type": "GROUP","id": "2", "ticket": 1 }||
|
|
87
|
+
{
|
|
88
|
+
"groupName":"ABCD",
|
|
89
|
+
}|
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
1. type group configuration `GROUP`.
|
|
93
|
+
2. id group number.
|
|
94
|
+
3. ticket logical clock.
|
|
95
|
+
4. groupName name.
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{ "type": "GROUP","id": "5", "ticket": 1 }||
|
|
99
|
+
{
|
|
100
|
+
"groupName":"Chinese Name",
|
|
101
|
+
}|
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## CONNECT Primitive Association
|
|
105
|
+
|
|
106
|
+
Primitive association is used to express the internal combination logic of primitives, such as:
|
|
107
|
+
|
|
108
|
+
- Teardrops and their connections to `LINE`, `ARC`, `PAD`, `VIA`.
|
|
109
|
+
- Pads and their related pin 3D outline `FILL`.
|
|
110
|
+
- `CREASE` and `BOSS` / `SHELL_ENTITY` connections in 3D shells.
|
|
111
|
+
- PCB overrides for primitives inside footprints.
|
|
112
|
+
|
|
113
|
+
Only one-to-many relationships are supported.
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{ "type": "CONNECT","id": "e3", "ticket": 1 }||{ "relatedIds":["e15", "e18", "e100"] }|
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
1. type primitive association `CONNECT`.
|
|
120
|
+
2. id main primitive ID.
|
|
121
|
+
3. ticket logical clock.
|
|
122
|
+
4. relatedIds associated primitive IDs.
|
|
123
|
+
|
|
124
|
+
Many-to-many relationships can be expressed with multiple records; there is no corresponding scenario at present.
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{ "type": "CONNECT","id": "e4", "ticket": 1 }||{ "relatedIds":["e5", "e6"] }|
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{ "type": "CONNECT","id": "e5", "ticket": 1 }||{ "relatedIds":["e4", "e6"] }|
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{ "type": "CONNECT","id": "e6", "ticket": 1 }||{ "relatedIds":["e4", "e5"] }|
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
For PCB overrides of primitives inside footprints, use the form `/^[a-z]+\d+[a-z]+\d+$/i` to combine footprint and inner primitive IDs to reference, as follows:
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
["DOCTYPE", "PCB", "1.0"]
|
|
142
|
+
["COMPONENT", "e13", 5, 1, ...]
|
|
143
|
+
["VIA", "e13e20", 0, "GND", "asdf", ....]
|
|
144
|
+
["PAD", "e13e25", 1, "GND", 0, "1", ....]
|
|
145
|
+
["CONNECT", "e13", ["e13e20", "e13e25"]]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Footprint content is as follows:
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
["DOCTYPE", "FOOTPRINT", "1.0"]
|
|
152
|
+
["VIA", "e20", 0, "GND", "sss", ....]
|
|
153
|
+
["PAD", "e25", 1, "GND", 0, "3", ....]
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## PROP Additional Primitive Properties
|
|
157
|
+
|
|
158
|
+
Some primitive properties are not required and are relatively generic, so `PROP` is used to assist in describing them.
|
|
159
|
+
|
|
160
|
+
```json
|
|
161
|
+
{ "type": "PROP", "id":"UUID", "ticket": 1 }||{ "color":"#22ee44" }|
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
1. type additional primitive properties: PROP.
|
|
165
|
+
2. id ID of the primitive being attached, two encoding forms:
|
|
166
|
+
1. Normal ID: form `/^[a-z]+\d+$/i`, e.g. `e1`, `e123`.
|
|
167
|
+
2. Footprint instance ID: form `/^[a-z]+\d+[a-z]+\d+$/i`, used for silkscreen in footprints, e.g. `e1e5`, `e12e22`.
|
|
168
|
+
3. color special color.
|
|
169
|
+
|
|
170
|
+
```json
|
|
171
|
+
{ "type": "PROP", "id":"e7e25", "ticket": 1 }||{ "color":"#22ee44" }|
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
To override primitives inside a footprint, use this composite ID form.
|
|
175
|
+
|
|
176
|
+
## EQLEN_GRP
|
|
177
|
+
|
|
178
|
+
```json
|
|
179
|
+
{ "type": "EQLEN_GRP", "id":"UUID", "ticket": 1 }||
|
|
180
|
+
{
|
|
181
|
+
"name":"equal length pad group 2",
|
|
182
|
+
"sort":1.97,
|
|
183
|
+
"pads":
|
|
184
|
+
[
|
|
185
|
+
["U1:1", "U2:3"],
|
|
186
|
+
["U1:2", "U1:a"]
|
|
187
|
+
],
|
|
188
|
+
}|
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
1. type equal-length group: `EQLEN_GRP`.
|
|
192
|
+
2. id unique ID.
|
|
193
|
+
3. ticket logical clock.
|
|
194
|
+
4. name equal-length group name, unique within the project.
|
|
195
|
+
5. sort sort order.
|
|
196
|
+
6. pads array identifying pads by `designator:pad number`.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Design Rule System
|
|
2
|
+
|
|
3
|
+
## Design Rule Template
|
|
4
|
+
|
|
5
|
+
There are two logical ways to understand the design rule template; the PCB can choose according to its needs:
|
|
6
|
+
|
|
7
|
+
1. As a base version for other design rules, other design rules are overrides of the template.
|
|
8
|
+
2. Mutually exclusive with other design rules; when a template exists, other design rules are only temporary and have no effect.
|
|
9
|
+
3. As an identifier of which template the rules originate from, without affecting the effectiveness of subsequent actual rules (current solution).
|
|
10
|
+
|
|
11
|
+
```json
|
|
12
|
+
{ "type": "RULE_TEMPLATE", "ticket": 1 }||{ "name": "JLCPCB Capability(High Frequency Board)"}|
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
1. type design rule template: `RULE_TEMPLATE`.
|
|
16
|
+
2. ticket logical clock.
|
|
17
|
+
3. name template name.
|
|
18
|
+
|
|
19
|
+
## Design Rule
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{ "type": "RULE", "id":"UUID", "ticket": 1 }||
|
|
23
|
+
{
|
|
24
|
+
"ruleType":"Safe Clearance",
|
|
25
|
+
"ruleName":"General",
|
|
26
|
+
"ruleState":1,
|
|
27
|
+
"ruleContext":{},
|
|
28
|
+
}|
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
1. type design rule: `RULE`.
|
|
32
|
+
2. ticket logical clock.
|
|
33
|
+
3. ruleType rule type: decided by EDA.
|
|
34
|
+
4. ruleName rule name.
|
|
35
|
+
5. ruleState rule state: 0 normal rule, 1 default rule, 2 disabled rule.
|
|
36
|
+
6. ruleContext rule content: decided by EDA.
|
|
37
|
+
|
|
38
|
+
Design rules of the same `rule type` must appear in the same order as the left tree in [Rule Manager].
|
|
39
|
+
|
|
40
|
+
## Rule Selector
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{ "type": "RULE_SELECTOR", "id":"UUID", "ticket": 1 }||
|
|
44
|
+
{
|
|
45
|
+
"ruleSelect":["NET", "GND"],
|
|
46
|
+
"ruleOrder":0,
|
|
47
|
+
"ruleKeyValue":{ "Safe Clearance": "General", "Other Clearance": "General" },
|
|
48
|
+
}|
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
1. type rule selector: `RULE_SELECTOR`.
|
|
52
|
+
2. ticket logical clock.
|
|
53
|
+
3. ruleSelect selector.
|
|
54
|
+
1. Net class: `["NET_CLASS", "High Speed"]`
|
|
55
|
+
2. Net: `["NET", "GND"]`
|
|
56
|
+
3. Layer: `["LAYER", 5]`
|
|
57
|
+
4. Region: `["REGION", "e10"]`
|
|
58
|
+
5. Footprint: `["FOOTPRINT", "0805"]`
|
|
59
|
+
6. Component: `["COMPONENT", "e100"]`
|
|
60
|
+
7. Copper pour: `["POUR", "e100"]`
|
|
61
|
+
8. Differential pair: `["DIFF_PAIR", "asdf"]`
|
|
62
|
+
9. Equal-length group: `["EQ_LEN_GRP", "fdsa"]`
|
|
63
|
+
10. Future logic support: `["AND", ["NET", "GND"], ["LAYER", 5]]`
|
|
64
|
+
4. ruleOrder priority: the smaller the value, the higher the priority. Recommended:
|
|
65
|
+
- `0` component rule
|
|
66
|
+
- `1` footprint rule
|
|
67
|
+
- `2` region rule
|
|
68
|
+
- `3` net-net rule
|
|
69
|
+
- `4` net rule
|
|
70
|
+
- `5` layer rule
|
|
71
|
+
5. ruleKeyValue rules. Key is the rule class, Value is the rule name. Only one rule can be selected under each rule class.
|
|
@@ -0,0 +1,441 @@
|
|
|
1
|
+
# Shape Primitives
|
|
2
|
+
|
|
3
|
+
## LINE Line
|
|
4
|
+
|
|
5
|
+
```json
|
|
6
|
+
{ "type": "LINE", "id":"UUID", "ticket": 1 }||
|
|
7
|
+
{
|
|
8
|
+
"partitionId":null,
|
|
9
|
+
"groupId":0,
|
|
10
|
+
"locked":1,
|
|
11
|
+
"zIndex":9.223,
|
|
12
|
+
"netName":"GND",
|
|
13
|
+
"layerId":1,
|
|
14
|
+
"startX":100,
|
|
15
|
+
"startY":200,
|
|
16
|
+
"endX":400,
|
|
17
|
+
"endY":300,
|
|
18
|
+
"width":0.7,
|
|
19
|
+
}|
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
1. type line `LINE`.
|
|
23
|
+
2. id primitive ID, unique within the document.
|
|
24
|
+
3. ticket logical clock.
|
|
25
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
26
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
27
|
+
6. locked whether locked.
|
|
28
|
+
7. zIndex Z-axis height.
|
|
29
|
+
8. netName net.
|
|
30
|
+
9. layerId layer.
|
|
31
|
+
10. startX start X.
|
|
32
|
+
11. startY start Y.
|
|
33
|
+
12. endX end X.
|
|
34
|
+
13. endY end Y.
|
|
35
|
+
14. width line width.
|
|
36
|
+
|
|
37
|
+
## ARC/CARC Arc Line
|
|
38
|
+
|
|
39
|
+
The arc borrows Eagle's mathematical model, described based on `start` and `end`.
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{ "type": "ARC", "id":"UUID", "ticket": 1 }||
|
|
43
|
+
{
|
|
44
|
+
"partitionId":null,
|
|
45
|
+
"groupId":0,
|
|
46
|
+
"locked":1,
|
|
47
|
+
"zIndex":2.866,
|
|
48
|
+
"netName":"GND",
|
|
49
|
+
"layerId":1,
|
|
50
|
+
"startX":100,
|
|
51
|
+
"startY":200,
|
|
52
|
+
"endX":300,
|
|
53
|
+
"endY":400,
|
|
54
|
+
"angle":-170,
|
|
55
|
+
"width":10,
|
|
56
|
+
}|
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
1. type arc line.
|
|
60
|
+
- `ARC` two-point interaction mode.
|
|
61
|
+
- `CARC` center-arc interaction mode.
|
|
62
|
+
2. id primitive ID, unique within the document.
|
|
63
|
+
3. ticket logical clock.
|
|
64
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
65
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
66
|
+
6. locked whether locked.
|
|
67
|
+
7. zIndex Z-axis height.
|
|
68
|
+
8. netName net.
|
|
69
|
+
9. layerId layer.
|
|
70
|
+
10. startX start X.
|
|
71
|
+
11. startY start Y.
|
|
72
|
+
12. endX end X.
|
|
73
|
+
13. endY end Y.
|
|
74
|
+
14. angle arc angle, positive counter-clockwise, negative clockwise.
|
|
75
|
+
15. width line width.
|
|
76
|
+
|
|
77
|
+
## Polygon System
|
|
78
|
+
|
|
79
|
+
SVG's path is an excellent abstraction for polygons.
|
|
80
|
+
However, because relative position and other features are not needed in PCB, and a more convenient parsing method can be designed conditionally, a polygon expression similar to SVG path was created.
|
|
81
|
+
Within the polygon system, `POLY`, `REGION`, and `POUR` support mutual conversion.
|
|
82
|
+
|
|
83
|
+
### Single Polygon Definition
|
|
84
|
+
|
|
85
|
+
A single polygon is a region described by an uninterrupted line whose start and end coincide. If start and end do not coincide, they are automatically closed.
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
[300, 200, "L", 400, 200, "ARC", 400, 220, 15, "C", 200, 500, 400, 300, 100, 100]
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
```json
|
|
92
|
+
["R", 100, 200, 300, 300, 0]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
["CIRCLE", 100, 200, 5, 1]
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
#### L Line Mode
|
|
100
|
+
|
|
101
|
+
`X Y L X Y X Y ...` mode is line mode. All coordinates are connected by straight lines.
|
|
102
|
+
|
|
103
|
+
#### ARC/CARC Arc Mode
|
|
104
|
+
|
|
105
|
+
`startX startY ARC angle endX endY` mode is arc mode.
|
|
106
|
+
|
|
107
|
+
- startX/startY start coordinates.
|
|
108
|
+
- angle: arc angle, positive counter-clockwise, negative clockwise.
|
|
109
|
+
- endX/endY end coordinates.
|
|
110
|
+
|
|
111
|
+
`startX startY CARC angle endX endY` center-arc interaction mode.
|
|
112
|
+
|
|
113
|
+
#### C Cubic Bezier Mode
|
|
114
|
+
|
|
115
|
+
`X1 Y1 C X2 Y2 X3 Y3 X4 Y4 ...` mode is cubic Bezier mode. All coordinates are control points.
|
|
116
|
+
|
|
117
|
+
#### R Rectangle Mode
|
|
118
|
+
|
|
119
|
+
`R X Y width height rot isCCW round` rectangle mode is independent from other modes.
|
|
120
|
+
|
|
121
|
+
- X/Y: top-left coordinate.
|
|
122
|
+
- width: width.
|
|
123
|
+
- height: height.
|
|
124
|
+
- rot: rotation angle.
|
|
125
|
+
- isCCW: whether counter-clockwise.
|
|
126
|
+
- round: corner radius.
|
|
127
|
+
|
|
128
|
+
#### CIRCLE Circle Mode
|
|
129
|
+
|
|
130
|
+
`CIRCLE cx cy r isCCW` circle mode is independent from other modes.
|
|
131
|
+
|
|
132
|
+
- cx/cy: center point coordinates.
|
|
133
|
+
- r: radius.
|
|
134
|
+
- isCCW: whether counter-clockwise.
|
|
135
|
+
|
|
136
|
+
### Complex Polygon Definition
|
|
137
|
+
|
|
138
|
+
```json
|
|
139
|
+
[[single polygon 1: outer frame], [single polygon 2: inner hole]]
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
A complex polygon can contain multiple single polygons. The first polygon is clockwise and represents the outer frame; all subsequent polygons are counter-clockwise and represent inner holes.
|
|
143
|
+
|
|
144
|
+
## POLY Polyline
|
|
145
|
+
|
|
146
|
+
The polyline is similar to `LINE` and `ARC`, but it preserves the concept of a continuous single line drawn at one time, and can be converted with `REGION`, `FILL`, and `POUR`.
|
|
147
|
+
|
|
148
|
+
```json
|
|
149
|
+
{ "type": "POLY", "id":"UUID", "ticket": 1 }||
|
|
150
|
+
{
|
|
151
|
+
"partitionId":null,
|
|
152
|
+
"groupId":0,
|
|
153
|
+
"locked":1,
|
|
154
|
+
"zIndex":6.417,
|
|
155
|
+
"netName":"GND",
|
|
156
|
+
"layerId":1,
|
|
157
|
+
"width":0.5,
|
|
158
|
+
"path":["single polygon"],
|
|
159
|
+
}|
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
1. type polyline `POLY`.
|
|
163
|
+
2. id primitive ID, unique within the document.
|
|
164
|
+
3. ticket logical clock.
|
|
165
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
166
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
167
|
+
6. locked whether locked.
|
|
168
|
+
7. zIndex Z-axis height.
|
|
169
|
+
8. netName net.
|
|
170
|
+
9. layerId layer.
|
|
171
|
+
10. width line width.
|
|
172
|
+
11. path see single polygon.
|
|
173
|
+
|
|
174
|
+
## FILL Fill
|
|
175
|
+
|
|
176
|
+
```json
|
|
177
|
+
{ "type": "FILL", "id":"UUID", "ticket": 1 }||
|
|
178
|
+
{
|
|
179
|
+
"partitionId":null,
|
|
180
|
+
"groupId":0,
|
|
181
|
+
"locked":1,
|
|
182
|
+
"zIndex": 0.794,
|
|
183
|
+
"netName":"GND",
|
|
184
|
+
"layerId":3,
|
|
185
|
+
"width":10,
|
|
186
|
+
"fillStyle":0,
|
|
187
|
+
"path":["complex polygon"],
|
|
188
|
+
}|
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
1. type fill `FILL`.
|
|
192
|
+
2. id primitive ID, unique within the document.
|
|
193
|
+
3. ticket logical clock.
|
|
194
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
195
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
196
|
+
6. locked whether locked.
|
|
197
|
+
7. zIndex Z-axis height.
|
|
198
|
+
8. netName net.
|
|
199
|
+
9. layerId layer.
|
|
200
|
+
10. width line width.
|
|
201
|
+
11. fillStyle fill style: 0 solid fill, 1 grid fill, 2 internal plane fill.
|
|
202
|
+
12. path see complex polygon chapter.
|
|
203
|
+
1. For a polygon drawn in one go, there is only one single polygon here.
|
|
204
|
+
2. For polygons drawn in combination mode, there are multiple single polygons here.
|
|
205
|
+
|
|
206
|
+
## REGION Region
|
|
207
|
+
|
|
208
|
+
Keepout regions are an important future feature. In addition to assisting manual design, they can also assist automatic placement and routing by providing automation tools with constraint information on area ranges in addition to design rules.
|
|
209
|
+
|
|
210
|
+
```json
|
|
211
|
+
{ "type": "REGION", "id":"UUID", "ticket": 1 }||
|
|
212
|
+
{
|
|
213
|
+
"partitionId":null,
|
|
214
|
+
"groupId":0,
|
|
215
|
+
"locked":1,
|
|
216
|
+
"zIndex":0.901,
|
|
217
|
+
"layerId":3,
|
|
218
|
+
"width":1,
|
|
219
|
+
"prohibitType":[1, 2, 5],
|
|
220
|
+
"path":["complex polygon"],
|
|
221
|
+
"name":"aa constraint",
|
|
222
|
+
|
|
223
|
+
}|
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
1. type region `REGION`.
|
|
227
|
+
2. id primitive ID, unique within the document.
|
|
228
|
+
3. ticket logical clock.
|
|
229
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
230
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
231
|
+
6. locked whether locked.
|
|
232
|
+
7. zIndex Z-axis height.
|
|
233
|
+
8. layerId layer.
|
|
234
|
+
9. width line width.
|
|
235
|
+
10. prohibitType prohibit types, multiple can exist simultaneously.
|
|
236
|
+
1. \*prohibit routing and placing fill regions (deprecated, but keep compatible when parsing)
|
|
237
|
+
2. prohibit components
|
|
238
|
+
3. prohibit vias
|
|
239
|
+
4. \*prohibit copper pours and internal planes (deprecated, but keep compatible when parsing)
|
|
240
|
+
5. prohibit routing
|
|
241
|
+
6. prohibit placing fill regions
|
|
242
|
+
7. prohibit copper pours
|
|
243
|
+
8. prohibit internal planes
|
|
244
|
+
11. path see complex polygon chapter.
|
|
245
|
+
1. For a polygon drawn in one go, there is only one single polygon here.
|
|
246
|
+
2. For polygons drawn in combination mode, there are multiple single polygons here.
|
|
247
|
+
12. name name (optional).
|
|
248
|
+
|
|
249
|
+
## POUR Copper Pour Border
|
|
250
|
+
|
|
251
|
+
A substantial difference from previous copper pours is that complex polygons are supported, meaning copper pour regions can contain holes. In theory, polygons converted from text paths can be used as copper pour regions.
|
|
252
|
+
Copper pours are filled in the order they appear in the format.
|
|
253
|
+
|
|
254
|
+
```json
|
|
255
|
+
{ "type": "POUR", "id":"UUID", "ticket": 1 }||
|
|
256
|
+
{
|
|
257
|
+
"partitionId":null,
|
|
258
|
+
"groupId":0,
|
|
259
|
+
"locked":1,
|
|
260
|
+
"zIndex":0.779,
|
|
261
|
+
"netName":"GND",
|
|
262
|
+
"layerId":1,
|
|
263
|
+
"width":1,
|
|
264
|
+
"name":"TOPGND",
|
|
265
|
+
"order":4,
|
|
266
|
+
"path":["complex polygon"],
|
|
267
|
+
"pourType":["pour type"],
|
|
268
|
+
"keepIsland":1,
|
|
269
|
+
}|
|
|
270
|
+
["POUR", "e100", 5, 1, 0.779, "GND", 1, 1, "TOPGND", 4, complex polygon, [pour type], 1]
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
1. type copper pour `POUR`.
|
|
274
|
+
2. id primitive ID, unique within the document.
|
|
275
|
+
3. ticket logical clock.
|
|
276
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
277
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
278
|
+
6. locked whether locked.
|
|
279
|
+
7. zIndex Z-axis height.
|
|
280
|
+
8. netName net.
|
|
281
|
+
9. layerId layer.
|
|
282
|
+
10. width line width.
|
|
283
|
+
11. name copper pour name.
|
|
284
|
+
12. order copper pour priority.
|
|
285
|
+
13. path see complex polygon chapter.
|
|
286
|
+
14. pourType see pour types.
|
|
287
|
+
15. keepIsland whether to keep islands.
|
|
288
|
+
|
|
289
|
+
#### Pour Types
|
|
290
|
+
|
|
291
|
+
##### SOLID Solid Fill
|
|
292
|
+
|
|
293
|
+
```json
|
|
294
|
+
["SOLID", 2]
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
1. solid fill `SOLID`.
|
|
298
|
+
2. minimum copper pour neck width (production optimization; 0 means no production optimization).
|
|
299
|
+
|
|
300
|
+
```json
|
|
301
|
+
["POUR", "e100", "GND", 1, "BOTGND", 2, complex polygon, ["SOLID", 2], 1, 0]
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
```json
|
|
305
|
+
["POUR", "e100", "GND", 1, "BOTGND", 2, complex polygon, ["SOLID", 0], 1, 0]
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
##### LINE Line Fill
|
|
309
|
+
|
|
310
|
+
```json
|
|
311
|
+
["LINE", 0, 0, 10, 20]
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
1. line fill `LINE`.
|
|
315
|
+
2. fill mode: `0` grid, `1` horizontal, `2` vertical.
|
|
316
|
+
3. rotation angle.
|
|
317
|
+
4. line width.
|
|
318
|
+
5. line spacing.
|
|
319
|
+
|
|
320
|
+
```json
|
|
321
|
+
["POUR", "e100", "GND", 1, "", 9, complex polygon, ["LINE", 0, 0, 10, 20], 0.6, 1, 0, 0]
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
## POURED Copper Pour Result
|
|
325
|
+
|
|
326
|
+
```json
|
|
327
|
+
{ "type": "POURED", "id":"UUID", "ticket": 1 }||
|
|
328
|
+
{
|
|
329
|
+
"partitionId":null,
|
|
330
|
+
"targetId":"e100",
|
|
331
|
+
"strokeWidth":0,
|
|
332
|
+
"fill":1,
|
|
333
|
+
"path":["complex polygon"],
|
|
334
|
+
}|
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
1. type copper pour result `POURED`.
|
|
338
|
+
2. id primitive ID.
|
|
339
|
+
3. ticket logical clock.
|
|
340
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
341
|
+
5. targetId ID of the parent copper pour border `POUR`.
|
|
342
|
+
6. strokeWidth stroke width: 0 means no stroke.
|
|
343
|
+
7. fill whether filled.
|
|
344
|
+
8. path path, complex polygon.
|
|
345
|
+
|
|
346
|
+
## IMAGE Image
|
|
347
|
+
|
|
348
|
+
`IMAGE` is very similar to `REGION`, but in operation, `IMAGE` has no control points and cannot freely change its shape, only overall scaling, rotation, flipping, and translation.
|
|
349
|
+
When `IMAGE` is on a signal layer, from the DRC perspective it is a net-less rectangular area defined by `start`, `end`, `rotation angle`, and `whether mirrored`.
|
|
350
|
+
|
|
351
|
+
```json
|
|
352
|
+
{ "type": "IMAGE", "id":"UUID", "ticket": 1 }||
|
|
353
|
+
{
|
|
354
|
+
"partitionId":null,
|
|
355
|
+
"groupId":0,
|
|
356
|
+
"locked":1,
|
|
357
|
+
"zIndex":5.5464,
|
|
358
|
+
"layerId":31,
|
|
359
|
+
"startX":200,
|
|
360
|
+
"startY":200,
|
|
361
|
+
"width":400,
|
|
362
|
+
"height":400,
|
|
363
|
+
"angle":45,
|
|
364
|
+
"mirror":1,
|
|
365
|
+
"path":["complex polygon"],
|
|
366
|
+
}|
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
1. type image `IMAGE`.
|
|
370
|
+
2. id primitive ID, unique within the document.
|
|
371
|
+
3. ticket logical clock.
|
|
372
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
373
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
374
|
+
6. locked whether locked.
|
|
375
|
+
7. zIndex Z-axis height.
|
|
376
|
+
8. layerId layer.
|
|
377
|
+
9. startX top-left X.
|
|
378
|
+
10. startY top-left Y.
|
|
379
|
+
11. width width.
|
|
380
|
+
12. height height.
|
|
381
|
+
13. angle rotation angle, around `start` point.
|
|
382
|
+
14. mirror whether the original image is horizontally mirrored. Mirroring is performed around the center of the original image's BBox.
|
|
383
|
+
15. path multiple complex polygons, see complex polygon chapter. Raw data is stored here; no adjustment is needed throughout the lifecycle.
|
|
384
|
+
|
|
385
|
+
## TEARDROP Teardrop
|
|
386
|
+
|
|
387
|
+
Teardrops cannot be selected or directly operated. When any associated primitive changes, EDA should automatically make them disappear.
|
|
388
|
+
|
|
389
|
+
```json
|
|
390
|
+
{ "type": "TEARDROP", "id":"UUID", "ticket": 1 }||
|
|
391
|
+
{
|
|
392
|
+
"partitionId":null,
|
|
393
|
+
"netName":"GND",
|
|
394
|
+
"layerId":3,
|
|
395
|
+
"path":"simple polygon",
|
|
396
|
+
"groupId":0,
|
|
397
|
+
}|
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
1. type teardrop `TEARDROP`.
|
|
401
|
+
2. id ID.
|
|
402
|
+
3. ticket logical clock.
|
|
403
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
404
|
+
5. netName net.
|
|
405
|
+
6. layerId layer.
|
|
406
|
+
7. path simple polygon.
|
|
407
|
+
8. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
408
|
+
|
|
409
|
+
## FPC_FILL FPC Reinforcement Fill
|
|
410
|
+
|
|
411
|
+
```json
|
|
412
|
+
{ "type": "FPC_FILL", "id":"UUID", "ticket": 1 }||
|
|
413
|
+
{
|
|
414
|
+
"partitionId":null,
|
|
415
|
+
"groupId":0,
|
|
416
|
+
"locked":1,
|
|
417
|
+
"zIndex":7.7845,
|
|
418
|
+
"layerId":3,
|
|
419
|
+
"material":"3M468",
|
|
420
|
+
"thickness":7.874,
|
|
421
|
+
"path":"complex polygon",
|
|
422
|
+
}|
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
1. type fill `FPC_FILL`.
|
|
426
|
+
2. id primitive ID, unique within the document.
|
|
427
|
+
3. ticket logical clock.
|
|
428
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
429
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
430
|
+
6. locked whether locked.
|
|
431
|
+
7. zIndex Z-axis height.
|
|
432
|
+
8. layerId layer.
|
|
433
|
+
9. material material.
|
|
434
|
+
- PI
|
|
435
|
+
- STEEL
|
|
436
|
+
- FR4
|
|
437
|
+
- 3M468
|
|
438
|
+
- 3M9077
|
|
439
|
+
- EMI_Shielding_Film
|
|
440
|
+
10. thickness thickness (note the unit is the same as other primitives).
|
|
441
|
+
11. path see complex polygon chapter.
|