@windypro-rourou/dsh-eda 0.1.0 → 0.1.1

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 +12 -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,785 @@
1
+ # PCB\_MathPolygon class
2
+
3
+ PCB & footprint / polygon math class
4
+
5
+ ## Signature
6
+
7
+ ```typescript
8
+ class PCB_MathPolygon
9
+ ```
10
+
11
+ ## Methods
12
+
13
+ <table><thead><tr><th>
14
+
15
+ Method
16
+
17
+ </th><th>
18
+
19
+ Modifiers
20
+
21
+ </th><th>
22
+
23
+ Description
24
+
25
+ </th></tr></thead>
26
+ <tbody><tr><td>
27
+
28
+ [calculateBBoxHeight(complexPolygon)](./PCB_MathPolygon.md)
29
+
30
+ </td><td>
31
+
32
+ </td><td>
33
+
34
+ 计算多边形源数组的 BBox 高度
35
+
36
+ </td></tr>
37
+ <tr><td>
38
+
39
+ [calculateHeight(complexPolygon)](./PCB_MathPolygon.md)
40
+
41
+ </td><td>
42
+
43
+ </td><td>
44
+
45
+ **_(BETA)_** Calculate complex polygon BBox height
46
+
47
+ </td></tr>
48
+ <tr><td>
49
+
50
+ [calculateWidth(complexPolygon)](./PCB_MathPolygon.md)
51
+
52
+ </td><td>
53
+
54
+ </td><td>
55
+
56
+ **_(BETA)_** Calculate complex polygon BBox width
57
+
58
+ </td></tr>
59
+ <tr><td>
60
+
61
+ [convertImageToComplexPolygon(imageBlob, imageWidth, imageHeight, tolerance, simplification, smoothing, despeckling, whiteAsBackgroundColor, inversion)](./PCB_MathPolygon.md)
62
+
63
+ </td><td>
64
+
65
+ </td><td>
66
+
67
+ **_(BETA)_** Convert Image to Complex polygon object
68
+
69
+ </td></tr>
70
+ <tr><td>
71
+
72
+ [createComplexPolygon(complexPolygon)](./PCB_MathPolygon.md)
73
+
74
+ </td><td>
75
+
76
+ </td><td>
77
+
78
+ Create Complex polygon
79
+
80
+ </td></tr>
81
+ <tr><td>
82
+
83
+ [createPolygon(polygon)](./PCB_MathPolygon.md)
84
+
85
+ </td><td>
86
+
87
+ </td><td>
88
+
89
+ Create Single polygon
90
+
91
+ </td></tr>
92
+ <tr><td>
93
+
94
+ [discretize(polygon, options)](./PCB_MathPolygon.md)
95
+
96
+ </td><td>
97
+
98
+ </td><td>
99
+
100
+ **_(BETA)_** Discretize a single polygon into point data
101
+
102
+ </td></tr>
103
+ <tr><td>
104
+
105
+ [splitPolygon(complexPolygons)](./PCB_MathPolygon.md)
106
+
107
+ </td><td>
108
+
109
+ </td><td>
110
+
111
+ Split single polygon
112
+
113
+ </td></tr>
114
+ </tbody></table>
115
+
116
+ ---
117
+
118
+ ## 方法详情
119
+
120
+ ### calculatebboxheight
121
+
122
+ # PCB\_MathPolygon.calculateBBoxHeight() method
123
+
124
+ 计算多边形源数组的 BBox 高度
125
+
126
+ ## Signature
127
+
128
+ ```typescript
129
+ function calculateBBoxHeight(
130
+ complexPolygon: TPCB_PolygonSourceArray | Array<TPCB_PolygonSourceArray>,
131
+ ): number;
132
+ ```
133
+
134
+ ## Parameters
135
+
136
+ <table><thead><tr><th>
137
+
138
+ Parameter
139
+
140
+ </th><th>
141
+
142
+ Type
143
+
144
+ </th><th>
145
+
146
+ Description
147
+
148
+ </th></tr></thead>
149
+ <tbody><tr><td>
150
+
151
+ complexPolygon
152
+
153
+ </td><td>
154
+
155
+ [TPCB\_PolygonSourceArray](../types/TPCB_PolygonSourceArray.md) \| Array&lt;[TPCB\_PolygonSourceArray](../types/TPCB_PolygonSourceArray.md)<!-- -->&gt;
156
+
157
+ </td><td>
158
+
159
+ </td></tr>
160
+ </tbody></table>
161
+
162
+ ## Returns
163
+
164
+ number
165
+
166
+ ## Example
167
+
168
+ ```javascript
169
+ // 1. 单个矩形源数组(宽 100、高 50),BBox 高度为 50
170
+ console.log('rectHeight:', eda.pcb_MathPolygon.calculateBBoxHeight(['R', 0, 0, 100, 50, 0, 0]));
171
+
172
+ // 2. 单个圆源数组(圆心在原点、半径 50),BBox 高度为直径 100
173
+ console.log('circleHeight:', eda.pcb_MathPolygon.calculateBBoxHeight(['CIRCLE', 0, 0, 50]));
174
+
175
+ // 3. 多块组合:矩形 Y 范围 0~50,圆 Y 范围 170~230,整体跨度 230
176
+ console.log('multiHeight:', eda.pcb_MathPolygon.calculateBBoxHeight([
177
+ ['R', 0, 0, 100, 50, 0, 0],
178
+ ['CIRCLE', 200, 200, 30],
179
+ ]));
180
+ ```
181
+
182
+ ### calculateheight
183
+
184
+ # PCB\_MathPolygon.calculateHeight() method
185
+
186
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
187
+
188
+ Calculate complex polygon BBox height
189
+
190
+ ## Signature
191
+
192
+ ```typescript
193
+ function calculateHeight(
194
+ complexPolygon:
195
+ | TPCB_PolygonSourceArray
196
+ | Array<TPCB_PolygonSourceArray>
197
+ | IPCB_Polygon
198
+ | IPCB_ComplexPolygon,
199
+ ): number;
200
+ ```
201
+
202
+ ## Parameters
203
+
204
+ <table><thead><tr><th>
205
+
206
+ Parameter
207
+
208
+ </th><th>
209
+
210
+ Type
211
+
212
+ </th><th>
213
+
214
+ Description
215
+
216
+ </th></tr></thead>
217
+ <tbody><tr><td>
218
+
219
+ complexPolygon
220
+
221
+ </td><td>
222
+
223
+ [TPCB\_PolygonSourceArray](../types/TPCB_PolygonSourceArray.md) \| Array&lt;[TPCB\_PolygonSourceArray](../types/TPCB_PolygonSourceArray.md)<!-- -->&gt; \| [IPCB\_Polygon](./IPCB_Polygon.md) \| [IPCB\_ComplexPolygon](./IPCB_ComplexPolygon.md)
224
+
225
+ </td><td>
226
+
227
+ Complex polygon
228
+
229
+ </td></tr>
230
+ </tbody></table>
231
+
232
+ ## Returns
233
+
234
+ number
235
+
236
+ BBox height
237
+
238
+ ## Example
239
+
240
+ ```javascript
241
+ // 1. 矩形源数组(宽 100、高 50),BBox 高度为 50
242
+ console.log('rectHeight:', eda.pcb_MathPolygon.calculateHeight(['R', 0, 0, 100, 50, 0, 0]));
243
+
244
+ // 2. 圆心在原点、半径 50 的圆,BBox 高度为直径 100
245
+ console.log('circleHeight:', eda.pcb_MathPolygon.calculateHeight(['CIRCLE', 0, 0, 50]));
246
+
247
+ // 3. 传复杂多边形对象:矩形 Y 范围 0~50,圆 Y 范围 170~230,整体跨度 230
248
+ const complexPolygon = eda.pcb_MathPolygon.createComplexPolygon([
249
+ ['R', 0, 0, 100, 50, 0, 0],
250
+ ['CIRCLE', 200, 200, 30],
251
+ ]);
252
+ console.log('complexHeight:', eda.pcb_MathPolygon.calculateHeight(complexPolygon));
253
+ ```
254
+
255
+ ### calculatewidth
256
+
257
+ # PCB\_MathPolygon.calculateWidth() method
258
+
259
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
260
+
261
+ Calculate complex polygon BBox width
262
+
263
+ ## Signature
264
+
265
+ ```typescript
266
+ function calculateWidth(
267
+ complexPolygon:
268
+ | TPCB_PolygonSourceArray
269
+ | Array<TPCB_PolygonSourceArray>
270
+ | IPCB_Polygon
271
+ | IPCB_ComplexPolygon,
272
+ ): number;
273
+ ```
274
+
275
+ ## Parameters
276
+
277
+ <table><thead><tr><th>
278
+
279
+ Parameter
280
+
281
+ </th><th>
282
+
283
+ Type
284
+
285
+ </th><th>
286
+
287
+ Description
288
+
289
+ </th></tr></thead>
290
+ <tbody><tr><td>
291
+
292
+ complexPolygon
293
+
294
+ </td><td>
295
+
296
+ [TPCB\_PolygonSourceArray](../types/TPCB_PolygonSourceArray.md) \| Array&lt;[TPCB\_PolygonSourceArray](../types/TPCB_PolygonSourceArray.md)<!-- -->&gt; \| [IPCB\_Polygon](./IPCB_Polygon.md) \| [IPCB\_ComplexPolygon](./IPCB_ComplexPolygon.md)
297
+
298
+ </td><td>
299
+
300
+ Complex polygon
301
+
302
+ </td></tr>
303
+ </tbody></table>
304
+
305
+ ## Returns
306
+
307
+ number
308
+
309
+ BBox width
310
+
311
+ ## Example
312
+
313
+ ```javascript
314
+ // 1. 矩形源数组(宽 100、高 50),BBox 宽度为 100
315
+ console.log('rectWidth:', eda.pcb_MathPolygon.calculateWidth(['R', 0, 0, 100, 50, 0, 0]));
316
+
317
+ // 2. 圆心在原点、半径 50 的圆,BBox 宽度为直径 100
318
+ console.log('circleWidth:', eda.pcb_MathPolygon.calculateWidth(['CIRCLE', 0, 0, 50]));
319
+
320
+ // 3. 传复杂多边形对象:矩形 X 范围 0~100,圆 X 范围 170~230,整体跨度 230
321
+ const complexPolygon = eda.pcb_MathPolygon.createComplexPolygon([
322
+ ['R', 0, 0, 100, 50, 0, 0],
323
+ ['CIRCLE', 200, 200, 30],
324
+ ]);
325
+ console.log('complexWidth:', eda.pcb_MathPolygon.calculateWidth(complexPolygon));
326
+ ```
327
+
328
+ ### convertimagetocomplexpolygon
329
+
330
+ # PCB\_MathPolygon.convertImageToComplexPolygon() method
331
+
332
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
333
+
334
+ Convert Image to Complex polygon object
335
+
336
+ ## Signature
337
+
338
+ ```typescript
339
+ function convertImageToComplexPolygon(
340
+ imageBlob: Blob,
341
+ imageWidth: number,
342
+ imageHeight: number,
343
+ tolerance?: number,
344
+ simplification?: number,
345
+ smoothing?: number,
346
+ despeckling?: number,
347
+ whiteAsBackgroundColor?: boolean,
348
+ inversion?: boolean,
349
+ ): Promise<IPCB_ComplexPolygon | undefined>;
350
+ ```
351
+
352
+ ## Parameters
353
+
354
+ <table><thead><tr><th>
355
+
356
+ Parameter
357
+
358
+ </th><th>
359
+
360
+ Type
361
+
362
+ </th><th>
363
+
364
+ Description
365
+
366
+ </th></tr></thead>
367
+ <tbody><tr><td>
368
+
369
+ imageBlob
370
+
371
+ </td><td>
372
+
373
+ Blob
374
+
375
+ </td><td>
376
+
377
+ Image Blob file. You can use the method to read a file from the file system
378
+
379
+ </td></tr>
380
+ <tr><td>
381
+
382
+ imageWidth
383
+
384
+ </td><td>
385
+
386
+ number
387
+
388
+ </td><td>
389
+
390
+ Image width
391
+
392
+ </td></tr>
393
+ <tr><td>
394
+
395
+ imageHeight
396
+
397
+ </td><td>
398
+
399
+ number
400
+
401
+ </td><td>
402
+
403
+ Image height
404
+
405
+ </td></tr>
406
+ <tr><td>
407
+
408
+ tolerance
409
+
410
+ </td><td>
411
+
412
+ number
413
+
414
+ </td><td>
415
+
416
+ _(Optional)_ Tolerance, value range `0`<!-- -->-`1`
417
+
418
+ </td></tr>
419
+ <tr><td>
420
+
421
+ simplification
422
+
423
+ </td><td>
424
+
425
+ number
426
+
427
+ </td><td>
428
+
429
+ _(Optional)_ Simplification, value range `0`<!-- -->-`1`
430
+
431
+ </td></tr>
432
+ <tr><td>
433
+
434
+ smoothing
435
+
436
+ </td><td>
437
+
438
+ number
439
+
440
+ </td><td>
441
+
442
+ _(Optional)_ Smoothing, value range `0`<!-- -->-`1.33`
443
+
444
+ </td></tr>
445
+ <tr><td>
446
+
447
+ despeckling
448
+
449
+ </td><td>
450
+
451
+ number
452
+
453
+ </td><td>
454
+
455
+ _(Optional)_ Despeckling, value range `0`<!-- -->-`5`
456
+
457
+ </td></tr>
458
+ <tr><td>
459
+
460
+ whiteAsBackgroundColor
461
+
462
+ </td><td>
463
+
464
+ boolean
465
+
466
+ </td><td>
467
+
468
+ _(Optional)_ Whether to use white as the background color
469
+
470
+ </td></tr>
471
+ <tr><td>
472
+
473
+ inversion
474
+
475
+ </td><td>
476
+
477
+ boolean
478
+
479
+ </td><td>
480
+
481
+ _(Optional)_ Whether it is inverted
482
+
483
+ </td></tr>
484
+ </tbody></table>
485
+
486
+ ## Returns
487
+
488
+ Promise&lt;[IPCB\_ComplexPolygon](./IPCB_ComplexPolygon.md) \| undefined&gt;
489
+
490
+ Complex polygon object
491
+
492
+ ## Example
493
+
494
+ ```javascript
495
+ // 1. 用 canvas 画一张测试图:白色背景,中间 10×10 像素的黑色方块
496
+ const canvas = document.createElement('canvas');
497
+ canvas.width = 20;
498
+ canvas.height = 20;
499
+ const ctx = canvas.getContext('2d');
500
+ ctx.fillStyle = '#ffffff';
501
+ ctx.fillRect(0, 0, 20, 20);
502
+ ctx.fillStyle = '#000000';
503
+ ctx.fillRect(5, 5, 10, 10);
504
+
505
+ // 2. 导出为 PNG Blob
506
+ const imageBlob = await new Promise(resolve => canvas.toBlob(resolve, 'image/png'));
507
+
508
+ // 3. 描摹为复杂多边形(全部可选参数走默认值)
509
+ const complexPolygon = await eda.pcb_MathPolygon.convertImageToComplexPolygon(imageBlob, 20, 20);
510
+
511
+ // 4. 读取描摹结果:分块数量与第一块的源数据(描摹出的轮廓点,坐标由算法生成)
512
+ const sources = complexPolygon.getSourceStrictComplex();
513
+ console.log('polygonCount:', sources.length);
514
+ console.log('firstSource:', JSON.stringify(sources[0]).slice(0, 120));
515
+ ```
516
+
517
+ ### createcomplexpolygon
518
+
519
+ # PCB\_MathPolygon.createComplexPolygon() method
520
+
521
+ Create Complex polygon
522
+
523
+ ## Signature
524
+
525
+ ```typescript
526
+ function createComplexPolygon(
527
+ complexPolygon:
528
+ | TPCB_PolygonSourceArray
529
+ | Array<TPCB_PolygonSourceArray>
530
+ | IPCB_Polygon
531
+ | Array<IPCB_Polygon>,
532
+ ): IPCB_ComplexPolygon | undefined;
533
+ ```
534
+
535
+ ## Parameters
536
+
537
+ <table><thead><tr><th>
538
+
539
+ Parameter
540
+
541
+ </th><th>
542
+
543
+ Type
544
+
545
+ </th><th>
546
+
547
+ Description
548
+
549
+ </th></tr></thead>
550
+ <tbody><tr><td>
551
+
552
+ complexPolygon
553
+
554
+ </td><td>
555
+
556
+ [TPCB\_PolygonSourceArray](../types/TPCB_PolygonSourceArray.md) \| Array&lt;[TPCB\_PolygonSourceArray](../types/TPCB_PolygonSourceArray.md)<!-- -->&gt; \| [IPCB\_Polygon](./IPCB_Polygon.md) \| Array&lt;[IPCB\_Polygon](./IPCB_Polygon.md)<!-- -->&gt;
557
+
558
+ </td><td>
559
+
560
+ Complex polygon data
561
+
562
+ </td></tr>
563
+ </tbody></table>
564
+
565
+ ## Returns
566
+
567
+ [IPCB\_ComplexPolygon](./IPCB_ComplexPolygon.md) \| undefined
568
+
569
+ Complex polygon object. `undefined` indicates that the data is invalid
570
+
571
+ ## Example
572
+
573
+ ```javascript
574
+ // 1. 传入两个源数组的数组,创建矩形外框加圆形第二块的复杂多边形(纯数据对象,画布上还看不到)
575
+ const complexPolygon = eda.pcb_MathPolygon.createComplexPolygon([
576
+ ['R', 1000, 1000, 500, 300, 0, 0],
577
+ ['CIRCLE', 3000, 1150, 100],
578
+ ]);
579
+
580
+ // 2. 读取复杂多边形的分块源数据,确认两块都被解析
581
+ const sources = complexPolygon.getSourceStrictComplex();
582
+ sources.forEach((source, index) => {
583
+ console.log(`source${index + 1}:`, JSON.stringify(source));
584
+ });
585
+ console.log('count:', sources.length);
586
+ ```
587
+
588
+ ### createpolygon
589
+
590
+ # PCB\_MathPolygon.createPolygon() method
591
+
592
+ Create Single polygon
593
+
594
+ ## Signature
595
+
596
+ ```typescript
597
+ function createPolygon(polygon: TPCB_PolygonSourceArray): IPCB_Polygon | undefined;
598
+ ```
599
+
600
+ ## Parameters
601
+
602
+ <table><thead><tr><th>
603
+
604
+ Parameter
605
+
606
+ </th><th>
607
+
608
+ Type
609
+
610
+ </th><th>
611
+
612
+ Description
613
+
614
+ </th></tr></thead>
615
+ <tbody><tr><td>
616
+
617
+ polygon
618
+
619
+ </td><td>
620
+
621
+ [TPCB\_PolygonSourceArray](../types/TPCB_PolygonSourceArray.md)
622
+
623
+ </td><td>
624
+
625
+ Single polygon data
626
+
627
+ </td></tr>
628
+ </tbody></table>
629
+
630
+ ## Returns
631
+
632
+ [IPCB\_Polygon](./IPCB_Polygon.md) \| undefined
633
+
634
+ Single polygon object. `undefined` indicates that the data is invalid
635
+
636
+ ## Example
637
+
638
+ ```javascript
639
+ // 1. 用矩形模式源数组创建单多边形对象(x、y、宽、高、旋转、圆角)
640
+ const rectPolygon = eda.pcb_MathPolygon.createPolygon(['R', 1000, 1000, 500, 300, 0, 0]);
641
+
642
+ // 2. 用圆形模式源数组再创建一个(圆心 x、y、半径)
643
+ const circlePolygon = eda.pcb_MathPolygon.createPolygon(['CIRCLE', 1250, 1150, 80]);
644
+
645
+ // 3. 读取单多边形的源数据,确认数据被完整解析
646
+ console.log('rectSource:', JSON.stringify(rectPolygon.getSource()));
647
+ console.log('circleSource:', JSON.stringify(circlePolygon.getSource()));
648
+ ```
649
+
650
+ ### discretize
651
+
652
+ # PCB\_MathPolygon.discretize() method
653
+
654
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
655
+
656
+ Discretize a single polygon into point data
657
+
658
+ ## Signature
659
+
660
+ ```typescript
661
+ function discretize(
662
+ polygon: IPCB_Polygon | TPCB_PolygonSourceArray,
663
+ options?: IPCB_DiscretizeOptions,
664
+ ): Promise<Array<IPCB_DiscretizedPoint>>;
665
+ ```
666
+
667
+ ## Parameters
668
+
669
+ <table><thead><tr><th>
670
+
671
+ Parameter
672
+
673
+ </th><th>
674
+
675
+ Type
676
+
677
+ </th><th>
678
+
679
+ Description
680
+
681
+ </th></tr></thead>
682
+ <tbody><tr><td>
683
+
684
+ polygon
685
+
686
+ </td><td>
687
+
688
+ [IPCB\_Polygon](./IPCB_Polygon.md) \| [TPCB\_PolygonSourceArray](../types/TPCB_PolygonSourceArray.md)
689
+
690
+ </td><td>
691
+
692
+ Single polygon object
693
+
694
+ </td></tr>
695
+ <tr><td>
696
+
697
+ options
698
+
699
+ </td><td>
700
+
701
+ [IPCB\_DiscretizeOptions](../interfaces/IPCB_DiscretizeOptions.md)
702
+
703
+ </td><td>
704
+
705
+ _(Optional)_ Discretization options
706
+
707
+ </td></tr>
708
+ </tbody></table>
709
+
710
+ ## Returns
711
+
712
+ Promise&lt;Array&lt;[IPCB\_DiscretizedPoint](../interfaces/IPCB_DiscretizedPoint.md)<!-- -->&gt;&gt;
713
+
714
+ Discretized point data
715
+
716
+ ## Remarks
717
+
718
+ Discretize the boundary of a single polygon into a series of points
719
+
720
+ ### splitpolygon
721
+
722
+ # PCB\_MathPolygon.splitPolygon() method
723
+
724
+ Split single polygon
725
+
726
+ ## Signature
727
+
728
+ ```typescript
729
+ function splitPolygon(...complexPolygons: Array<IPCB_ComplexPolygon>): Array<IPCB_Polygon>;
730
+ ```
731
+
732
+ ## Parameters
733
+
734
+ <table><thead><tr><th>
735
+
736
+ Parameter
737
+
738
+ </th><th>
739
+
740
+ Type
741
+
742
+ </th><th>
743
+
744
+ Description
745
+
746
+ </th></tr></thead>
747
+ <tbody><tr><td>
748
+
749
+ complexPolygons
750
+
751
+ </td><td>
752
+
753
+ Array&lt;[IPCB\_ComplexPolygon](./IPCB_ComplexPolygon.md)<!-- -->&gt;
754
+
755
+ </td><td>
756
+
757
+ Complex polygon
758
+
759
+ </td></tr>
760
+ </tbody></table>
761
+
762
+ ## Returns
763
+
764
+ Array&lt;[IPCB\_Polygon](./IPCB_Polygon.md)<!-- -->&gt;
765
+
766
+ Single polygon array
767
+
768
+ ## Example
769
+
770
+ ```javascript
771
+ // 1. 构建一个两块的复杂多边形(矩形外框 + 圆形)
772
+ const complexPolygon = eda.pcb_MathPolygon.createComplexPolygon([
773
+ ['R', 1000, 1000, 500, 300, 0, 0],
774
+ ['CIRCLE', 3000, 1150, 100],
775
+ ]);
776
+
777
+ // 2. 拆分为单多边形对象数组
778
+ const polygons = eda.pcb_MathPolygon.splitPolygon(complexPolygon);
779
+
780
+ // 3. 逐个读取单多边形的源数据
781
+ polygons.forEach((polygon, index) => {
782
+ console.log(`polygon${index + 1}:`, JSON.stringify(polygon.getSource()));
783
+ });
784
+ console.log('count:', polygons.length);
785
+ ```