@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.
Files changed (407) hide show
  1. package/README.md +71 -119
  2. package/cordis.patch.yml +9 -7
  3. package/lib/board.js +80 -0
  4. package/lib/client.js +2 -2
  5. package/lib/index.js +339 -11
  6. package/lib/installer.js +4 -4
  7. package/lib/skill.js +138 -0
  8. package/package.json +3 -2
  9. package/skill/INDEX.md +193 -0
  10. package/skill/README.official.md +125 -0
  11. package/skill/README.zh-Hans.official.md +125 -0
  12. package/skill/SKILL.md +746 -0
  13. package/skill/format/index.md +152 -0
  14. package/skill/format/pcb/3d.md +166 -0
  15. package/skill/format/pcb/attr.md +63 -0
  16. package/skill/format/pcb/common.md +306 -0
  17. package/skill/format/pcb/component.md +132 -0
  18. package/skill/format/pcb/dimension.md +58 -0
  19. package/skill/format/pcb/index.md +17 -0
  20. package/skill/format/pcb/obj.md +43 -0
  21. package/skill/format/pcb/pad_via.md +151 -0
  22. package/skill/format/pcb/panel.md +64 -0
  23. package/skill/format/pcb/partition.md +43 -0
  24. package/skill/format/pcb/primitive.md +196 -0
  25. package/skill/format/pcb/rule.md +71 -0
  26. package/skill/format/pcb/shape.md +441 -0
  27. package/skill/format/pcb/text.md +62 -0
  28. package/skill/format/project/blob.md +30 -0
  29. package/skill/format/project/common.md +42 -0
  30. package/skill/format/project/group.md +62 -0
  31. package/skill/format/project/index.md +12 -0
  32. package/skill/format/project/instance.md +32 -0
  33. package/skill/format/project/meta.md +189 -0
  34. package/skill/format/project/variant.md +30 -0
  35. package/skill/format/schematic/attr.md +41 -0
  36. package/skill/format/schematic/common.md +47 -0
  37. package/skill/format/schematic/component.md +91 -0
  38. package/skill/format/schematic/index.md +14 -0
  39. package/skill/format/schematic/obj.md +41 -0
  40. package/skill/format/schematic/pin.md +59 -0
  41. package/skill/format/schematic/shape.md +231 -0
  42. package/skill/format/schematic/structure.md +53 -0
  43. package/skill/format/schematic/table.md +109 -0
  44. package/skill/format/schematic/text.md +47 -0
  45. package/skill/format/schematic/wire.md +132 -0
  46. package/skill/guide/ancillary-projects/pro-api-sdk.md +1 -0
  47. package/skill/guide/ancillary-projects/pro-api-types.md +5 -0
  48. package/skill/guide/ancillary-projects.md +10 -0
  49. package/skill/guide/error-handling.md +38 -0
  50. package/skill/guide/extension-json.md +135 -0
  51. package/skill/guide/extensions-marketplace.md +61 -0
  52. package/skill/guide/how-to-start.md +301 -0
  53. package/skill/guide/i18n.md +57 -0
  54. package/skill/guide/index.md +7 -0
  55. package/skill/guide/inline-frame.md +20 -0
  56. package/skill/guide/invoke-apis.md +81 -0
  57. package/skill/guide/stability.md +37 -0
  58. package/skill/references/_index.md +398 -0
  59. package/skill/references/_quick-reference.md +3028 -0
  60. package/skill/references/classes/DMT_Board.md +533 -0
  61. package/skill/references/classes/DMT_EditorControl.md +1736 -0
  62. package/skill/references/classes/DMT_Event.md +356 -0
  63. package/skill/references/classes/DMT_Folder.md +775 -0
  64. package/skill/references/classes/DMT_Panel.md +531 -0
  65. package/skill/references/classes/DMT_Pcb.md +575 -0
  66. package/skill/references/classes/DMT_Project.md +573 -0
  67. package/skill/references/classes/DMT_Schematic.md +1477 -0
  68. package/skill/references/classes/DMT_SelectControl.md +96 -0
  69. package/skill/references/classes/DMT_Team.md +172 -0
  70. package/skill/references/classes/DMT_Workspace.md +198 -0
  71. package/skill/references/classes/EDA.md +961 -0
  72. package/skill/references/classes/IPCB_ComplexPolygon.md +299 -0
  73. package/skill/references/classes/IPCB_Polygon.md +175 -0
  74. package/skill/references/classes/IPCB_PrimitiveArc.md +1901 -0
  75. package/skill/references/classes/IPCB_PrimitiveAttribute.md +2993 -0
  76. package/skill/references/classes/IPCB_PrimitiveComponent.md +2627 -0
  77. package/skill/references/classes/IPCB_PrimitiveComponentPad.md +410 -0
  78. package/skill/references/classes/IPCB_PrimitiveDimension.md +1419 -0
  79. package/skill/references/classes/IPCB_PrimitiveFill.md +1325 -0
  80. package/skill/references/classes/IPCB_PrimitiveImage.md +1461 -0
  81. package/skill/references/classes/IPCB_PrimitiveLine.md +1639 -0
  82. package/skill/references/classes/IPCB_PrimitiveObject.md +1700 -0
  83. package/skill/references/classes/IPCB_PrimitivePad.md +3155 -0
  84. package/skill/references/classes/IPCB_PrimitivePolyline.md +1193 -0
  85. package/skill/references/classes/IPCB_PrimitivePour.md +1858 -0
  86. package/skill/references/classes/IPCB_PrimitivePoured.md +556 -0
  87. package/skill/references/classes/IPCB_PrimitiveRegion.md +1332 -0
  88. package/skill/references/classes/IPCB_PrimitiveString.md +2315 -0
  89. package/skill/references/classes/IPCB_PrimitiveVia.md +1588 -0
  90. package/skill/references/classes/ISCH_PrimitiveArc.md +1676 -0
  91. package/skill/references/classes/ISCH_PrimitiveAttribute.md +2541 -0
  92. package/skill/references/classes/ISCH_PrimitiveBus.md +973 -0
  93. package/skill/references/classes/ISCH_PrimitiveCbbSymbolComponent.md +260 -0
  94. package/skill/references/classes/ISCH_PrimitiveCircle.md +1392 -0
  95. package/skill/references/classes/ISCH_PrimitiveComponent.md +2913 -0
  96. package/skill/references/classes/ISCH_PrimitiveComponentPin.md +155 -0
  97. package/skill/references/classes/ISCH_PrimitiveObject.md +960 -0
  98. package/skill/references/classes/ISCH_PrimitivePin.md +2402 -0
  99. package/skill/references/classes/ISCH_PrimitivePolygon.md +1028 -0
  100. package/skill/references/classes/ISCH_PrimitiveRectangle.md +1777 -0
  101. package/skill/references/classes/ISCH_PrimitiveText.md +1771 -0
  102. package/skill/references/classes/ISCH_PrimitiveWire.md +973 -0
  103. package/skill/references/classes/LIB_3DModel.md +780 -0
  104. package/skill/references/classes/LIB_Cbb.md +957 -0
  105. package/skill/references/classes/LIB_Classification.md +965 -0
  106. package/skill/references/classes/LIB_Device.md +1221 -0
  107. package/skill/references/classes/LIB_Footprint.md +1153 -0
  108. package/skill/references/classes/LIB_LibrariesList.md +329 -0
  109. package/skill/references/classes/LIB_PanelLibrary.md +855 -0
  110. package/skill/references/classes/LIB_SelectControl.md +89 -0
  111. package/skill/references/classes/LIB_SimulationModel.md +821 -0
  112. package/skill/references/classes/LIB_Symbol.md +1195 -0
  113. package/skill/references/classes/PCB_Document.md +1754 -0
  114. package/skill/references/classes/PCB_Drc.md +3375 -0
  115. package/skill/references/classes/PCB_Event.md +1081 -0
  116. package/skill/references/classes/PCB_Layer.md +1911 -0
  117. package/skill/references/classes/PCB_ManufactureData.md +2968 -0
  118. package/skill/references/classes/PCB_MathPolygon.md +785 -0
  119. package/skill/references/classes/PCB_Net.md +1128 -0
  120. package/skill/references/classes/PCB_Primitive.md +217 -0
  121. package/skill/references/classes/PCB_PrimitiveArc.md +894 -0
  122. package/skill/references/classes/PCB_PrimitiveAttribute.md +717 -0
  123. package/skill/references/classes/PCB_PrimitiveComponent.md +1050 -0
  124. package/skill/references/classes/PCB_PrimitiveDimension.md +833 -0
  125. package/skill/references/classes/PCB_PrimitiveFill.md +861 -0
  126. package/skill/references/classes/PCB_PrimitiveImage.md +875 -0
  127. package/skill/references/classes/PCB_PrimitiveLine.md +858 -0
  128. package/skill/references/classes/PCB_PrimitiveObject.md +800 -0
  129. package/skill/references/classes/PCB_PrimitivePad.md +944 -0
  130. package/skill/references/classes/PCB_PrimitivePolyline.md +819 -0
  131. package/skill/references/classes/PCB_PrimitivePour.md +845 -0
  132. package/skill/references/classes/PCB_PrimitivePoured.md +363 -0
  133. package/skill/references/classes/PCB_PrimitiveRegion.md +799 -0
  134. package/skill/references/classes/PCB_PrimitiveString.md +910 -0
  135. package/skill/references/classes/PCB_PrimitiveVia.md +765 -0
  136. package/skill/references/classes/PCB_RayTracerEngine.md +263 -0
  137. package/skill/references/classes/PCB_SelectControl.md +495 -0
  138. package/skill/references/classes/PNL_Document.md +83 -0
  139. package/skill/references/classes/SCH_Document.md +809 -0
  140. package/skill/references/classes/SCH_Drc.md +242 -0
  141. package/skill/references/classes/SCH_Event.md +583 -0
  142. package/skill/references/classes/SCH_ManufactureData.md +1205 -0
  143. package/skill/references/classes/SCH_Net.md +200 -0
  144. package/skill/references/classes/SCH_Netlist.md +191 -0
  145. package/skill/references/classes/SCH_Primitive.md +337 -0
  146. package/skill/references/classes/SCH_PrimitiveArc.md +692 -0
  147. package/skill/references/classes/SCH_PrimitiveAttribute.md +590 -0
  148. package/skill/references/classes/SCH_PrimitiveBus.md +624 -0
  149. package/skill/references/classes/SCH_PrimitiveCircle.md +683 -0
  150. package/skill/references/classes/SCH_PrimitiveComponent.md +2240 -0
  151. package/skill/references/classes/SCH_PrimitiveObject.md +666 -0
  152. package/skill/references/classes/SCH_PrimitivePin.md +754 -0
  153. package/skill/references/classes/SCH_PrimitivePolygon.md +627 -0
  154. package/skill/references/classes/SCH_PrimitiveRectangle.md +731 -0
  155. package/skill/references/classes/SCH_PrimitiveText.md +746 -0
  156. package/skill/references/classes/SCH_PrimitiveWire.md +703 -0
  157. package/skill/references/classes/SCH_SelectControl.md +520 -0
  158. package/skill/references/classes/SCH_SimulationEngine.md +133 -0
  159. package/skill/references/classes/SCH_Utils.md +121 -0
  160. package/skill/references/classes/SYS_ClientUrl.md +173 -0
  161. package/skill/references/classes/SYS_Dialog.md +825 -0
  162. package/skill/references/classes/SYS_Environment.md +502 -0
  163. package/skill/references/classes/SYS_FileManager.md +1686 -0
  164. package/skill/references/classes/SYS_FileSystem.md +1171 -0
  165. package/skill/references/classes/SYS_FontManager.md +224 -0
  166. package/skill/references/classes/SYS_FormatConversion.md +349 -0
  167. package/skill/references/classes/SYS_HeaderMenu.md +479 -0
  168. package/skill/references/classes/SYS_I18n.md +861 -0
  169. package/skill/references/classes/SYS_IFrame.md +535 -0
  170. package/skill/references/classes/SYS_LoadingAndProgressBar.md +246 -0
  171. package/skill/references/classes/SYS_Log.md +424 -0
  172. package/skill/references/classes/SYS_Math.md +1565 -0
  173. package/skill/references/classes/SYS_Message.md +363 -0
  174. package/skill/references/classes/SYS_MessageBox.md +285 -0
  175. package/skill/references/classes/SYS_MessageBus.md +1618 -0
  176. package/skill/references/classes/SYS_PanelControl.md +696 -0
  177. package/skill/references/classes/SYS_RightClickMenu.md +175 -0
  178. package/skill/references/classes/SYS_Setting.md +85 -0
  179. package/skill/references/classes/SYS_ShortcutKey.md +623 -0
  180. package/skill/references/classes/SYS_Storage.md +484 -0
  181. package/skill/references/classes/SYS_Timer.md +447 -0
  182. package/skill/references/classes/SYS_ToastMessage.md +194 -0
  183. package/skill/references/classes/SYS_Tool.md +241 -0
  184. package/skill/references/classes/SYS_Unit.md +594 -0
  185. package/skill/references/classes/SYS_WebSocket.md +401 -0
  186. package/skill/references/classes/SYS_Window.md +850 -0
  187. package/skill/references/enums/EDMT_EditorDocumentType.md +279 -0
  188. package/skill/references/enums/EDMT_EditorSplitScreenDirection.md +48 -0
  189. package/skill/references/enums/EDMT_EditorTabEventType.md +63 -0
  190. package/skill/references/enums/EDMT_IndicatorMarkerType.md +81 -0
  191. package/skill/references/enums/EDMT_ItemType.md +158 -0
  192. package/skill/references/enums/EDMT_ProjectCollaborationMode.md +48 -0
  193. package/skill/references/enums/ELIB_DeviceJlcLibraryCategory.md +48 -0
  194. package/skill/references/enums/ELIB_LibraryType.md +114 -0
  195. package/skill/references/enums/ELIB_PreviewType.md +70 -0
  196. package/skill/references/enums/ELIB_SimulationModelType.md +48 -0
  197. package/skill/references/enums/ELIB_SymbolType.md +125 -0
  198. package/skill/references/enums/EPCB_AutoRoutingCornerStyle.md +48 -0
  199. package/skill/references/enums/EPCB_AutoRoutingExistingPrimitiveMode.md +48 -0
  200. package/skill/references/enums/EPCB_AutoRoutingOptimization.md +48 -0
  201. package/skill/references/enums/EPCB_DocumentCanvasUpdateCalculationActiveStatus.md +48 -0
  202. package/skill/references/enums/EPCB_DocumentRatlineCalculatingActiveStatus.md +52 -0
  203. package/skill/references/enums/EPCB_InactiveLayerDisplayMode.md +59 -0
  204. package/skill/references/enums/EPCB_LayerColorConfiguration.md +81 -0
  205. package/skill/references/enums/EPCB_LayerId.md +882 -0
  206. package/skill/references/enums/EPCB_LayerStatus.md +59 -0
  207. package/skill/references/enums/EPCB_LayerType.md +114 -0
  208. package/skill/references/enums/EPCB_MouseEventType.md +59 -0
  209. package/skill/references/enums/EPCB_NetEventType.md +59 -0
  210. package/skill/references/enums/EPCB_PcbPlateType.md +48 -0
  211. package/skill/references/enums/EPCB_PdfOutputMethod.md +59 -0
  212. package/skill/references/enums/EPCB_PrimitiveArcInteractiveMode.md +48 -0
  213. package/skill/references/enums/EPCB_PrimitiveDimensionType.md +59 -0
  214. package/skill/references/enums/EPCB_PrimitiveEventType.md +59 -0
  215. package/skill/references/enums/EPCB_PrimitiveFillMode.md +63 -0
  216. package/skill/references/enums/EPCB_PrimitivePadHeatWeldingConnectionMethod.md +59 -0
  217. package/skill/references/enums/EPCB_PrimitivePadHoleType.md +59 -0
  218. package/skill/references/enums/EPCB_PrimitivePadShapeType.md +81 -0
  219. package/skill/references/enums/EPCB_PrimitivePadType.md +59 -0
  220. package/skill/references/enums/EPCB_PrimitivePourFillMethod.md +59 -0
  221. package/skill/references/enums/EPCB_PrimitiveRegionRuleType.md +96 -0
  222. package/skill/references/enums/EPCB_PrimitiveStringAlignMode.md +125 -0
  223. package/skill/references/enums/EPCB_PrimitiveType.md +202 -0
  224. package/skill/references/enums/EPCB_PrimitiveViaType.md +59 -0
  225. package/skill/references/enums/ESCH_DynamicSimulationEnginePullEventType.md +103 -0
  226. package/skill/references/enums/ESCH_DynamicSimulationEnginePushEventType.md +81 -0
  227. package/skill/references/enums/ESCH_ExportDocumentFileType.md +59 -0
  228. package/skill/references/enums/ESCH_MouseEventType.md +48 -0
  229. package/skill/references/enums/ESCH_PrimitiveComponentType.md +125 -0
  230. package/skill/references/enums/ESCH_PrimitiveEventType.md +70 -0
  231. package/skill/references/enums/ESCH_PrimitiveFillStyle.md +114 -0
  232. package/skill/references/enums/ESCH_PrimitiveLineType.md +70 -0
  233. package/skill/references/enums/ESCH_PrimitivePinShape.md +70 -0
  234. package/skill/references/enums/ESCH_PrimitivePinType.md +147 -0
  235. package/skill/references/enums/ESCH_PrimitiveTextAlignMode.md +125 -0
  236. package/skill/references/enums/ESCH_PrimitiveType.md +180 -0
  237. package/skill/references/enums/ESCH_SimulationNetlistType.md +37 -0
  238. package/skill/references/enums/ESCH_SpiceSimulationEnginePullEventType.md +48 -0
  239. package/skill/references/enums/ESCH_SpiceSimulationEnginePushEventType.md +70 -0
  240. package/skill/references/enums/ESYS_BottomPanelTab.md +81 -0
  241. package/skill/references/enums/ESYS_HeaderMenuEnvironment.md +158 -0
  242. package/skill/references/enums/ESYS_ImportProjectBoardOutlineSource.md +52 -0
  243. package/skill/references/enums/ESYS_ImportProjectImportOption.md +59 -0
  244. package/skill/references/enums/ESYS_ImportProjectSchematicObjectStyle.md +48 -0
  245. package/skill/references/enums/ESYS_ImportProjectViaSolderMaskExpansion.md +52 -0
  246. package/skill/references/enums/ESYS_LeftPanelTab.md +81 -0
  247. package/skill/references/enums/ESYS_LogType.md +103 -0
  248. package/skill/references/enums/ESYS_NetlistType.md +114 -0
  249. package/skill/references/enums/ESYS_RightPanelTab.md +202 -0
  250. package/skill/references/enums/ESYS_ShortcutKeyEffectiveEditorRange.md +191 -0
  251. package/skill/references/enums/ESYS_ShortcutKeyEffectiveEditorScene.md +92 -0
  252. package/skill/references/enums/ESYS_StartPageQuickStartItem.md +206 -0
  253. package/skill/references/enums/ESYS_Theme.md +48 -0
  254. package/skill/references/enums/ESYS_ToastMessageType.md +81 -0
  255. package/skill/references/enums/ESYS_Unit.md +103 -0
  256. package/skill/references/enums/ESYS_WindowEventType.md +48 -0
  257. package/skill/references/enums/ESYS_WindowOpenTarget.md +48 -0
  258. package/skill/references/enums/NetportDeviceName.md +147 -0
  259. package/skill/references/enums/SchToolBarDeviceName.md +279 -0
  260. package/skill/references/interfaces/BoardProps.md +169 -0
  261. package/skill/references/interfaces/ButtonProps.md +169 -0
  262. package/skill/references/interfaces/CheckBoxProps.md +196 -0
  263. package/skill/references/interfaces/ComponentPropsMap.md +448 -0
  264. package/skill/references/interfaces/DialogProps.md +385 -0
  265. package/skill/references/interfaces/FlexItemProps.md +116 -0
  266. package/skill/references/interfaces/FlexProps.md +224 -0
  267. package/skill/references/interfaces/GridItemProps.md +143 -0
  268. package/skill/references/interfaces/GridProps.md +143 -0
  269. package/skill/references/interfaces/IDMT_BoardItem.md +171 -0
  270. package/skill/references/interfaces/IDMT_BriefProjectItem.md +171 -0
  271. package/skill/references/interfaces/IDMT_EditorDocumentItem.md +169 -0
  272. package/skill/references/interfaces/IDMT_EditorSplitScreenItem.md +173 -0
  273. package/skill/references/interfaces/IDMT_EditorTabItem.md +169 -0
  274. package/skill/references/interfaces/IDMT_FolderItem.md +225 -0
  275. package/skill/references/interfaces/IDMT_IndicatorMarkerShape.md +393 -0
  276. package/skill/references/interfaces/IDMT_PanelItem.md +144 -0
  277. package/skill/references/interfaces/IDMT_PcbItem.md +171 -0
  278. package/skill/references/interfaces/IDMT_ProjectItem.md +143 -0
  279. package/skill/references/interfaces/IDMT_SchematicItem.md +225 -0
  280. package/skill/references/interfaces/IDMT_SchematicPageItem.md +198 -0
  281. package/skill/references/interfaces/IDMT_TeamItem.md +144 -0
  282. package/skill/references/interfaces/IDMT_WorkspaceItem.md +117 -0
  283. package/skill/references/interfaces/IDesignPortal.md +103 -0
  284. package/skill/references/interfaces/ILIB_3DModelItem.md +198 -0
  285. package/skill/references/interfaces/ILIB_3DModelSearchItem.md +277 -0
  286. package/skill/references/interfaces/ILIB_CbbItem.md +225 -0
  287. package/skill/references/interfaces/ILIB_CbbSearchItem.md +277 -0
  288. package/skill/references/interfaces/ILIB_ClassificationIndex.md +150 -0
  289. package/skill/references/interfaces/ILIB_DeviceAssociationItem.md +210 -0
  290. package/skill/references/interfaces/ILIB_DeviceExtendPropertyItem.md +304 -0
  291. package/skill/references/interfaces/ILIB_DeviceItem.md +279 -0
  292. package/skill/references/interfaces/ILIB_DevicePropertiesForSearch.md +250 -0
  293. package/skill/references/interfaces/ILIB_DeviceSearchItem.md +521 -0
  294. package/skill/references/interfaces/ILIB_ExtendLibrary3DModelFunctions.md +64 -0
  295. package/skill/references/interfaces/ILIB_ExtendLibraryCbbFunctions.md +99 -0
  296. package/skill/references/interfaces/ILIB_ExtendLibraryClassificationIndex.md +150 -0
  297. package/skill/references/interfaces/ILIB_ExtendLibraryDeviceFunctions.md +157 -0
  298. package/skill/references/interfaces/ILIB_ExtendLibraryFootprintFunctions.md +63 -0
  299. package/skill/references/interfaces/ILIB_ExtendLibraryFunctions.md +123 -0
  300. package/skill/references/interfaces/ILIB_ExtendLibraryItem.md +97 -0
  301. package/skill/references/interfaces/ILIB_ExtendLibraryItemIndex.md +98 -0
  302. package/skill/references/interfaces/ILIB_ExtendLibrarySearchProperty.md +115 -0
  303. package/skill/references/interfaces/ILIB_ExtendLibrarySearchResult.md +169 -0
  304. package/skill/references/interfaces/ILIB_ExtendLibrarySearchResultDataLine.md +234 -0
  305. package/skill/references/interfaces/ILIB_ExtendLibrarySymbolFunctions.md +105 -0
  306. package/skill/references/interfaces/ILIB_ExtendLibraryUserIndex.md +96 -0
  307. package/skill/references/interfaces/ILIB_FootprintItem.md +198 -0
  308. package/skill/references/interfaces/ILIB_FootprintPropertiesForSearch.md +61 -0
  309. package/skill/references/interfaces/ILIB_FootprintSearchItem.md +277 -0
  310. package/skill/references/interfaces/ILIB_LibraryInfo.md +92 -0
  311. package/skill/references/interfaces/ILIB_LibraryItem.md +115 -0
  312. package/skill/references/interfaces/ILIB_PanelLibraryItem.md +198 -0
  313. package/skill/references/interfaces/ILIB_PanelLibrarySearchItem.md +277 -0
  314. package/skill/references/interfaces/ILIB_SimulationModelItem.md +306 -0
  315. package/skill/references/interfaces/ILIB_SimulationModelSearchItem.md +304 -0
  316. package/skill/references/interfaces/ILIB_SymbolItem.md +279 -0
  317. package/skill/references/interfaces/ILIB_SymbolPropertiesForSearch.md +61 -0
  318. package/skill/references/interfaces/ILIB_SymbolSearchItem.md +304 -0
  319. package/skill/references/interfaces/IPCB_AutoLayoutResult.md +169 -0
  320. package/skill/references/interfaces/IPCB_AutoRoutingProps.md +220 -0
  321. package/skill/references/interfaces/IPCB_AutoRoutingResult.md +169 -0
  322. package/skill/references/interfaces/IPCB_BomPropertiesTableColumns.md +169 -0
  323. package/skill/references/interfaces/IPCB_DifferentialPairItem.md +115 -0
  324. package/skill/references/interfaces/IPCB_DiscretizeOptions.md +65 -0
  325. package/skill/references/interfaces/IPCB_DiscretizedPoint.md +88 -0
  326. package/skill/references/interfaces/IPCB_EqualLengthNetGroupItem.md +115 -0
  327. package/skill/references/interfaces/IPCB_LayerItem.md +277 -0
  328. package/skill/references/interfaces/IPCB_NetClassItem.md +115 -0
  329. package/skill/references/interfaces/IPCB_NetInfo.md +115 -0
  330. package/skill/references/interfaces/IPCB_PadPairGroupItem.md +88 -0
  331. package/skill/references/interfaces/IPCB_PadPairMinWireLengthItem.md +88 -0
  332. package/skill/references/interfaces/IPCB_PhysicalStackingConfiguration.md +115 -0
  333. package/skill/references/interfaces/IPCB_Primitive.md +218 -0
  334. package/skill/references/interfaces/IPCB_PrimitiveAPI.md +175 -0
  335. package/skill/references/interfaces/IPCB_PrimitivePadHeatWelding.md +151 -0
  336. package/skill/references/interfaces/IPCB_PrimitivePouredPourFill.md +142 -0
  337. package/skill/references/interfaces/IPCB_PrimitiveSolderMaskAndPasteMaskExpansion.md +154 -0
  338. package/skill/references/interfaces/IPCB_SubstratePhysicalProperties.md +88 -0
  339. package/skill/references/interfaces/IRawNet.md +103 -0
  340. package/skill/references/interfaces/IRawPureSchematic.md +80 -0
  341. package/skill/references/interfaces/IRawSchematic.md +103 -0
  342. package/skill/references/interfaces/IRawWire.md +149 -0
  343. package/skill/references/interfaces/ISCH_DrcError.md +142 -0
  344. package/skill/references/interfaces/ISCH_DrcErrorPrimitive.md +142 -0
  345. package/skill/references/interfaces/ISCH_ExportPngResolution.md +94 -0
  346. package/skill/references/interfaces/ISCH_NetInfo.md +88 -0
  347. package/skill/references/interfaces/ISCH_Primitive.md +219 -0
  348. package/skill/references/interfaces/ISCH_PrimitiveAPI.md +175 -0
  349. package/skill/references/interfaces/ISCH_ProjectNetInfo.md +142 -0
  350. package/skill/references/interfaces/ISCH_WireInfo.md +169 -0
  351. package/skill/references/interfaces/ISYS_FileSystemFileList.md +169 -0
  352. package/skill/references/interfaces/ISYS_HeaderMenuSub1MenuItem.md +174 -0
  353. package/skill/references/interfaces/ISYS_HeaderMenuSub2MenuItem.md +147 -0
  354. package/skill/references/interfaces/ISYS_HeaderMenuTopMenuItem.md +115 -0
  355. package/skill/references/interfaces/ISYS_HeaderMenus.md +408 -0
  356. package/skill/references/interfaces/ISYS_LogLine.md +115 -0
  357. package/skill/references/interfaces/ISYS_MathBBox.md +142 -0
  358. package/skill/references/interfaces/ISYS_MathPoint.md +88 -0
  359. package/skill/references/interfaces/ISYS_MathPolygonWithHoles.md +92 -0
  360. package/skill/references/interfaces/ISYS_MessageBusTask.md +115 -0
  361. package/skill/references/interfaces/ISYS_MultilingualLanguagesData.md +13 -0
  362. package/skill/references/interfaces/ISYS_PcbComparisonResponse.md +115 -0
  363. package/skill/references/interfaces/ISYS_RightClickMenuItem.md +174 -0
  364. package/skill/references/interfaces/ISYS_ShortcutKeyData.md +169 -0
  365. package/skill/references/interfaces/ISYS_ShortcutKeyDataWithCallFn.md +62 -0
  366. package/skill/references/interfaces/ISYS_ShortcutKeyDataWithUserDefinedShortcutKey.md +62 -0
  367. package/skill/references/interfaces/ISYS_WindowEventListenerRemovableObject.md +109 -0
  368. package/skill/references/interfaces/IconProps.md +88 -0
  369. package/skill/references/interfaces/ImageProps.md +115 -0
  370. package/skill/references/interfaces/InputProps.md +520 -0
  371. package/skill/references/interfaces/ListChildren.md +223 -0
  372. package/skill/references/interfaces/ListProps.md +223 -0
  373. package/skill/references/interfaces/ModalProps.md +358 -0
  374. package/skill/references/interfaces/RadioGroupProps.md +196 -0
  375. package/skill/references/interfaces/RadioItem.md +115 -0
  376. package/skill/references/interfaces/ScrollerProps.md +169 -0
  377. package/skill/references/interfaces/SelectListItem.md +142 -0
  378. package/skill/references/interfaces/SelectProps.md +169 -0
  379. package/skill/references/interfaces/SlotProps.md +88 -0
  380. package/skill/references/interfaces/StyleProps.md +385 -0
  381. package/skill/references/interfaces/TextAreaProps.md +196 -0
  382. package/skill/references/interfaces/TextProps.md +169 -0
  383. package/skill/references/types/ISYS_LanguageKeyValuePairs.md +13 -0
  384. package/skill/references/types/TPCB_LayerTypesOfInnerLayer.md +12 -0
  385. package/skill/references/types/TPCB_LayersInTheSelectable.md +43 -0
  386. package/skill/references/types/TPCB_LayersOfComponent.md +12 -0
  387. package/skill/references/types/TPCB_LayersOfCopper.md +16 -0
  388. package/skill/references/types/TPCB_LayersOfCustom.md +42 -0
  389. package/skill/references/types/TPCB_LayersOfDimension.md +17 -0
  390. package/skill/references/types/TPCB_LayersOfFill.md +29 -0
  391. package/skill/references/types/TPCB_LayersOfImage.md +23 -0
  392. package/skill/references/types/TPCB_LayersOfInner.md +42 -0
  393. package/skill/references/types/TPCB_LayersOfLine.md +26 -0
  394. package/skill/references/types/TPCB_LayersOfObject.md +13 -0
  395. package/skill/references/types/TPCB_LayersOfPad.md +12 -0
  396. package/skill/references/types/TPCB_LayersOfRegion.md +12 -0
  397. package/skill/references/types/TPCB_NumberOfCopperLayers.md +10 -0
  398. package/skill/references/types/TPCB_PolygonSourceArray.md +83 -0
  399. package/skill/references/types/TPCB_PrimitiveDimensionCoordinateSet.md +67 -0
  400. package/skill/references/types/TPCB_PrimitivePadHole.md +31 -0
  401. package/skill/references/types/TPCB_PrimitivePadShape.md +62 -0
  402. package/skill/references/types/TPCB_PrimitiveSpecialPadShape.md +20 -0
  403. package/skill/references/types/TSYS_MathPolygonGroup.md +16 -0
  404. package/skill/references/types/TSYS_MathPolygonInput.md +21 -0
  405. package/skill/references/types/TSYS_PcbComparisonErrorCode.md +10 -0
  406. package/skill/references/types/TSYS_ShortcutKeys.md +97 -0
  407. 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.