@windypro-rourou/dsh-eda 0.1.4 → 0.1.6
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 +1 -1
- package/lib/backend.js +49 -0
- package/lib/capabilities.js +6 -2
- package/lib/client.js +33 -0
- package/lib/index.js +197 -3
- package/package.json +10 -1
- package/skill/INDEX.md +10 -8
- package/skill/README.md +125 -0
- package/skill/README.zh-Hans.md +125 -0
- package/skill/SKILL.md +746 -746
- package/skill/format/index.md +152 -152
- package/skill/format/pcb/3d.md +166 -166
- package/skill/format/pcb/attr.md +63 -63
- package/skill/format/pcb/common.md +306 -306
- package/skill/format/pcb/component.md +132 -132
- package/skill/format/pcb/dimension.md +58 -58
- package/skill/format/pcb/index.md +17 -17
- package/skill/format/pcb/obj.md +43 -43
- package/skill/format/pcb/pad_via.md +151 -151
- package/skill/format/pcb/panel.md +64 -64
- package/skill/format/pcb/partition.md +43 -43
- package/skill/format/pcb/primitive.md +196 -196
- package/skill/format/pcb/rule.md +71 -71
- package/skill/format/pcb/shape.md +441 -441
- package/skill/format/pcb/text.md +62 -62
- package/skill/format/project/blob.md +30 -30
- package/skill/format/project/common.md +42 -42
- package/skill/format/project/group.md +62 -62
- package/skill/format/project/index.md +12 -12
- package/skill/format/project/instance.md +32 -32
- package/skill/format/project/meta.md +189 -189
- package/skill/format/project/variant.md +30 -30
- package/skill/format/schematic/attr.md +41 -41
- package/skill/format/schematic/common.md +47 -47
- package/skill/format/schematic/component.md +91 -91
- package/skill/format/schematic/index.md +14 -14
- package/skill/format/schematic/obj.md +41 -41
- package/skill/format/schematic/pin.md +59 -59
- package/skill/format/schematic/shape.md +231 -231
- package/skill/format/schematic/structure.md +53 -53
- package/skill/format/schematic/table.md +109 -109
- package/skill/format/schematic/text.md +47 -47
- package/skill/format/schematic/wire.md +132 -132
- package/skill/guide/ancillary-projects/easyeda-api-sdk.md +1 -0
- package/skill/guide/ancillary-projects/pro-api-types.md +5 -5
- package/skill/guide/ancillary-projects.md +10 -10
- package/skill/guide/cli.md +1510 -0
- package/skill/guide/error-handling.md +38 -38
- package/skill/guide/extension-json.md +135 -135
- package/skill/guide/extensions-marketplace.md +61 -61
- package/skill/guide/how-to-start.md +316 -301
- package/skill/guide/i18n.md +57 -57
- package/skill/guide/index.md +7 -7
- package/skill/guide/inline-frame.md +20 -20
- package/skill/guide/invoke-apis.md +81 -81
- package/skill/guide/stability.md +37 -37
- package/skill/references/_index.md +471 -398
- package/skill/references/_quick-reference.md +3103 -3028
- package/skill/references/classes/DMT_Board.md +537 -533
- package/skill/references/classes/DMT_EditorControl.md +1736 -1736
- package/skill/references/classes/DMT_Event.md +356 -356
- package/skill/references/classes/DMT_Folder.md +775 -775
- package/skill/references/classes/DMT_Panel.md +531 -531
- package/skill/references/classes/DMT_Pcb.md +579 -575
- package/skill/references/classes/DMT_Project.md +734 -573
- package/skill/references/classes/DMT_Schematic.md +1482 -1477
- package/skill/references/classes/DMT_SelectControl.md +96 -96
- package/skill/references/classes/DMT_Team.md +172 -172
- package/skill/references/classes/DMT_Workspace.md +198 -198
- package/skill/references/classes/EDA.md +1001 -961
- package/skill/references/classes/IPCB_ComplexPolygon.md +299 -299
- package/skill/references/classes/IPCB_Polygon.md +175 -175
- package/skill/references/classes/IPCB_PrimitiveArc.md +1901 -1901
- package/skill/references/classes/IPCB_PrimitiveAttribute.md +2993 -2993
- package/skill/references/classes/IPCB_PrimitiveComponent.md +2624 -2627
- package/skill/references/classes/IPCB_PrimitiveComponentPad.md +410 -410
- package/skill/references/classes/IPCB_PrimitiveDimension.md +1419 -1419
- package/skill/references/classes/IPCB_PrimitiveFill.md +1325 -1325
- package/skill/references/classes/IPCB_PrimitiveImage.md +1461 -1461
- package/skill/references/classes/IPCB_PrimitiveLine.md +1639 -1639
- package/skill/references/classes/IPCB_PrimitiveObject.md +1700 -1700
- package/skill/references/classes/IPCB_PrimitivePad.md +3155 -3155
- package/skill/references/classes/IPCB_PrimitivePolyline.md +1193 -1193
- package/skill/references/classes/IPCB_PrimitivePour.md +1858 -1858
- package/skill/references/classes/IPCB_PrimitivePoured.md +556 -556
- package/skill/references/classes/IPCB_PrimitiveRegion.md +1332 -1332
- package/skill/references/classes/IPCB_PrimitiveString.md +2315 -2315
- package/skill/references/classes/IPCB_PrimitiveVia.md +1588 -1588
- package/skill/references/classes/ISCH_PrimitiveArc.md +1676 -1676
- package/skill/references/classes/ISCH_PrimitiveAttribute.md +2541 -2541
- package/skill/references/classes/ISCH_PrimitiveBus.md +973 -973
- package/skill/references/classes/ISCH_PrimitiveCbbSymbolComponent.md +260 -260
- package/skill/references/classes/ISCH_PrimitiveCircle.md +1392 -1392
- package/skill/references/classes/ISCH_PrimitiveComponent.md +2910 -2913
- package/skill/references/classes/ISCH_PrimitiveComponentPin.md +155 -155
- package/skill/references/classes/ISCH_PrimitiveObject.md +960 -960
- package/skill/references/classes/ISCH_PrimitivePin.md +2402 -2402
- package/skill/references/classes/ISCH_PrimitivePolygon.md +1028 -1028
- package/skill/references/classes/ISCH_PrimitiveRectangle.md +1777 -1777
- package/skill/references/classes/ISCH_PrimitiveText.md +1771 -1771
- package/skill/references/classes/ISCH_PrimitiveWire.md +973 -973
- package/skill/references/classes/LIB_3DModel.md +782 -780
- package/skill/references/classes/LIB_Cbb.md +957 -957
- package/skill/references/classes/LIB_Classification.md +969 -965
- package/skill/references/classes/LIB_Device.md +1222 -1221
- package/skill/references/classes/LIB_Footprint.md +1298 -1153
- package/skill/references/classes/LIB_LibrariesList.md +361 -329
- package/skill/references/classes/LIB_PanelLibrary.md +855 -855
- package/skill/references/classes/LIB_SelectControl.md +89 -89
- package/skill/references/classes/LIB_SimulationModel.md +807 -821
- package/skill/references/classes/LIB_Symbol.md +1341 -1195
- package/skill/references/classes/PCB_Document.md +1770 -1754
- package/skill/references/classes/PCB_Drc.md +3379 -3375
- package/skill/references/classes/PCB_Event.md +1166 -1081
- package/skill/references/classes/PCB_ImageTool.md +363 -0
- package/skill/references/classes/PCB_Layer.md +1915 -1911
- package/skill/references/classes/PCB_ManufactureData.md +2968 -2968
- package/skill/references/classes/PCB_MathPolygon.md +916 -785
- package/skill/references/classes/PCB_Net.md +1128 -1128
- package/skill/references/classes/PCB_Primitive.md +217 -217
- package/skill/references/classes/PCB_PrimitiveArc.md +820 -894
- package/skill/references/classes/PCB_PrimitiveAttribute.md +635 -717
- package/skill/references/classes/PCB_PrimitiveComponent.md +1050 -1050
- package/skill/references/classes/PCB_PrimitiveDimension.md +789 -833
- package/skill/references/classes/PCB_PrimitiveFill.md +783 -861
- package/skill/references/classes/PCB_PrimitiveImage.md +803 -875
- package/skill/references/classes/PCB_PrimitiveLine.md +787 -858
- package/skill/references/classes/PCB_PrimitiveObject.md +796 -800
- package/skill/references/classes/PCB_PrimitivePad.md +947 -944
- package/skill/references/classes/PCB_PrimitivePolyline.md +744 -819
- package/skill/references/classes/PCB_PrimitivePour.md +808 -845
- package/skill/references/classes/PCB_PrimitivePoured.md +363 -363
- package/skill/references/classes/PCB_PrimitiveRegion.md +765 -799
- package/skill/references/classes/PCB_PrimitiveString.md +828 -910
- package/skill/references/classes/PCB_PrimitiveVia.md +761 -765
- package/skill/references/classes/PCB_RayTracerEngine.md +603 -263
- package/skill/references/classes/PCB_SelectControl.md +495 -495
- package/skill/references/classes/PCB_Tool.md +9 -0
- package/skill/references/classes/PNL_Document.md +83 -83
- package/skill/references/classes/SCH_Document.md +797 -809
- package/skill/references/classes/SCH_Drc.md +246 -242
- package/skill/references/classes/SCH_Event.md +583 -583
- package/skill/references/classes/SCH_ManufactureData.md +1209 -1205
- package/skill/references/classes/SCH_Net.md +200 -200
- package/skill/references/classes/SCH_Netlist.md +191 -191
- package/skill/references/classes/SCH_Primitive.md +337 -337
- package/skill/references/classes/SCH_PrimitiveArc.md +686 -692
- package/skill/references/classes/SCH_PrimitiveAttribute.md +579 -590
- package/skill/references/classes/SCH_PrimitiveBus.md +618 -624
- package/skill/references/classes/SCH_PrimitiveCircle.md +667 -683
- package/skill/references/classes/SCH_PrimitiveComponent.md +2256 -2240
- package/skill/references/classes/SCH_PrimitiveObject.md +666 -666
- package/skill/references/classes/SCH_PrimitivePin.md +737 -754
- package/skill/references/classes/SCH_PrimitivePolygon.md +621 -627
- package/skill/references/classes/SCH_PrimitiveRectangle.md +715 -731
- package/skill/references/classes/SCH_PrimitiveText.md +736 -746
- package/skill/references/classes/SCH_PrimitiveWire.md +701 -703
- package/skill/references/classes/SCH_SelectControl.md +520 -520
- package/skill/references/classes/SCH_SimulationEngine.md +133 -133
- package/skill/references/classes/SCH_Utils.md +121 -121
- package/skill/references/classes/SYS_ClientUrl.md +173 -173
- package/skill/references/classes/SYS_Dialog.md +825 -825
- package/skill/references/classes/SYS_Environment.md +640 -502
- package/skill/references/classes/SYS_ExternalApi.md +246 -0
- package/skill/references/classes/SYS_FileManager.md +1664 -1686
- package/skill/references/classes/SYS_FileSystem.md +1366 -1171
- package/skill/references/classes/SYS_FontManager.md +224 -224
- package/skill/references/classes/SYS_FormatConversion.md +349 -349
- package/skill/references/classes/SYS_HeaderMenu.md +480 -479
- package/skill/references/classes/SYS_Help.md +141 -0
- package/skill/references/classes/SYS_I18n.md +861 -861
- package/skill/references/classes/SYS_IFrame.md +541 -535
- package/skill/references/classes/SYS_LoadingAndProgressBar.md +246 -246
- package/skill/references/classes/SYS_Log.md +422 -424
- package/skill/references/classes/SYS_Math.md +1565 -1565
- package/skill/references/classes/SYS_Message.md +363 -363
- package/skill/references/classes/SYS_MessageBox.md +285 -285
- package/skill/references/classes/SYS_MessageBus.md +1618 -1618
- package/skill/references/classes/SYS_PanelControl.md +696 -696
- package/skill/references/classes/SYS_RightClickMenu.md +175 -175
- package/skill/references/classes/SYS_Setting.md +134 -85
- package/skill/references/classes/SYS_ShortcutKey.md +623 -623
- package/skill/references/classes/SYS_Storage.md +484 -484
- package/skill/references/classes/SYS_Timer.md +447 -447
- package/skill/references/classes/SYS_ToastMessage.md +194 -194
- package/skill/references/classes/SYS_Tool.md +317 -241
- package/skill/references/classes/SYS_Unit.md +594 -594
- package/skill/references/classes/SYS_WebSocket.md +401 -401
- package/skill/references/classes/SYS_Window.md +849 -850
- package/skill/references/enums/EDMT_EditorDocumentType.md +324 -278
- package/skill/references/enums/EDMT_EditorSplitScreenDirection.md +51 -47
- package/skill/references/enums/EDMT_EditorTabEventType.md +68 -62
- package/skill/references/enums/EDMT_IndicatorMarkerType.md +90 -80
- package/skill/references/enums/EDMT_ItemType.md +181 -157
- package/skill/references/enums/EDMT_ProjectCollaborationMode.md +51 -47
- package/skill/references/enums/EDMT_ProjectFileFormat.md +60 -0
- package/skill/references/enums/EDMT_ProjectReadyState.md +82 -0
- package/skill/references/enums/ELIB_DeviceJlcLibraryCategory.md +51 -47
- package/skill/references/enums/ELIB_LibraryType.md +129 -113
- package/skill/references/enums/ELIB_PreviewType.md +77 -69
- package/skill/references/enums/ELIB_SimulationModelType.md +51 -47
- package/skill/references/enums/ELIB_SymbolType.md +142 -124
- package/skill/references/enums/EPCB_AutoRoutingCornerStyle.md +51 -47
- package/skill/references/enums/EPCB_AutoRoutingExistingPrimitiveMode.md +51 -47
- package/skill/references/enums/EPCB_AutoRoutingOptimization.md +51 -47
- package/skill/references/enums/EPCB_DocumentCanvasUpdateCalculationActiveStatus.md +51 -47
- package/skill/references/enums/EPCB_DocumentRatlineCalculatingActiveStatus.md +55 -51
- package/skill/references/enums/EPCB_InactiveLayerDisplayMode.md +64 -58
- package/skill/references/enums/EPCB_LayerColorConfiguration.md +90 -80
- package/skill/references/enums/EPCB_LayerId.md +1169 -881
- package/skill/references/enums/EPCB_LayerStatus.md +64 -58
- package/skill/references/enums/EPCB_LayerType.md +129 -113
- package/skill/references/enums/EPCB_MouseEventType.md +64 -58
- package/skill/references/enums/EPCB_NetEventType.md +64 -58
- package/skill/references/enums/EPCB_PcbPlateType.md +51 -47
- package/skill/references/enums/EPCB_PdfOutputMethod.md +64 -58
- package/skill/references/enums/EPCB_PrimitiveArcInteractiveMode.md +51 -47
- package/skill/references/enums/EPCB_PrimitiveDimensionType.md +64 -58
- package/skill/references/enums/EPCB_PrimitiveEventType.md +64 -58
- package/skill/references/enums/EPCB_PrimitiveFillMode.md +68 -62
- package/skill/references/enums/EPCB_PrimitivePadHeatWeldingConnectionMethod.md +64 -58
- package/skill/references/enums/EPCB_PrimitivePadHoleType.md +64 -58
- package/skill/references/enums/EPCB_PrimitivePadShapeType.md +90 -80
- package/skill/references/enums/EPCB_PrimitivePadType.md +64 -58
- package/skill/references/enums/EPCB_PrimitivePourFillMethod.md +64 -58
- package/skill/references/enums/EPCB_PrimitiveRegionRuleType.md +107 -95
- package/skill/references/enums/EPCB_PrimitiveStringAlignMode.md +142 -124
- package/skill/references/enums/EPCB_PrimitiveType.md +233 -201
- package/skill/references/enums/EPCB_PrimitiveViaType.md +64 -58
- package/skill/references/enums/ESCH_DynamicSimulationEnginePullEventType.md +116 -102
- package/skill/references/enums/ESCH_DynamicSimulationEnginePushEventType.md +90 -80
- package/skill/references/enums/ESCH_ExportDocumentFileType.md +64 -58
- package/skill/references/enums/ESCH_MouseEventType.md +51 -47
- package/skill/references/enums/ESCH_PrimitiveComponentType.md +142 -124
- package/skill/references/enums/ESCH_PrimitiveEventType.md +77 -69
- package/skill/references/enums/ESCH_PrimitiveFillStyle.md +129 -113
- package/skill/references/enums/ESCH_PrimitiveLineType.md +77 -69
- package/skill/references/enums/ESCH_PrimitivePinShape.md +77 -69
- package/skill/references/enums/ESCH_PrimitivePinType.md +168 -146
- package/skill/references/enums/ESCH_PrimitiveTextAlignMode.md +142 -124
- package/skill/references/enums/ESCH_PrimitiveType.md +207 -179
- package/skill/references/enums/ESCH_SimulationNetlistType.md +38 -36
- package/skill/references/enums/ESCH_SpiceSimulationEnginePullEventType.md +51 -47
- package/skill/references/enums/ESCH_SpiceSimulationEnginePushEventType.md +77 -69
- package/skill/references/enums/ESYS_BottomPanelTab.md +94 -80
- package/skill/references/enums/ESYS_HeaderMenuEnvironment.md +181 -157
- package/skill/references/enums/ESYS_ImportProjectBoardOutlineSource.md +55 -51
- package/skill/references/enums/ESYS_ImportProjectImportOption.md +64 -58
- package/skill/references/enums/ESYS_ImportProjectSchematicObjectStyle.md +51 -47
- package/skill/references/enums/ESYS_ImportProjectViaSolderMaskExpansion.md +55 -51
- package/skill/references/enums/ESYS_JobState.md +95 -0
- package/skill/references/enums/ESYS_LeftPanelTab.md +94 -80
- package/skill/references/enums/ESYS_LogType.md +77 -102
- package/skill/references/enums/ESYS_NetlistType.md +129 -113
- package/skill/references/enums/ESYS_PanelPosition.md +69 -0
- package/skill/references/enums/ESYS_PanelTab.md +368 -0
- package/skill/references/enums/ESYS_RightPanelTab.md +237 -201
- package/skill/references/enums/ESYS_ShortcutKeyEffectiveEditorRange.md +220 -190
- package/skill/references/enums/ESYS_ShortcutKeyEffectiveEditorScene.md +103 -91
- package/skill/references/enums/ESYS_StartPageQuickStartItem.md +237 -205
- package/skill/references/enums/ESYS_Theme.md +51 -47
- package/skill/references/enums/ESYS_ToastMessageType.md +90 -80
- package/skill/references/enums/ESYS_Unit.md +116 -102
- package/skill/references/enums/ESYS_WindowEventType.md +64 -47
- package/skill/references/enums/ESYS_WindowOpenTarget.md +51 -47
- package/skill/references/enums/NetportDeviceName.md +146 -146
- package/skill/references/enums/SchToolBarDeviceName.md +278 -278
- package/skill/references/interfaces/BoardProps.md +169 -169
- package/skill/references/interfaces/BorderConfig.md +109 -0
- package/skill/references/interfaces/ButtonProps.md +196 -169
- package/skill/references/interfaces/CellClickInfo.md +142 -0
- package/skill/references/interfaces/CellCoord.md +88 -0
- package/skill/references/interfaces/CheckBoxProps.md +223 -196
- package/skill/references/interfaces/CheckChangeDetail.md +88 -0
- package/skill/references/interfaces/CheckboxEditConfig.md +159 -0
- package/skill/references/interfaces/ClipboardCellData.md +142 -0
- package/skill/references/interfaces/ClipboardConfig.md +115 -0
- package/skill/references/interfaces/ColorPickerProps.md +169 -0
- package/skill/references/interfaces/ColumnDef.md +605 -0
- package/skill/references/interfaces/ColumnEditTrigger.md +57 -0
- package/skill/references/interfaces/ColumnGroupDef.md +192 -0
- package/skill/references/interfaces/ColumnResizeConfig.md +142 -0
- package/skill/references/interfaces/ComponentPropsMap.md +517 -448
- package/skill/references/interfaces/CustomHeaderConfig.md +169 -0
- package/skill/references/interfaces/DialogProps.md +385 -385
- package/skill/references/interfaces/DragSortConfig.md +115 -0
- package/skill/references/interfaces/EditingConfig.md +196 -0
- package/skill/references/interfaces/FilteringConfig.md +250 -0
- package/skill/references/interfaces/FixedColumnConfig.md +88 -0
- package/skill/references/interfaces/FlexItemProps.md +116 -116
- package/skill/references/interfaces/FlexProps.md +224 -224
- package/skill/references/interfaces/GridItemProps.md +143 -143
- package/skill/references/interfaces/GridProps.md +143 -143
- package/skill/references/interfaces/IDMT_BoardItem.md +171 -171
- package/skill/references/interfaces/IDMT_BriefProjectItem.md +171 -171
- package/skill/references/interfaces/IDMT_EditorDocumentItem.md +169 -169
- package/skill/references/interfaces/IDMT_EditorSplitScreenItem.md +173 -173
- package/skill/references/interfaces/IDMT_EditorTabItem.md +169 -169
- package/skill/references/interfaces/IDMT_FolderItem.md +225 -225
- package/skill/references/interfaces/IDMT_IndicatorMarkerShape.md +393 -393
- package/skill/references/interfaces/IDMT_PanelItem.md +144 -144
- package/skill/references/interfaces/IDMT_PcbItem.md +171 -171
- package/skill/references/interfaces/IDMT_ProjectItem.md +143 -143
- package/skill/references/interfaces/IDMT_SchematicItem.md +225 -225
- package/skill/references/interfaces/IDMT_SchematicPageItem.md +198 -198
- package/skill/references/interfaces/IDMT_TeamItem.md +144 -144
- package/skill/references/interfaces/IDMT_WorkspaceItem.md +117 -117
- package/skill/references/interfaces/IDesignPortal.md +103 -103
- package/skill/references/interfaces/ILIB_3DModelItem.md +198 -198
- package/skill/references/interfaces/ILIB_3DModelSearchItem.md +277 -277
- package/skill/references/interfaces/ILIB_CbbItem.md +225 -225
- package/skill/references/interfaces/ILIB_CbbSearchItem.md +277 -277
- package/skill/references/interfaces/ILIB_ClassificationIndex.md +150 -150
- package/skill/references/interfaces/ILIB_ClassificationNode.md +98 -0
- package/skill/references/interfaces/ILIB_DeviceAssociationItem.md +210 -210
- package/skill/references/interfaces/ILIB_DeviceExtendPropertyItem.md +304 -304
- package/skill/references/interfaces/ILIB_DeviceItem.md +279 -279
- package/skill/references/interfaces/ILIB_DevicePropertiesForSearch.md +250 -250
- package/skill/references/interfaces/ILIB_DeviceSearchItem.md +521 -521
- package/skill/references/interfaces/ILIB_ExtendLibrary3DModelFunctions.md +64 -64
- package/skill/references/interfaces/ILIB_ExtendLibraryCbbFunctions.md +93 -99
- package/skill/references/interfaces/ILIB_ExtendLibraryClassificationIndex.md +150 -150
- package/skill/references/interfaces/ILIB_ExtendLibraryDeviceFunctions.md +143 -157
- package/skill/references/interfaces/ILIB_ExtendLibraryFootprintFunctions.md +63 -63
- package/skill/references/interfaces/ILIB_ExtendLibraryFunctions.md +123 -123
- package/skill/references/interfaces/ILIB_ExtendLibraryItem.md +97 -97
- package/skill/references/interfaces/ILIB_ExtendLibraryItemIndex.md +98 -98
- package/skill/references/interfaces/ILIB_ExtendLibrarySearchProperty.md +115 -115
- package/skill/references/interfaces/ILIB_ExtendLibrarySearchResult.md +169 -169
- package/skill/references/interfaces/ILIB_ExtendLibrarySearchResultDataLine.md +234 -234
- package/skill/references/interfaces/ILIB_ExtendLibrarySymbolFunctions.md +91 -105
- package/skill/references/interfaces/ILIB_ExtendLibraryUserIndex.md +96 -96
- package/skill/references/interfaces/ILIB_FootprintItem.md +256 -198
- package/skill/references/interfaces/ILIB_FootprintPropertiesForSearch.md +61 -61
- package/skill/references/interfaces/ILIB_FootprintSearchItem.md +277 -277
- package/skill/references/interfaces/ILIB_LibraryInfo.md +92 -92
- package/skill/references/interfaces/ILIB_LibraryItem.md +115 -115
- package/skill/references/interfaces/ILIB_PanelLibraryItem.md +198 -198
- package/skill/references/interfaces/ILIB_PanelLibrarySearchItem.md +277 -277
- package/skill/references/interfaces/ILIB_RegisterExtendLibraryProps.md +71 -0
- package/skill/references/interfaces/ILIB_SimulationModelItem.md +306 -306
- package/skill/references/interfaces/ILIB_SimulationModelSearchItem.md +304 -304
- package/skill/references/interfaces/ILIB_SymbolItem.md +306 -279
- package/skill/references/interfaces/ILIB_SymbolPropertiesForSearch.md +61 -61
- package/skill/references/interfaces/ILIB_SymbolSearchItem.md +304 -304
- package/skill/references/interfaces/IPCB_AutoLayoutResult.md +169 -169
- package/skill/references/interfaces/IPCB_AutoRoutingProps.md +220 -220
- package/skill/references/interfaces/IPCB_AutoRoutingResult.md +169 -169
- package/skill/references/interfaces/IPCB_BomPropertiesTableColumns.md +169 -169
- package/skill/references/interfaces/IPCB_DifferentialPairItem.md +115 -115
- package/skill/references/interfaces/IPCB_DiscretizeOptions.md +65 -65
- package/skill/references/interfaces/IPCB_DiscretizedPoint.md +88 -88
- package/skill/references/interfaces/IPCB_EqualLengthNetGroupItem.md +115 -115
- package/skill/references/interfaces/IPCB_LayerItem.md +277 -277
- package/skill/references/interfaces/IPCB_NetClassItem.md +115 -115
- package/skill/references/interfaces/IPCB_NetInfo.md +115 -115
- package/skill/references/interfaces/IPCB_PadPairGroupItem.md +88 -88
- package/skill/references/interfaces/IPCB_PadPairMinWireLengthItem.md +88 -88
- package/skill/references/interfaces/IPCB_PhysicalStackingConfiguration.md +115 -115
- package/skill/references/interfaces/IPCB_Primitive.md +218 -218
- package/skill/references/interfaces/IPCB_PrimitiveAPI.md +174 -175
- package/skill/references/interfaces/IPCB_PrimitivePadHeatWelding.md +151 -151
- package/skill/references/interfaces/IPCB_PrimitivePouredPourFill.md +142 -142
- package/skill/references/interfaces/IPCB_PrimitiveSolderMaskAndPasteMaskExpansion.md +154 -154
- package/skill/references/interfaces/IPCB_RayTracerBackgroundConfig.md +223 -0
- package/skill/references/interfaces/IPCB_RayTracerLightConfig.md +412 -0
- package/skill/references/interfaces/IPCB_RayTracerMaterialConfig.md +547 -0
- package/skill/references/interfaces/IPCB_RayTracerPcbMaterialConfig.md +196 -0
- package/skill/references/interfaces/IPCB_RayTracerRenderConfigurations.md +200 -0
- package/skill/references/interfaces/IPCB_RayTracerRendererConfig.md +196 -0
- package/skill/references/interfaces/IPCB_RayTracerSceneElement.md +115 -0
- package/skill/references/interfaces/IPCB_RayTracerSceneElementTransform.md +123 -0
- package/skill/references/interfaces/IPCB_RayTracerTexture.md +88 -0
- package/skill/references/interfaces/IPCB_SubstratePhysicalProperties.md +88 -88
- package/skill/references/interfaces/IRawNet.md +103 -103
- package/skill/references/interfaces/IRawPureSchematic.md +80 -80
- package/skill/references/interfaces/IRawSchematic.md +103 -103
- package/skill/references/interfaces/IRawWire.md +149 -149
- package/skill/references/interfaces/ISCH_DrcError.md +142 -142
- package/skill/references/interfaces/ISCH_DrcErrorPrimitive.md +142 -142
- package/skill/references/interfaces/ISCH_ExportPngResolution.md +94 -94
- package/skill/references/interfaces/ISCH_NetInfo.md +88 -88
- package/skill/references/interfaces/ISCH_Primitive.md +218 -219
- package/skill/references/interfaces/ISCH_PrimitiveAPI.md +174 -175
- package/skill/references/interfaces/ISCH_ProjectNetInfo.md +142 -142
- package/skill/references/interfaces/ISCH_WireInfo.md +169 -169
- package/skill/references/interfaces/ISYS_ComparisonResponse.md +115 -0
- package/skill/references/interfaces/ISYS_ExtensionExternalApiIndex.md +13 -0
- package/skill/references/interfaces/ISYS_ExtensionRegisteredExternalApis.md +13 -0
- package/skill/references/interfaces/ISYS_ExternalApiHelp.md +173 -0
- package/skill/references/interfaces/ISYS_ExternalApiRegistration.md +146 -0
- package/skill/references/interfaces/ISYS_FileSystemFileList.md +169 -169
- package/skill/references/interfaces/ISYS_HeaderMenuSub1MenuItem.md +205 -174
- package/skill/references/interfaces/ISYS_HeaderMenuSub2MenuItem.md +178 -147
- package/skill/references/interfaces/ISYS_HeaderMenuTopMenuItem.md +115 -115
- package/skill/references/interfaces/ISYS_HeaderMenus.md +408 -408
- package/skill/references/interfaces/ISYS_HelpAudienceEntry.md +92 -0
- package/skill/references/interfaces/ISYS_HelpClassSummary.md +205 -0
- package/skill/references/interfaces/ISYS_HelpData.md +92 -0
- package/skill/references/interfaces/ISYS_HelpMethodDetail.md +310 -0
- package/skill/references/interfaces/ISYS_JobHandle.md +65 -0
- package/skill/references/interfaces/ISYS_JobLogEntry.md +142 -0
- package/skill/references/interfaces/ISYS_JobStatus.md +176 -0
- package/skill/references/interfaces/ISYS_LogLine.md +115 -115
- package/skill/references/interfaces/ISYS_MathBBox.md +142 -142
- package/skill/references/interfaces/ISYS_MathPoint.md +88 -88
- package/skill/references/interfaces/ISYS_MathPolygonWithHoles.md +92 -92
- package/skill/references/interfaces/ISYS_MessageBusTask.md +115 -115
- package/skill/references/interfaces/ISYS_MultilingualLanguagesData.md +12 -12
- package/skill/references/interfaces/ISYS_RightClickMenuItem.md +174 -174
- package/skill/references/interfaces/ISYS_ShortcutKeyData.md +169 -169
- package/skill/references/interfaces/ISYS_ShortcutKeyDataWithCallFn.md +62 -62
- package/skill/references/interfaces/ISYS_ShortcutKeyDataWithUserDefinedShortcutKey.md +62 -62
- package/skill/references/interfaces/ISYS_WindowEventListenerRemovableObject.md +109 -109
- package/skill/references/interfaces/IconProps.md +88 -88
- package/skill/references/interfaces/ImageProps.md +115 -115
- package/skill/references/interfaces/InputEditConfig.md +182 -0
- package/skill/references/interfaces/InputProps.md +547 -520
- package/skill/references/interfaces/KeyboardConfig.md +61 -0
- package/skill/references/interfaces/ListChildren.md +223 -223
- package/skill/references/interfaces/ListProps.md +250 -223
- package/skill/references/interfaces/ModalProps.md +358 -358
- package/skill/references/interfaces/NumberEditConfig.md +234 -0
- package/skill/references/interfaces/RadioGroupProps.md +196 -196
- package/skill/references/interfaces/RadioItem.md +115 -115
- package/skill/references/interfaces/RichTableProps.md +1357 -0
- package/skill/references/interfaces/RowMetaConfig.md +142 -0
- package/skill/references/interfaces/ScrollerProps.md +169 -169
- package/skill/references/interfaces/SelectEditConfig.md +211 -0
- package/skill/references/interfaces/SelectListItem.md +142 -142
- package/skill/references/interfaces/SelectOption.md +142 -0
- package/skill/references/interfaces/SelectProps.md +169 -169
- package/skill/references/interfaces/SelectionConfig.md +358 -0
- package/skill/references/interfaces/SliderProps.md +142 -0
- package/skill/references/interfaces/SlotProps.md +88 -88
- package/skill/references/interfaces/SortState.md +88 -0
- package/skill/references/interfaces/SortingConfig.md +169 -0
- package/skill/references/interfaces/StyleProps.md +439 -385
- package/skill/references/interfaces/TextAreaProps.md +196 -196
- package/skill/references/interfaces/TextProps.md +169 -169
- package/skill/references/interfaces/TextareaEditConfig.md +182 -0
- package/skill/references/interfaces/ValidationRule.md +223 -0
- package/skill/references/interfaces/VirtualScrollConfig.md +115 -0
- package/skill/references/types/Align.md +9 -0
- package/skill/references/types/CellContentType.md +9 -0
- package/skill/references/types/ColumnDefOrGroup.md +12 -0
- package/skill/references/types/ColumnEditConfig.md +13 -0
- package/skill/references/types/ColumnType.md +9 -0
- package/skill/references/types/DataChangeType.md +9 -0
- package/skill/references/types/FilterMatchMode.md +9 -0
- package/skill/references/types/RichTableRow.md +12 -0
- package/skill/references/types/Serializable.md +10 -0
- package/skill/references/types/SerializablePrimitive.md +9 -0
- package/skill/references/types/SortOrder.md +9 -0
- package/skill/references/types/TPCB_LayerTypesOfInnerLayer.md +11 -11
- package/skill/references/types/TPCB_LayersInTheSelectable.md +42 -42
- package/skill/references/types/TPCB_LayersOfComponent.md +11 -11
- package/skill/references/types/TPCB_LayersOfCopper.md +15 -15
- package/skill/references/types/TPCB_LayersOfCustom.md +41 -41
- package/skill/references/types/TPCB_LayersOfDimension.md +16 -16
- package/skill/references/types/TPCB_LayersOfFill.md +28 -28
- package/skill/references/types/TPCB_LayersOfImage.md +22 -22
- package/skill/references/types/TPCB_LayersOfInner.md +41 -41
- package/skill/references/types/TPCB_LayersOfLine.md +25 -25
- package/skill/references/types/TPCB_LayersOfObject.md +12 -12
- package/skill/references/types/TPCB_LayersOfPad.md +11 -11
- package/skill/references/types/TPCB_LayersOfRegion.md +11 -11
- package/skill/references/types/TPCB_NumberOfCopperLayers.md +9 -9
- package/skill/references/types/TPCB_PolygonSourceArray.md +85 -83
- package/skill/references/types/TPCB_PrimitiveDimensionCoordinateSet.md +66 -66
- package/skill/references/types/TPCB_PrimitivePadHole.md +30 -30
- package/skill/references/types/TPCB_PrimitivePadShape.md +61 -61
- package/skill/references/types/TPCB_PrimitiveSpecialPadShape.md +19 -19
- package/skill/references/types/TSYS_ComparisonErrorCode.md +15 -0
- package/skill/references/types/TSYS_LanguageKeyValuePairs.md +13 -0
- package/skill/references/types/TSYS_MathPolygonGroup.md +15 -15
- package/skill/references/types/TSYS_MathPolygonInput.md +20 -20
- package/skill/references/types/TSYS_ShortcutKeys.md +96 -96
- package/skill/user-guide/using-extension.md +47 -47
- package/src/json-gen.test.js +430 -0
- package/skill/guide/ancillary-projects/pro-api-sdk.md +0 -1
- package/skill/references/interfaces/ISYS_PcbComparisonResponse.md +0 -115
- package/skill/references/types/ISYS_LanguageKeyValuePairs.md +0 -13
- package/skill/references/types/TSYS_PcbComparisonErrorCode.md +0 -10
package/skill/format/index.md
CHANGED
|
@@ -1,152 +1,152 @@
|
|
|
1
|
-
# EasyEDA File Format
|
|
2
|
-
|
|
3
|
-
## V2.2 File Format
|
|
4
|
-
|
|
5
|
-
V2.2 file format: [lceda-pro-file-format-v2.2_2022.12.15.zip](https://image.lceda.cn/files/lceda-pro-file-format-v2.2_2022.12.15.zip)
|
|
6
|
-
|
|
7
|
-
Hint: This is not the latest file format specification, but it contains most of the format details.
|
|
8
|
-
|
|
9
|
-
## V3 File Format
|
|
10
|
-
|
|
11
|
-
V3 uses a brand-new source format, completely different from previous formats.
|
|
12
|
-
|
|
13
|
-
Hint: EasyEDA 3.0 fully redesigned the project format, using the concept of logs for incremental storage of project changes; and switched from the array offset design style in 2.0 to a key-value style, making future format evolution easier, compatibility code development simpler, and readability improved.
|
|
14
|
-
|
|
15
|
-
V3 file format (example files included in the zip):
|
|
16
|
-
- [lceda-pro-file-format-v3_2025.10.21.zip](https://image.lceda.cn/files/lceda-pro-file-format-v3_2025.10.21.zip)
|
|
17
|
-
- [lceda-pro-file-format-v3_2025.10.21.md](https://image.lceda.cn/files/lceda-pro-file-format-v3_2025.10.21.md)
|
|
18
|
-
- [lceda-pro-file-format-v3_2025.10.21.pdf](https://image.lceda.cn/files/lceda-pro-file-format-v3_2025.10.21.pdf)
|
|
19
|
-
|
|
20
|
-
### Format Details Documents
|
|
21
|
-
|
|
22
|
-
- [Project Format](/en/format/project/index/)
|
|
23
|
-
- [Schematic Format](/en/format/schematic/index/)
|
|
24
|
-
- [PCB Format](/en/format/pcb/index/)
|
|
25
|
-
|
|
26
|
-
### Basic Document Format
|
|
27
|
-
|
|
28
|
-
#### Document Conventions
|
|
29
|
-
|
|
30
|
-
- All project data is stored in a log document. The first line of each change record must be the file header `DOCTYPE` to distinguish different document types. `DOCTYPE` exists as a `block-level element` in the project log.
|
|
31
|
-
- Each line consists of two valid JSON objects concatenated together. The first object is used by the eventual consistency framework for parsing, and the latter is the `atomic structural object`.
|
|
32
|
-
- Key names use camelCase, with the first letter of each word capitalized (except the first word), and no underscores or other separators between words.
|
|
33
|
-
- All primitives must carry a `unique ID` within the file.
|
|
34
|
-
- `Rotation angle` is positive in the counter-clockwise direction, and angles are always in degrees.
|
|
35
|
-
- Unless otherwise specified, all coordinates, lengths, and sizes use `0.01 inch` as the unit.
|
|
36
|
-
- All colors are expressed as `"#RRGGBB"`. To indicate no color (fully transparent), use `""`.
|
|
37
|
-
- All properties described as `whether XXXX` are encoded with `1` for yes and `0` for no.
|
|
38
|
-
- Parts not explicitly described in these conventions (such as escaping) follow [RFC 7195 The JavaScript Object Notation (JSON) Data Interchange Format](https://tools.ietf.org/html/rfc7159).
|
|
39
|
-
|
|
40
|
-
#### Type Categories
|
|
41
|
-
|
|
42
|
-
- **Common Data**: Includes basic information, creation information, modification information, etc.
|
|
43
|
-
- **Basic Information**: Includes metadata for project config, board, schematic, PCB, panel, symbol, footprint, device, etc.
|
|
44
|
-
- **BLOB True-Color Image**: True-color image data format.
|
|
45
|
-
- **Instance Attribute Override**: Instance attribute override format.
|
|
46
|
-
- **Variant**: Variant data format.
|
|
47
|
-
- **Component Grouping**: Component grouping data format.
|
|
48
|
-
|
|
49
|
-
#### Document Header
|
|
50
|
-
|
|
51
|
-
- All data must begin with a document header to distinguish different document types.
|
|
52
|
-
- When parsing line by line, encountering a document header means the following data belongs to that document until the next document header is encountered.
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
{ "type": "DOCHEAD" }||{ "docType": "SCH_PAGE", "uuid": "UUID", "client": "clientID" }|
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
1. type: "DOCHEAD", document header identifier.
|
|
59
|
-
2. docType: document type.
|
|
60
|
-
3. uuid: document unique ID, unique within the project.
|
|
61
|
-
4. client: terminal identifier for eventual consistency.
|
|
62
|
-
|
|
63
|
-
###### docType Document Types
|
|
64
|
-
|
|
65
|
-
- Project config `PROJECT_CONFIG`
|
|
66
|
-
- Board `BOARD`
|
|
67
|
-
- Schematic `SCH`
|
|
68
|
-
- Schematic page `SCH_PAGE`
|
|
69
|
-
- PCB `PCB`
|
|
70
|
-
- Panel `PANEL`
|
|
71
|
-
- Symbol `SYMBOL`
|
|
72
|
-
- Footprint `FOOTPRINT`
|
|
73
|
-
- Device `DEVICE`
|
|
74
|
-
- True-color image `BLOB`
|
|
75
|
-
- Instance attributes `INSTANCE`
|
|
76
|
-
|
|
77
|
-
#### Data Format
|
|
78
|
-
|
|
79
|
-
```json
|
|
80
|
-
{ "type": "TYPE", "id": "UUID", "ticket": 1}||{["key": string]: any}|
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
The identifier `||` splits a record into inner and outer layers:
|
|
84
|
-
|
|
85
|
-
1. Outer layer data: used by the eventual consistency framework to ensure data consistency.
|
|
86
|
-
1. type: data type.
|
|
87
|
-
2. id: unique ID, must be unique within the specific type in the document.
|
|
88
|
-
3. ticket: logical clock, only used by the eventual consistency framework to ensure data uniqueness.
|
|
89
|
-
2. Inner layer data: primitive atomic data, a `key-value` object. Specific contents are detailed in the corresponding document for each type.
|
|
90
|
-
|
|
91
|
-
The reason for splitting into inner and outer layers is that in the eventual consistency framework, the specific primitive data does not need to be concerned; only the outer layer data is needed to ensure data uniqueness, reducing unnecessary JSON parsing and saving memory.
|
|
92
|
-
|
|
93
|
-
```json
|
|
94
|
-
{ "type": "META", "ticket": 1}||{"name": "name"}|
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Some data can only retain one record within a document. The `type` field alone can indicate uniqueness, so the `id` field is omitted. The `id` field is only used to distinguish multiple records of the same type.
|
|
98
|
-
|
|
99
|
-
#### Eventual Consistency
|
|
100
|
-
|
|
101
|
-
- In Storage 3.0, adding, deleting, or modifying data adds a record to the log, so multiple records in the log may represent the same data.
|
|
102
|
-
- The eventual consistency framework decides which record to keep based on the `type`, `id`, and `ticket` fields.
|
|
103
|
-
|
|
104
|
-
ps: For more details, please refer to the eventual consistency design document. Here we only explain the use of relevant fields.
|
|
105
|
-
|
|
106
|
-
###### Two records with the same type and id
|
|
107
|
-
|
|
108
|
-
```json
|
|
109
|
-
{ "type": "TYPE", "id": "UUID", "ticket": 1}||{"data": 1}|
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
```json
|
|
113
|
-
{ "type": "TYPE", "id": "UUID", "ticket": 2}||{"data": 2}|
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
The eventual consistency framework compares the `ticket` field and keeps the record with the larger ticket. In the example above, the record with `data` 2 is kept.
|
|
117
|
-
|
|
118
|
-
###### Same type, same id, and same ticket
|
|
119
|
-
|
|
120
|
-
```json
|
|
121
|
-
{ "type": "DOCHEAD" }||{ "docType": "SCH_PAGE", "uuid": "UUID", "client": "1" }|
|
|
122
|
-
{ "type": "TYPE", "id": "UUID", "ticket": 1}||{"data": 1}|
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
```json
|
|
126
|
-
{ "type": "DOCHEAD" }||{ "docType": "SCH_PAGE", "uuid": "UUID", "client": "2" }|
|
|
127
|
-
{ "type": "TYPE", "id": "UUID", "ticket": 1}||{"data": 2}|
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
Then the `client` field in the document header is compared, and the record with the smaller client identifier is kept. In the example above, the record with `data` 1 is kept.
|
|
131
|
-
|
|
132
|
-
#### Deletion
|
|
133
|
-
|
|
134
|
-
##### Atomic Data Deletion
|
|
135
|
-
|
|
136
|
-
```json
|
|
137
|
-
{ "type": "TYPE", "id": "UUID", "ticket": 1}||""
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Deleting data actually means setting the inner layer data to an empty string.
|
|
141
|
-
|
|
142
|
-
##### Document Deletion
|
|
143
|
-
|
|
144
|
-
```json
|
|
145
|
-
{ "type": "DELETE_DOC", "ticket": 1}||{"isDelete": true}|
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
1. type `DELETE_DOC` document deletion identifier.
|
|
149
|
-
2. isDelete whether deleted.
|
|
150
|
-
|
|
151
|
-
- Document deletion actually adds a deletion marker and does not directly delete document data from the log, to facilitate undoing document deletion and maintaining data consistency.
|
|
152
|
-
- All deleted data is retained in the log. If users want to remove deleted data records from the project, they should clone the project. Log snapshots will not clear related deletion records.
|
|
1
|
+
# EasyEDA File Format
|
|
2
|
+
|
|
3
|
+
## V2.2 File Format
|
|
4
|
+
|
|
5
|
+
V2.2 file format: [lceda-pro-file-format-v2.2_2022.12.15.zip](https://image.lceda.cn/files/lceda-pro-file-format-v2.2_2022.12.15.zip)
|
|
6
|
+
|
|
7
|
+
Hint: This is not the latest file format specification, but it contains most of the format details.
|
|
8
|
+
|
|
9
|
+
## V3 File Format
|
|
10
|
+
|
|
11
|
+
V3 uses a brand-new source format, completely different from previous formats.
|
|
12
|
+
|
|
13
|
+
Hint: EasyEDA 3.0 fully redesigned the project format, using the concept of logs for incremental storage of project changes; and switched from the array offset design style in 2.0 to a key-value style, making future format evolution easier, compatibility code development simpler, and readability improved.
|
|
14
|
+
|
|
15
|
+
V3 file format (example files included in the zip):
|
|
16
|
+
- [lceda-pro-file-format-v3_2025.10.21.zip](https://image.lceda.cn/files/lceda-pro-file-format-v3_2025.10.21.zip)
|
|
17
|
+
- [lceda-pro-file-format-v3_2025.10.21.md](https://image.lceda.cn/files/lceda-pro-file-format-v3_2025.10.21.md)
|
|
18
|
+
- [lceda-pro-file-format-v3_2025.10.21.pdf](https://image.lceda.cn/files/lceda-pro-file-format-v3_2025.10.21.pdf)
|
|
19
|
+
|
|
20
|
+
### Format Details Documents
|
|
21
|
+
|
|
22
|
+
- [Project Format](/en/format/project/index/)
|
|
23
|
+
- [Schematic Format](/en/format/schematic/index/)
|
|
24
|
+
- [PCB Format](/en/format/pcb/index/)
|
|
25
|
+
|
|
26
|
+
### Basic Document Format
|
|
27
|
+
|
|
28
|
+
#### Document Conventions
|
|
29
|
+
|
|
30
|
+
- All project data is stored in a log document. The first line of each change record must be the file header `DOCTYPE` to distinguish different document types. `DOCTYPE` exists as a `block-level element` in the project log.
|
|
31
|
+
- Each line consists of two valid JSON objects concatenated together. The first object is used by the eventual consistency framework for parsing, and the latter is the `atomic structural object`.
|
|
32
|
+
- Key names use camelCase, with the first letter of each word capitalized (except the first word), and no underscores or other separators between words.
|
|
33
|
+
- All primitives must carry a `unique ID` within the file.
|
|
34
|
+
- `Rotation angle` is positive in the counter-clockwise direction, and angles are always in degrees.
|
|
35
|
+
- Unless otherwise specified, all coordinates, lengths, and sizes use `0.01 inch` as the unit.
|
|
36
|
+
- All colors are expressed as `"#RRGGBB"`. To indicate no color (fully transparent), use `""`.
|
|
37
|
+
- All properties described as `whether XXXX` are encoded with `1` for yes and `0` for no.
|
|
38
|
+
- Parts not explicitly described in these conventions (such as escaping) follow [RFC 7195 The JavaScript Object Notation (JSON) Data Interchange Format](https://tools.ietf.org/html/rfc7159).
|
|
39
|
+
|
|
40
|
+
#### Type Categories
|
|
41
|
+
|
|
42
|
+
- **Common Data**: Includes basic information, creation information, modification information, etc.
|
|
43
|
+
- **Basic Information**: Includes metadata for project config, board, schematic, PCB, panel, symbol, footprint, device, etc.
|
|
44
|
+
- **BLOB True-Color Image**: True-color image data format.
|
|
45
|
+
- **Instance Attribute Override**: Instance attribute override format.
|
|
46
|
+
- **Variant**: Variant data format.
|
|
47
|
+
- **Component Grouping**: Component grouping data format.
|
|
48
|
+
|
|
49
|
+
#### Document Header
|
|
50
|
+
|
|
51
|
+
- All data must begin with a document header to distinguish different document types.
|
|
52
|
+
- When parsing line by line, encountering a document header means the following data belongs to that document until the next document header is encountered.
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{ "type": "DOCHEAD" }||{ "docType": "SCH_PAGE", "uuid": "UUID", "client": "clientID" }|
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
1. type: "DOCHEAD", document header identifier.
|
|
59
|
+
2. docType: document type.
|
|
60
|
+
3. uuid: document unique ID, unique within the project.
|
|
61
|
+
4. client: terminal identifier for eventual consistency.
|
|
62
|
+
|
|
63
|
+
###### docType Document Types
|
|
64
|
+
|
|
65
|
+
- Project config `PROJECT_CONFIG`
|
|
66
|
+
- Board `BOARD`
|
|
67
|
+
- Schematic `SCH`
|
|
68
|
+
- Schematic page `SCH_PAGE`
|
|
69
|
+
- PCB `PCB`
|
|
70
|
+
- Panel `PANEL`
|
|
71
|
+
- Symbol `SYMBOL`
|
|
72
|
+
- Footprint `FOOTPRINT`
|
|
73
|
+
- Device `DEVICE`
|
|
74
|
+
- True-color image `BLOB`
|
|
75
|
+
- Instance attributes `INSTANCE`
|
|
76
|
+
|
|
77
|
+
#### Data Format
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{ "type": "TYPE", "id": "UUID", "ticket": 1}||{["key": string]: any}|
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
The identifier `||` splits a record into inner and outer layers:
|
|
84
|
+
|
|
85
|
+
1. Outer layer data: used by the eventual consistency framework to ensure data consistency.
|
|
86
|
+
1. type: data type.
|
|
87
|
+
2. id: unique ID, must be unique within the specific type in the document.
|
|
88
|
+
3. ticket: logical clock, only used by the eventual consistency framework to ensure data uniqueness.
|
|
89
|
+
2. Inner layer data: primitive atomic data, a `key-value` object. Specific contents are detailed in the corresponding document for each type.
|
|
90
|
+
|
|
91
|
+
The reason for splitting into inner and outer layers is that in the eventual consistency framework, the specific primitive data does not need to be concerned; only the outer layer data is needed to ensure data uniqueness, reducing unnecessary JSON parsing and saving memory.
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{ "type": "META", "ticket": 1}||{"name": "name"}|
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Some data can only retain one record within a document. The `type` field alone can indicate uniqueness, so the `id` field is omitted. The `id` field is only used to distinguish multiple records of the same type.
|
|
98
|
+
|
|
99
|
+
#### Eventual Consistency
|
|
100
|
+
|
|
101
|
+
- In Storage 3.0, adding, deleting, or modifying data adds a record to the log, so multiple records in the log may represent the same data.
|
|
102
|
+
- The eventual consistency framework decides which record to keep based on the `type`, `id`, and `ticket` fields.
|
|
103
|
+
|
|
104
|
+
ps: For more details, please refer to the eventual consistency design document. Here we only explain the use of relevant fields.
|
|
105
|
+
|
|
106
|
+
###### Two records with the same type and id
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{ "type": "TYPE", "id": "UUID", "ticket": 1}||{"data": 1}|
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
```json
|
|
113
|
+
{ "type": "TYPE", "id": "UUID", "ticket": 2}||{"data": 2}|
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The eventual consistency framework compares the `ticket` field and keeps the record with the larger ticket. In the example above, the record with `data` 2 is kept.
|
|
117
|
+
|
|
118
|
+
###### Same type, same id, and same ticket
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{ "type": "DOCHEAD" }||{ "docType": "SCH_PAGE", "uuid": "UUID", "client": "1" }|
|
|
122
|
+
{ "type": "TYPE", "id": "UUID", "ticket": 1}||{"data": 1}|
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```json
|
|
126
|
+
{ "type": "DOCHEAD" }||{ "docType": "SCH_PAGE", "uuid": "UUID", "client": "2" }|
|
|
127
|
+
{ "type": "TYPE", "id": "UUID", "ticket": 1}||{"data": 2}|
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Then the `client` field in the document header is compared, and the record with the smaller client identifier is kept. In the example above, the record with `data` 1 is kept.
|
|
131
|
+
|
|
132
|
+
#### Deletion
|
|
133
|
+
|
|
134
|
+
##### Atomic Data Deletion
|
|
135
|
+
|
|
136
|
+
```json
|
|
137
|
+
{ "type": "TYPE", "id": "UUID", "ticket": 1}||""
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Deleting data actually means setting the inner layer data to an empty string.
|
|
141
|
+
|
|
142
|
+
##### Document Deletion
|
|
143
|
+
|
|
144
|
+
```json
|
|
145
|
+
{ "type": "DELETE_DOC", "ticket": 1}||{"isDelete": true}|
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
1. type `DELETE_DOC` document deletion identifier.
|
|
149
|
+
2. isDelete whether deleted.
|
|
150
|
+
|
|
151
|
+
- Document deletion actually adds a deletion marker and does not directly delete document data from the log, to facilitate undoing document deletion and maintaining data consistency.
|
|
152
|
+
- All deleted data is retained in the log. If users want to remove deleted data records from the project, they should clone the project. Log snapshots will not clear related deletion records.
|
package/skill/format/pcb/3d.md
CHANGED
|
@@ -1,166 +1,166 @@
|
|
|
1
|
-
# 3D Shell System
|
|
2
|
-
|
|
3
|
-
## SHELL Shell
|
|
4
|
-
|
|
5
|
-
```json
|
|
6
|
-
{ "type": "SHELL", "id":"UUID", "ticket": 1 }||
|
|
7
|
-
{
|
|
8
|
-
"partitionId":null,
|
|
9
|
-
"groupId":0,
|
|
10
|
-
"locked":1,
|
|
11
|
-
"zIndex":0.223,
|
|
12
|
-
"shellType":"T&B",
|
|
13
|
-
"shellHeight":50,
|
|
14
|
-
"pcbHeight":100,
|
|
15
|
-
"strokeWidth":10,
|
|
16
|
-
"path":"complex polygon",
|
|
17
|
-
"attrs":{},
|
|
18
|
-
}|
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
1. type shell `SHELL`.
|
|
22
|
-
2. id primitive ID, unique within the document.
|
|
23
|
-
3. ticket logical clock.
|
|
24
|
-
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
25
|
-
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
26
|
-
6. locked whether locked.
|
|
27
|
-
7. zIndex Z-axis height.
|
|
28
|
-
8. shellType shell type.
|
|
29
|
-
- `T&B` top & bottom shell.
|
|
30
|
-
- `DRAWER` drawer.
|
|
31
|
-
- `CLAM` clamshell.
|
|
32
|
-
9. shellHeight shell height.
|
|
33
|
-
10. pcbHeight PCB height.
|
|
34
|
-
11. strokeWidth \*line width (deprecated).
|
|
35
|
-
12. path see complex polygon.
|
|
36
|
-
13. attrs custom attributes: each 3D shell type has a set of custom shell attributes.
|
|
37
|
-
- T&B
|
|
38
|
-
- Thickness: shell thickness.
|
|
39
|
-
- BottomHeight: bottom shell height.
|
|
40
|
-
- TopInnerHeight: top shell inner wall height.
|
|
41
|
-
- TopInnerThickness: top shell inner wall thickness.
|
|
42
|
-
- DRAWER
|
|
43
|
-
- Thickness: shell thickness.
|
|
44
|
-
- Direction: drawer direction.
|
|
45
|
-
- `1` positive X axis.
|
|
46
|
-
- `2` negative X axis.
|
|
47
|
-
- `4` positive Y axis.
|
|
48
|
-
- `8` negative Y axis.
|
|
49
|
-
|
|
50
|
-
## CREASE Side Reference Line (Crease)
|
|
51
|
-
|
|
52
|
-
`CREASE` primitives need to be used with `CONNECT` to associate `SHELL_ENTITY` and `BOSS` to express shell slots.
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
{ "type": "CREASE", "id":"UUID", "ticket": 1 }||
|
|
56
|
-
{
|
|
57
|
-
"partitionId":null,
|
|
58
|
-
"groupId":0,
|
|
59
|
-
"locked":1,
|
|
60
|
-
"zIndex":8.275,
|
|
61
|
-
"layerId":49,
|
|
62
|
-
"startX":20,
|
|
63
|
-
"startY":30,
|
|
64
|
-
"endX":40,
|
|
65
|
-
"endY":50,
|
|
66
|
-
"angle":90,
|
|
67
|
-
}|
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
1. type crease `CREASE`.
|
|
71
|
-
2. id primitive ID, unique within the document.
|
|
72
|
-
3. ticket logical clock.
|
|
73
|
-
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
74
|
-
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
75
|
-
6. locked whether locked.
|
|
76
|
-
7. zIndex Z-axis height.
|
|
77
|
-
8. layerId layer.
|
|
78
|
-
9. startX start X.
|
|
79
|
-
10. startY start Y.
|
|
80
|
-
11. endX end X.
|
|
81
|
-
12. endY end Y.
|
|
82
|
-
13. angle fold angle.
|
|
83
|
-
|
|
84
|
-
## SHELL_ENTITY Shell Entity Area
|
|
85
|
-
|
|
86
|
-
A `SHELL_ENTITY` not associated with `CREASE` via `CONNECT` performs vertical fill/cut (slotting) for the top and bottom shells.
|
|
87
|
-
|
|
88
|
-
```json
|
|
89
|
-
{ "type": "SHELL_ENTITY", "id":"UUID", "ticket": 1 }||
|
|
90
|
-
{
|
|
91
|
-
"partitionId":null,
|
|
92
|
-
"groupId":0,
|
|
93
|
-
"locked":1,
|
|
94
|
-
"zIndex":0.15,
|
|
95
|
-
"layerId":50,
|
|
96
|
-
"booleanOperation":0,
|
|
97
|
-
"belong":0,
|
|
98
|
-
"depth":10,
|
|
99
|
-
"strokeWidth":10,
|
|
100
|
-
"path":"complex polygon",
|
|
101
|
-
}|
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
1. type shell entity area `SHELL_ENTITY`.
|
|
105
|
-
2. id primitive ID, unique within the document.
|
|
106
|
-
3. ticket logical clock.
|
|
107
|
-
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
108
|
-
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
109
|
-
6. locked whether locked.
|
|
110
|
-
7. zIndex Z-axis height.
|
|
111
|
-
8. layerId layer.
|
|
112
|
-
9. booleanOperation boolean operation: 0 cut, 1 fill.
|
|
113
|
-
10. belong affiliation: 0 auto, 1 top shell, 2 bottom shell, 4 shell border, 8 boss, 16 entity. Can be combined by addition.
|
|
114
|
-
- top + bottom shells: 3 = 1 + 2
|
|
115
|
-
- shell border + boss: 12 = 4 + 8
|
|
116
|
-
- boss + entity: 24 = 8 + 16
|
|
117
|
-
- shell border + boss + entity: 28 = 4 + 8 + 16
|
|
118
|
-
11. depth depth.
|
|
119
|
-
12. strokeWidth line width.
|
|
120
|
-
13. path see complex polygon.
|
|
121
|
-
|
|
122
|
-
## BOSS Boss
|
|
123
|
-
|
|
124
|
-
A `BOSS` associated with `CREASE` via `CONNECT` adds a side boss.
|
|
125
|
-
|
|
126
|
-
```json
|
|
127
|
-
{ "type": "BOSS", "id":"UUID", "ticket": 1 }||
|
|
128
|
-
{
|
|
129
|
-
"partitionId":null,
|
|
130
|
-
"groupId":0,
|
|
131
|
-
"locked":1,
|
|
132
|
-
"zIndex":0.8976,
|
|
133
|
-
"layerId":50,
|
|
134
|
-
"centerX":100,
|
|
135
|
-
"centerY":200,
|
|
136
|
-
"specification":"M2",
|
|
137
|
-
"depth":100,
|
|
138
|
-
"thickness":10,
|
|
139
|
-
"holeDiameter":20,
|
|
140
|
-
"counterBore":[100, 20],
|
|
141
|
-
"stiffener":[20, 40, 20, 10],
|
|
142
|
-
}|
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
1. type boss `BOSS`.
|
|
146
|
-
2. id primitive ID, unique within the document.
|
|
147
|
-
3. ticket logical clock.
|
|
148
|
-
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
149
|
-
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
150
|
-
6. locked whether locked.
|
|
151
|
-
7. zIndex Z-axis height.
|
|
152
|
-
8. layerId layer.
|
|
153
|
-
9. centerX center X.
|
|
154
|
-
10. centerY center Y.
|
|
155
|
-
11. specification screw specification: `"M2"`, `"M3"`, etc., or `null` for custom.
|
|
156
|
-
12. depth boss height.
|
|
157
|
-
13. thickness boss wall thickness.
|
|
158
|
-
14. holeDiameter through-hole diameter.
|
|
159
|
-
15. counterBore counterbore parameters, `null` means no counterbore.
|
|
160
|
-
- screw head height.
|
|
161
|
-
- screw head diameter.
|
|
162
|
-
16. stiffener rib parameters, `null` means no rib.
|
|
163
|
-
- rib top width.
|
|
164
|
-
- rib bottom width.
|
|
165
|
-
- rib distance from top of boss.
|
|
166
|
-
- rib thickness.
|
|
1
|
+
# 3D Shell System
|
|
2
|
+
|
|
3
|
+
## SHELL Shell
|
|
4
|
+
|
|
5
|
+
```json
|
|
6
|
+
{ "type": "SHELL", "id":"UUID", "ticket": 1 }||
|
|
7
|
+
{
|
|
8
|
+
"partitionId":null,
|
|
9
|
+
"groupId":0,
|
|
10
|
+
"locked":1,
|
|
11
|
+
"zIndex":0.223,
|
|
12
|
+
"shellType":"T&B",
|
|
13
|
+
"shellHeight":50,
|
|
14
|
+
"pcbHeight":100,
|
|
15
|
+
"strokeWidth":10,
|
|
16
|
+
"path":"complex polygon",
|
|
17
|
+
"attrs":{},
|
|
18
|
+
}|
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
1. type shell `SHELL`.
|
|
22
|
+
2. id primitive ID, unique within the document.
|
|
23
|
+
3. ticket logical clock.
|
|
24
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
25
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
26
|
+
6. locked whether locked.
|
|
27
|
+
7. zIndex Z-axis height.
|
|
28
|
+
8. shellType shell type.
|
|
29
|
+
- `T&B` top & bottom shell.
|
|
30
|
+
- `DRAWER` drawer.
|
|
31
|
+
- `CLAM` clamshell.
|
|
32
|
+
9. shellHeight shell height.
|
|
33
|
+
10. pcbHeight PCB height.
|
|
34
|
+
11. strokeWidth \*line width (deprecated).
|
|
35
|
+
12. path see complex polygon.
|
|
36
|
+
13. attrs custom attributes: each 3D shell type has a set of custom shell attributes.
|
|
37
|
+
- T&B
|
|
38
|
+
- Thickness: shell thickness.
|
|
39
|
+
- BottomHeight: bottom shell height.
|
|
40
|
+
- TopInnerHeight: top shell inner wall height.
|
|
41
|
+
- TopInnerThickness: top shell inner wall thickness.
|
|
42
|
+
- DRAWER
|
|
43
|
+
- Thickness: shell thickness.
|
|
44
|
+
- Direction: drawer direction.
|
|
45
|
+
- `1` positive X axis.
|
|
46
|
+
- `2` negative X axis.
|
|
47
|
+
- `4` positive Y axis.
|
|
48
|
+
- `8` negative Y axis.
|
|
49
|
+
|
|
50
|
+
## CREASE Side Reference Line (Crease)
|
|
51
|
+
|
|
52
|
+
`CREASE` primitives need to be used with `CONNECT` to associate `SHELL_ENTITY` and `BOSS` to express shell slots.
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{ "type": "CREASE", "id":"UUID", "ticket": 1 }||
|
|
56
|
+
{
|
|
57
|
+
"partitionId":null,
|
|
58
|
+
"groupId":0,
|
|
59
|
+
"locked":1,
|
|
60
|
+
"zIndex":8.275,
|
|
61
|
+
"layerId":49,
|
|
62
|
+
"startX":20,
|
|
63
|
+
"startY":30,
|
|
64
|
+
"endX":40,
|
|
65
|
+
"endY":50,
|
|
66
|
+
"angle":90,
|
|
67
|
+
}|
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
1. type crease `CREASE`.
|
|
71
|
+
2. id primitive ID, unique within the document.
|
|
72
|
+
3. ticket logical clock.
|
|
73
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
74
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
75
|
+
6. locked whether locked.
|
|
76
|
+
7. zIndex Z-axis height.
|
|
77
|
+
8. layerId layer.
|
|
78
|
+
9. startX start X.
|
|
79
|
+
10. startY start Y.
|
|
80
|
+
11. endX end X.
|
|
81
|
+
12. endY end Y.
|
|
82
|
+
13. angle fold angle.
|
|
83
|
+
|
|
84
|
+
## SHELL_ENTITY Shell Entity Area
|
|
85
|
+
|
|
86
|
+
A `SHELL_ENTITY` not associated with `CREASE` via `CONNECT` performs vertical fill/cut (slotting) for the top and bottom shells.
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{ "type": "SHELL_ENTITY", "id":"UUID", "ticket": 1 }||
|
|
90
|
+
{
|
|
91
|
+
"partitionId":null,
|
|
92
|
+
"groupId":0,
|
|
93
|
+
"locked":1,
|
|
94
|
+
"zIndex":0.15,
|
|
95
|
+
"layerId":50,
|
|
96
|
+
"booleanOperation":0,
|
|
97
|
+
"belong":0,
|
|
98
|
+
"depth":10,
|
|
99
|
+
"strokeWidth":10,
|
|
100
|
+
"path":"complex polygon",
|
|
101
|
+
}|
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
1. type shell entity area `SHELL_ENTITY`.
|
|
105
|
+
2. id primitive ID, unique within the document.
|
|
106
|
+
3. ticket logical clock.
|
|
107
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
108
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
109
|
+
6. locked whether locked.
|
|
110
|
+
7. zIndex Z-axis height.
|
|
111
|
+
8. layerId layer.
|
|
112
|
+
9. booleanOperation boolean operation: 0 cut, 1 fill.
|
|
113
|
+
10. belong affiliation: 0 auto, 1 top shell, 2 bottom shell, 4 shell border, 8 boss, 16 entity. Can be combined by addition.
|
|
114
|
+
- top + bottom shells: 3 = 1 + 2
|
|
115
|
+
- shell border + boss: 12 = 4 + 8
|
|
116
|
+
- boss + entity: 24 = 8 + 16
|
|
117
|
+
- shell border + boss + entity: 28 = 4 + 8 + 16
|
|
118
|
+
11. depth depth.
|
|
119
|
+
12. strokeWidth line width.
|
|
120
|
+
13. path see complex polygon.
|
|
121
|
+
|
|
122
|
+
## BOSS Boss
|
|
123
|
+
|
|
124
|
+
A `BOSS` associated with `CREASE` via `CONNECT` adds a side boss.
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{ "type": "BOSS", "id":"UUID", "ticket": 1 }||
|
|
128
|
+
{
|
|
129
|
+
"partitionId":null,
|
|
130
|
+
"groupId":0,
|
|
131
|
+
"locked":1,
|
|
132
|
+
"zIndex":0.8976,
|
|
133
|
+
"layerId":50,
|
|
134
|
+
"centerX":100,
|
|
135
|
+
"centerY":200,
|
|
136
|
+
"specification":"M2",
|
|
137
|
+
"depth":100,
|
|
138
|
+
"thickness":10,
|
|
139
|
+
"holeDiameter":20,
|
|
140
|
+
"counterBore":[100, 20],
|
|
141
|
+
"stiffener":[20, 40, 20, 10],
|
|
142
|
+
}|
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
1. type boss `BOSS`.
|
|
146
|
+
2. id primitive ID, unique within the document.
|
|
147
|
+
3. ticket logical clock.
|
|
148
|
+
4. partitionId partition ID it belongs to, null means no partition. Ignored for footprints.
|
|
149
|
+
5. groupId group ID: 0 no group, non-zero is the group flag, same flag means same group.
|
|
150
|
+
6. locked whether locked.
|
|
151
|
+
7. zIndex Z-axis height.
|
|
152
|
+
8. layerId layer.
|
|
153
|
+
9. centerX center X.
|
|
154
|
+
10. centerY center Y.
|
|
155
|
+
11. specification screw specification: `"M2"`, `"M3"`, etc., or `null` for custom.
|
|
156
|
+
12. depth boss height.
|
|
157
|
+
13. thickness boss wall thickness.
|
|
158
|
+
14. holeDiameter through-hole diameter.
|
|
159
|
+
15. counterBore counterbore parameters, `null` means no counterbore.
|
|
160
|
+
- screw head height.
|
|
161
|
+
- screw head diameter.
|
|
162
|
+
16. stiffener rib parameters, `null` means no rib.
|
|
163
|
+
- rib top width.
|
|
164
|
+
- rib bottom width.
|
|
165
|
+
- rib distance from top of boss.
|
|
166
|
+
- rib thickness.
|