@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,2968 @@
1
+ # PCB\_ManufactureData class
2
+
3
+ PCB & footprint / manufacture data class
4
+
5
+ ## Signature
6
+
7
+ ```typescript
8
+ class PCB_ManufactureData
9
+ ```
10
+
11
+ ## Remarks
12
+
13
+ Get the manufacture data files of the current PCB and quick ordering
14
+
15
+ ## Methods
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Method
20
+
21
+ </th><th>
22
+
23
+ Modifiers
24
+
25
+ </th><th>
26
+
27
+ Description
28
+
29
+ </th></tr></thead>
30
+ <tbody><tr><td>
31
+
32
+ [deleteBomTemplate(template)](./PCB_ManufactureData.md)
33
+
34
+ </td><td>
35
+
36
+ </td><td>
37
+
38
+ **_(BETA)_** Delete BOM template
39
+
40
+ </td></tr>
41
+ <tr><td>
42
+
43
+ [get3DFile(fileName, fileType, element, modelMode, autoGenerateModels)](./PCB_ManufactureData.md)
44
+
45
+ </td><td>
46
+
47
+ </td><td>
48
+
49
+ **_(BETA)_** Get 3D model file
50
+
51
+ </td></tr>
52
+ <tr><td>
53
+
54
+ [get3DShellFile(fileName, fileType)](./PCB_ManufactureData.md)
55
+
56
+ </td><td>
57
+
58
+ </td><td>
59
+
60
+ **_(BETA)_** Get the 3D shell file
61
+
62
+ </td></tr>
63
+ <tr><td>
64
+
65
+ [getAltiumDesignerFile(fileName)](./PCB_ManufactureData.md)
66
+
67
+ </td><td>
68
+
69
+ </td><td>
70
+
71
+ **_(BETA)_** Get Altium Designer file
72
+
73
+ </td></tr>
74
+ <tr><td>
75
+
76
+ [getAutoLayoutJsonFile(fileName)](./PCB_ManufactureData.md)
77
+
78
+ </td><td>
79
+
80
+ </td><td>
81
+
82
+ **_(BETA)_** Get Auto layout file (JSON)
83
+
84
+ </td></tr>
85
+ <tr><td>
86
+
87
+ [getAutoRouteJsonFile(fileName)](./PCB_ManufactureData.md)
88
+
89
+ </td><td>
90
+
91
+ </td><td>
92
+
93
+ **_(BETA)_** Get Auto routing file (JSON)
94
+
95
+ </td></tr>
96
+ <tr><td>
97
+
98
+ [getAutoRouteJsonFileForJRouter(fileName)](./PCB_ManufactureData.md)
99
+
100
+ </td><td>
101
+
102
+ </td><td>
103
+
104
+ **_(BETA)_** Get the JRouter-specific auto routing file (JSON)
105
+
106
+ </td></tr>
107
+ <tr><td>
108
+
109
+ [getBomFile(fileName, fileType, template, filterOptions, statistics, property, columns)](./PCB_ManufactureData.md)
110
+
111
+ </td><td>
112
+
113
+ </td><td>
114
+
115
+ **_(BETA)_** Get BOM file
116
+
117
+ </td></tr>
118
+ <tr><td>
119
+
120
+ [getBomTemplateFile(template)](./PCB_ManufactureData.md)
121
+
122
+ </td><td>
123
+
124
+ </td><td>
125
+
126
+ **_(BETA)_** Get BOM template file
127
+
128
+ </td></tr>
129
+ <tr><td>
130
+
131
+ [getBomTemplates()](./PCB_ManufactureData.md)
132
+
133
+ </td><td>
134
+
135
+ </td><td>
136
+
137
+ **_(BETA)_** Get BOM template list
138
+
139
+ </td></tr>
140
+ <tr><td>
141
+
142
+ [getDsnFile(fileName)](./PCB_ManufactureData.md)
143
+
144
+ </td><td>
145
+
146
+ </td><td>
147
+
148
+ **_(BETA)_** Get Auto routing file (DSN)
149
+
150
+ </td></tr>
151
+ <tr><td>
152
+
153
+ [getDxfFile(fileName, layers, objects)](./PCB_ManufactureData.md)
154
+
155
+ </td><td>
156
+
157
+ </td><td>
158
+
159
+ **_(BETA)_** Get DXF file
160
+
161
+ </td></tr>
162
+ <tr><td>
163
+
164
+ [getFlyingProbeTestFile(fileName)](./PCB_ManufactureData.md)
165
+
166
+ </td><td>
167
+
168
+ </td><td>
169
+
170
+ **_(BETA)_** Get the flying probe test file
171
+
172
+ </td></tr>
173
+ <tr><td>
174
+
175
+ [getGerberFile(fileName, colorSilkscreen, unit, digitalFormat, other, layers, objects)](./PCB_ManufactureData.md)
176
+
177
+ </td><td>
178
+
179
+ </td><td>
180
+
181
+ **_(BETA)_** Get the PCB fabrication file (Gerber)
182
+
183
+ </td></tr>
184
+ <tr><td>
185
+
186
+ [getIdxFile(fileName)](./PCB_ManufactureData.md)
187
+
188
+ </td><td>
189
+
190
+ </td><td>
191
+
192
+ **_(BETA)_** Get IDX file
193
+
194
+ </td></tr>
195
+ <tr><td>
196
+
197
+ [getIpc2581CFile(fileName, fileType, unit, oemNumber)](./PCB_ManufactureData.md)
198
+
199
+ </td><td>
200
+
201
+ </td><td>
202
+
203
+ **_(BETA)_** Get IPC-2581C file
204
+
205
+ </td></tr>
206
+ <tr><td>
207
+
208
+ [getIpcD356AFile(fileName)](./PCB_ManufactureData.md)
209
+
210
+ </td><td>
211
+
212
+ </td><td>
213
+
214
+ **_(BETA)_** Get IPC-D-356A file
215
+
216
+ </td></tr>
217
+ <tr><td>
218
+
219
+ [getManufactureData()](./PCB_ManufactureData.md)
220
+
221
+ </td><td>
222
+
223
+ </td><td>
224
+
225
+ **_(BETA)_** Export the manufacture data
226
+
227
+ </td></tr>
228
+ <tr><td>
229
+
230
+ [getNetlistFile(fileName, netlistType)](./PCB_ManufactureData.md)
231
+
232
+ </td><td>
233
+
234
+ </td><td>
235
+
236
+ **_(BETA)_** Get the netlist file (Netlist)
237
+
238
+ </td></tr>
239
+ <tr><td>
240
+
241
+ [getOpenDatabaseDoublePlusFile(fileName, unit, otherData, layers, objects)](./PCB_ManufactureData.md)
242
+
243
+ </td><td>
244
+
245
+ </td><td>
246
+
247
+ **_(BETA)_** Get ODB++ file
248
+
249
+ </td></tr>
250
+ <tr><td>
251
+
252
+ [getPadsFile(fileName)](./PCB_ManufactureData.md)
253
+
254
+ </td><td>
255
+
256
+ </td><td>
257
+
258
+ **_(BETA)_** Get PADS file
259
+
260
+ </td></tr>
261
+ <tr><td>
262
+
263
+ [getPcbInfoFile(fileName)](./PCB_ManufactureData.md)
264
+
265
+ </td><td>
266
+
267
+ </td><td>
268
+
269
+ **_(BETA)_** Get PCB information file
270
+
271
+ </td></tr>
272
+ <tr><td>
273
+
274
+ [getPdfFile(fileName, outputMethod, contentConfig, watermark, graphPageConfig)](./PCB_ManufactureData.md)
275
+
276
+ </td><td>
277
+
278
+ </td><td>
279
+
280
+ **_(BETA)_** Get PDF file
281
+
282
+ </td></tr>
283
+ <tr><td>
284
+
285
+ [getPickAndPlaceFile(fileName, fileType, unit)](./PCB_ManufactureData.md)
286
+
287
+ </td><td>
288
+
289
+ </td><td>
290
+
291
+ **_(BETA)_** Get Coordinate file (PickAndPlace)
292
+
293
+ </td></tr>
294
+ <tr><td>
295
+
296
+ [getTestPointFile(fileName, fileType)](./PCB_ManufactureData.md)
297
+
298
+ </td><td>
299
+
300
+ </td><td>
301
+
302
+ **_(BETA)_** Get the test point report file
303
+
304
+ </td></tr>
305
+ <tr><td>
306
+
307
+ [place3DShellOrder(interactive, ignoreWarning)](./PCB_ManufactureData.md)
308
+
309
+ </td><td>
310
+
311
+ </td><td>
312
+
313
+ **_(BETA)_** 3D shell ordering
314
+
315
+ </td></tr>
316
+ <tr><td>
317
+
318
+ [placeComponentsOrder(interactive, ignoreWarning)](./PCB_ManufactureData.md)
319
+
320
+ </td><td>
321
+
322
+ </td><td>
323
+
324
+ **_(BETA)_** Component ordering
325
+
326
+ </td></tr>
327
+ <tr><td>
328
+
329
+ [placePcbOrder(interactive, ignoreWarning)](./PCB_ManufactureData.md)
330
+
331
+ </td><td>
332
+
333
+ </td><td>
334
+
335
+ **_(BETA)_** PCB ordering
336
+
337
+ </td></tr>
338
+ <tr><td>
339
+
340
+ [placeSmtComponentsOrder(interactive, ignoreWarning)](./PCB_ManufactureData.md)
341
+
342
+ </td><td>
343
+
344
+ </td><td>
345
+
346
+ **_(BETA)_** SMT component ordering
347
+
348
+ </td></tr>
349
+ <tr><td>
350
+
351
+ [uploadBomTemplateFile(templateFile, template)](./PCB_ManufactureData.md)
352
+
353
+ </td><td>
354
+
355
+ </td><td>
356
+
357
+ **_(BETA)_** Upload a BOM template file
358
+
359
+ </td></tr>
360
+ </tbody></table>
361
+
362
+ ---
363
+
364
+ ## 方法详情
365
+
366
+ ### deletebomtemplate
367
+
368
+ # PCB\_ManufactureData.deleteBomTemplate() method
369
+
370
+ > 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.
371
+
372
+ Delete BOM template
373
+
374
+ ## Signature
375
+
376
+ ```typescript
377
+ function deleteBomTemplate(template: string): Promise<boolean>;
378
+ ```
379
+
380
+ ## Parameters
381
+
382
+ <table><thead><tr><th>
383
+
384
+ Parameter
385
+
386
+ </th><th>
387
+
388
+ Type
389
+
390
+ </th><th>
391
+
392
+ Description
393
+
394
+ </th></tr></thead>
395
+ <tbody><tr><td>
396
+
397
+ template
398
+
399
+ </td><td>
400
+
401
+ string
402
+
403
+ </td><td>
404
+
405
+ BOM template name
406
+
407
+ </td></tr>
408
+ </tbody></table>
409
+
410
+ ## Returns
411
+
412
+ Promise&lt;boolean&gt;
413
+
414
+ Whether the operation is successful
415
+
416
+ ## Example
417
+
418
+ ```javascript
419
+ // 删除指定的 BOM 模板
420
+ const success = await eda.pcb_ManufactureData.deleteBomTemplate('MyCustomTemplate');
421
+ if (success) {
422
+ console.log('BOM 模板删除成功');
423
+ }
424
+ else {
425
+ console.log('删除失败,可能是默认模板或模板不存在');
426
+ }
427
+ ```
428
+
429
+ ### get3dfile
430
+
431
+ # PCB\_ManufactureData.get3DFile() method
432
+
433
+ > 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.
434
+
435
+ Get 3D model file
436
+
437
+ ## Signature
438
+
439
+ ```typescript
440
+ function get3DFile(
441
+ fileName?: string,
442
+ fileType?: 'step' | 'obj',
443
+ element?: Array<'Component Model' | 'Via' | 'Silkscreen' | 'Wire In Signal Layer'>,
444
+ modelMode?: 'Outfit' | 'Parts',
445
+ autoGenerateModels?: boolean,
446
+ ): Promise<File | undefined>;
447
+ ```
448
+
449
+ ## Parameters
450
+
451
+ <table><thead><tr><th>
452
+
453
+ Parameter
454
+
455
+ </th><th>
456
+
457
+ Type
458
+
459
+ </th><th>
460
+
461
+ Description
462
+
463
+ </th></tr></thead>
464
+ <tbody><tr><td>
465
+
466
+ fileName
467
+
468
+ </td><td>
469
+
470
+ string
471
+
472
+ </td><td>
473
+
474
+ _(Optional)_ File name
475
+
476
+ </td></tr>
477
+ <tr><td>
478
+
479
+ fileType
480
+
481
+ </td><td>
482
+
483
+ 'step' \| 'obj'
484
+
485
+ </td><td>
486
+
487
+ _(Optional)_ File type
488
+
489
+ </td></tr>
490
+ <tr><td>
491
+
492
+ element
493
+
494
+ </td><td>
495
+
496
+ Array&lt;'Component Model' \| 'Via' \| 'Silkscreen' \| 'Wire In Signal Layer'&gt;
497
+
498
+ </td><td>
499
+
500
+ _(Optional)_ Exported objects
501
+
502
+ </td></tr>
503
+ <tr><td>
504
+
505
+ modelMode
506
+
507
+ </td><td>
508
+
509
+ 'Outfit' \| 'Parts'
510
+
511
+ </td><td>
512
+
513
+ _(Optional)_ Export mode. `Outfit` = assembly, `Parts` = parts
514
+
515
+ </td></tr>
516
+ <tr><td>
517
+
518
+ autoGenerateModels
519
+
520
+ </td><td>
521
+
522
+ boolean
523
+
524
+ </td><td>
525
+
526
+ _(Optional)_ Whether to automatically generate a 3D model for components not bound to a 3D model (based on the "height" property of the component)
527
+
528
+ </td></tr>
529
+ </tbody></table>
530
+
531
+ ## Returns
532
+
533
+ Promise&lt;File \| undefined&gt;
534
+
535
+ 3D model file data
536
+
537
+ ## Remarks
538
+
539
+ Please note: only component models imported in STEP format can be reflected in the exported STEP file
540
+
541
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
542
+
543
+ ## Example
544
+
545
+ ```javascript
546
+ // 导出装配体模式的 STEP 文件(包含元件模型)
547
+ const stepFile = await eda.pcb_ManufactureData.get3DFile(
548
+ 'MyBoard_3D',
549
+ 'step',
550
+ ['Component Model'],
551
+ 'Outfit',
552
+ true
553
+ );
554
+ if (stepFile) {
555
+ await eda.sys_FileSystem.saveFile(stepFile);
556
+ }
557
+
558
+ // 导出包含多种对象的完整 3D 模型
559
+ const full3DFile = await eda.pcb_ManufactureData.get3DFile(
560
+ 'Complete_3D_Model',
561
+ 'step',
562
+ ['Component Model', 'Via', 'Silkscreen', 'Wire In Signal Layer'],
563
+ 'Outfit',
564
+ true
565
+ );
566
+
567
+ // 导出零件模式 OBJ 文件
568
+ const objFile = await eda.pcb_ManufactureData.get3DFile(
569
+ 'MyBoard_OBJ',
570
+ 'obj',
571
+ ['Component Model'],
572
+ 'Parts',
573
+ false
574
+ );
575
+ ```
576
+
577
+ ### get3dshellfile
578
+
579
+ # PCB\_ManufactureData.get3DShellFile() method
580
+
581
+ > 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.
582
+
583
+ Get the 3D shell file
584
+
585
+ ## Signature
586
+
587
+ ```typescript
588
+ function get3DShellFile(
589
+ fileName?: string,
590
+ fileType?: 'stl' | 'step' | 'obj',
591
+ ): Promise<File | undefined>;
592
+ ```
593
+
594
+ ## Parameters
595
+
596
+ <table><thead><tr><th>
597
+
598
+ Parameter
599
+
600
+ </th><th>
601
+
602
+ Type
603
+
604
+ </th><th>
605
+
606
+ Description
607
+
608
+ </th></tr></thead>
609
+ <tbody><tr><td>
610
+
611
+ fileName
612
+
613
+ </td><td>
614
+
615
+ string
616
+
617
+ </td><td>
618
+
619
+ _(Optional)_ File name
620
+
621
+ </td></tr>
622
+ <tr><td>
623
+
624
+ fileType
625
+
626
+ </td><td>
627
+
628
+ 'stl' \| 'step' \| 'obj'
629
+
630
+ </td><td>
631
+
632
+ _(Optional)_ File type
633
+
634
+ </td></tr>
635
+ </tbody></table>
636
+
637
+ ## Returns
638
+
639
+ Promise&lt;File \| undefined&gt;
640
+
641
+ 3D shell file data
642
+
643
+ ## Remarks
644
+
645
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
646
+
647
+ ## Example
648
+
649
+ ```javascript
650
+ // 导出 STL 格式 3D 外壳
651
+ const stlFile = await eda.pcb_ManufactureData.get3DShellFile('Board_Shell', 'stl');
652
+ if (stlFile) {
653
+ await eda.sys_FileSystem.saveFile(stlFile);
654
+ }
655
+
656
+ // 导出 STEP 格式 3D 外壳
657
+ const stepShellFile = await eda.pcb_ManufactureData.get3DShellFile('Board_Shell_STEP', 'step');
658
+ if (stepShellFile) {
659
+ await eda.sys_FileSystem.saveFile(stepShellFile);
660
+ }
661
+ ```
662
+
663
+ ### getaltiumdesignerfile
664
+
665
+ # PCB\_ManufactureData.getAltiumDesignerFile() method
666
+
667
+ > 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.
668
+
669
+ Get Altium Designer file
670
+
671
+ ## Signature
672
+
673
+ ```typescript
674
+ function getAltiumDesignerFile(fileName?: string): Promise<File | undefined>;
675
+ ```
676
+
677
+ ## Parameters
678
+
679
+ <table><thead><tr><th>
680
+
681
+ Parameter
682
+
683
+ </th><th>
684
+
685
+ Type
686
+
687
+ </th><th>
688
+
689
+ Description
690
+
691
+ </th></tr></thead>
692
+ <tbody><tr><td>
693
+
694
+ fileName
695
+
696
+ </td><td>
697
+
698
+ string
699
+
700
+ </td><td>
701
+
702
+ _(Optional)_ File name
703
+
704
+ </td></tr>
705
+ </tbody></table>
706
+
707
+ ## Returns
708
+
709
+ Promise&lt;File \| undefined&gt;
710
+
711
+ Altium Designer file data
712
+
713
+ ## Remarks
714
+
715
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
716
+
717
+ ## Example
718
+
719
+ ```javascript
720
+ // 获取 Altium Designer 格式文件
721
+ const adFile = await eda.pcb_ManufactureData.getAltiumDesignerFile('Converted_To_AD');
722
+ if (adFile) {
723
+ await eda.sys_FileSystem.saveFile(adFile);
724
+ }
725
+ ```
726
+
727
+ ### getautolayoutjsonfile
728
+
729
+ # PCB\_ManufactureData.getAutoLayoutJsonFile() method
730
+
731
+ > 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.
732
+
733
+ Get Auto layout file (JSON)
734
+
735
+ ## Signature
736
+
737
+ ```typescript
738
+ function getAutoLayoutJsonFile(fileName?: string): Promise<File | undefined>;
739
+ ```
740
+
741
+ ## Parameters
742
+
743
+ <table><thead><tr><th>
744
+
745
+ Parameter
746
+
747
+ </th><th>
748
+
749
+ Type
750
+
751
+ </th><th>
752
+
753
+ Description
754
+
755
+ </th></tr></thead>
756
+ <tbody><tr><td>
757
+
758
+ fileName
759
+
760
+ </td><td>
761
+
762
+ string
763
+
764
+ </td><td>
765
+
766
+ _(Optional)_ File name
767
+
768
+ </td></tr>
769
+ </tbody></table>
770
+
771
+ ## Returns
772
+
773
+ Promise&lt;File \| undefined&gt;
774
+
775
+ Auto layout JSON file data
776
+
777
+ ## Remarks
778
+
779
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
780
+
781
+ ## Example
782
+
783
+ ```javascript
784
+ const autoLayoutJson = await eda.pcb_ManufactureData.getAutoLayoutJsonFile('AutoLayout_Json');
785
+ if (autoLayoutJson) {
786
+ await eda.sys_FileSystem.saveFile(autoLayoutJson);
787
+ }
788
+ ```
789
+
790
+ ### getautoroutejsonfile
791
+
792
+ # PCB\_ManufactureData.getAutoRouteJsonFile() method
793
+
794
+ > 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.
795
+
796
+ Get Auto routing file (JSON)
797
+
798
+ ## Signature
799
+
800
+ ```typescript
801
+ function getAutoRouteJsonFile(fileName?: string): Promise<File | undefined>;
802
+ ```
803
+
804
+ ## Parameters
805
+
806
+ <table><thead><tr><th>
807
+
808
+ Parameter
809
+
810
+ </th><th>
811
+
812
+ Type
813
+
814
+ </th><th>
815
+
816
+ Description
817
+
818
+ </th></tr></thead>
819
+ <tbody><tr><td>
820
+
821
+ fileName
822
+
823
+ </td><td>
824
+
825
+ string
826
+
827
+ </td><td>
828
+
829
+ _(Optional)_ File name
830
+
831
+ </td></tr>
832
+ </tbody></table>
833
+
834
+ ## Returns
835
+
836
+ Promise&lt;File \| undefined&gt;
837
+
838
+ Auto routing JSON file data
839
+
840
+ ## Remarks
841
+
842
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
843
+
844
+ ## Example
845
+
846
+ ```javascript
847
+ const autoRouteJson = await eda.pcb_ManufactureData.getAutoRouteJsonFile('AutoRoute_Json');
848
+ if (autoRouteJson) {
849
+ await eda.sys_FileSystem.saveFile(autoRouteJson);
850
+ }
851
+ ```
852
+
853
+ ### getautoroutejsonfileforjrouter
854
+
855
+ # PCB\_ManufactureData.getAutoRouteJsonFileForJRouter() method
856
+
857
+ > 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.
858
+
859
+ Get the JRouter-specific auto routing file (JSON)
860
+
861
+ ## Signature
862
+
863
+ ```typescript
864
+ function getAutoRouteJsonFileForJRouter(fileName?: string): Promise<File | undefined>;
865
+ ```
866
+
867
+ ## Parameters
868
+
869
+ <table><thead><tr><th>
870
+
871
+ Parameter
872
+
873
+ </th><th>
874
+
875
+ Type
876
+
877
+ </th><th>
878
+
879
+ Description
880
+
881
+ </th></tr></thead>
882
+ <tbody><tr><td>
883
+
884
+ fileName
885
+
886
+ </td><td>
887
+
888
+ string
889
+
890
+ </td><td>
891
+
892
+ _(Optional)_ File name
893
+
894
+ </td></tr>
895
+ </tbody></table>
896
+
897
+ ## Returns
898
+
899
+ Promise&lt;File \| undefined&gt;
900
+
901
+ Auto routing JSON file data
902
+
903
+ ## Remarks
904
+
905
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
906
+
907
+ ## Example
908
+
909
+ ```javascript
910
+ // 1. 导出 JRouter 专用自动布线 JSON 文件(参数为目标文件名)
911
+ const jrouterFile = await eda.pcb_ManufactureData.getAutoRouteJsonFileForJRouter('嘉立创示例_JRouter');
912
+
913
+ // 2. 查看导出结果
914
+ console.log('导出文件名:', jrouterFile?.name);
915
+ console.log('文件大小:', jrouterFile?.size);
916
+ ```
917
+
918
+ ### getbomfile
919
+
920
+ # PCB\_ManufactureData.getBomFile() method
921
+
922
+ > 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.
923
+
924
+ Get BOM file
925
+
926
+ ## Signature
927
+
928
+ ```typescript
929
+ function getBomFile(
930
+ fileName?: string,
931
+ fileType?: 'xlsx' | 'csv',
932
+ template?: string,
933
+ filterOptions?: Array<{ property: string; includeValue: string | false | true }>,
934
+ statistics?: Array<string>,
935
+ property?: Array<string>,
936
+ columns?: Array<IPCB_BomPropertiesTableColumns>,
937
+ ): Promise<File | undefined>;
938
+ ```
939
+
940
+ ## Parameters
941
+
942
+ <table><thead><tr><th>
943
+
944
+ Parameter
945
+
946
+ </th><th>
947
+
948
+ Type
949
+
950
+ </th><th>
951
+
952
+ Description
953
+
954
+ </th></tr></thead>
955
+ <tbody><tr><td>
956
+
957
+ fileName
958
+
959
+ </td><td>
960
+
961
+ string
962
+
963
+ </td><td>
964
+
965
+ _(Optional)_ File name
966
+
967
+ </td></tr>
968
+ <tr><td>
969
+
970
+ fileType
971
+
972
+ </td><td>
973
+
974
+ 'xlsx' \| 'csv'
975
+
976
+ </td><td>
977
+
978
+ _(Optional)_ File type
979
+
980
+ </td></tr>
981
+ <tr><td>
982
+
983
+ template
984
+
985
+ </td><td>
986
+
987
+ string
988
+
989
+ </td><td>
990
+
991
+ _(Optional)_ Template name
992
+
993
+ </td></tr>
994
+ <tr><td>
995
+
996
+ filterOptions
997
+
998
+ </td><td>
999
+
1000
+ Array&lt;{ property: string; includeValue: string \| false \| true }&gt;
1001
+
1002
+ </td><td>
1003
+
1004
+ _(Optional)_ Filter rules, which should only contain the rules to be enabled. `property` is the rule name, and `includeValue` is the matched value
1005
+
1006
+ </td></tr>
1007
+ <tr><td>
1008
+
1009
+ statistics
1010
+
1011
+ </td><td>
1012
+
1013
+ Array&lt;string&gt;
1014
+
1015
+ </td><td>
1016
+
1017
+ _(Optional)_ Statistics, containing the names of all statistic items to be enabled
1018
+
1019
+ </td></tr>
1020
+ <tr><td>
1021
+
1022
+ property
1023
+
1024
+ </td><td>
1025
+
1026
+ Array&lt;string&gt;
1027
+
1028
+ </td><td>
1029
+
1030
+ _(Optional)_ Properties, containing the names of all properties to be enabled
1031
+
1032
+ </td></tr>
1033
+ <tr><td>
1034
+
1035
+ columns
1036
+
1037
+ </td><td>
1038
+
1039
+ Array&lt;[IPCB\_BomPropertiesTableColumns](../interfaces/IPCB_BomPropertiesTableColumns.md)<!-- -->&gt;
1040
+
1041
+ </td><td>
1042
+
1043
+ _(Optional)_ Column properties and sorting. If `title`<!-- -->, `sort`<!-- -->, `group`<!-- -->, and `orderWeight` are not passed in, default values are used. `null` means \*\*none\*\* or \*\*empty\*\*
1044
+
1045
+ </td></tr>
1046
+ </tbody></table>
1047
+
1048
+ ## Returns
1049
+
1050
+ Promise&lt;File \| undefined&gt;
1051
+
1052
+ BOM file data
1053
+
1054
+ ## Remarks
1055
+
1056
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
1057
+
1058
+ ## Example
1059
+
1060
+ ```javascript
1061
+ // 使用默认配置导出 BOM
1062
+ const bomFile = await eda.pcb_ManufactureData.getBomFile('MyBOM', 'xlsx');
1063
+ if (bomFile) {
1064
+ await eda.sys_FileSystem.saveFile(bomFile);
1065
+ }
1066
+
1067
+ // 自定义 BOM 过滤和列配置
1068
+ const bomFile = await eda.pcb_ManufactureData.getBomFile(
1069
+ 'Custom_Production_BOM',
1070
+ 'xlsx',
1071
+ undefined,
1072
+ [
1073
+ { property: 'Add into BOM', includeValue: 'yes' },
1074
+ { property: 'Convert to PCB', includeValue: 'yes' }
1075
+ ],
1076
+ ['No.', 'Quantity', 'Comment'],
1077
+ ['Name', 'Device', 'Designator', 'Supplier'],
1078
+ [
1079
+ { property: 'Designator', title: '位号', sort: 'asc', group: 'No', orderWeight: 10 },
1080
+ { property: 'Quantity', title: '数量', sort: 'desc', group: 'Yes', orderWeight: 9 }
1081
+ ]
1082
+ );
1083
+
1084
+ // 导出 CSV 格式 BOM
1085
+ const csvBomFile = await eda.pcb_ManufactureData.getBomFile(
1086
+ 'Simple_BOM',
1087
+ 'csv',
1088
+ undefined,
1089
+ [{ property: 'Add into BOM', includeValue: 'yes' }],
1090
+ ['No.', 'Quantity'],
1091
+ ['Designator', 'Footprint', 'Value']
1092
+ );
1093
+ ```
1094
+
1095
+ ### getbomtemplatefile
1096
+
1097
+ # PCB\_ManufactureData.getBomTemplateFile() method
1098
+
1099
+ > 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.
1100
+
1101
+ Get BOM template file
1102
+
1103
+ ## Signature
1104
+
1105
+ ```typescript
1106
+ function getBomTemplateFile(template: string): Promise<File | undefined>;
1107
+ ```
1108
+
1109
+ ## Parameters
1110
+
1111
+ <table><thead><tr><th>
1112
+
1113
+ Parameter
1114
+
1115
+ </th><th>
1116
+
1117
+ Type
1118
+
1119
+ </th><th>
1120
+
1121
+ Description
1122
+
1123
+ </th></tr></thead>
1124
+ <tbody><tr><td>
1125
+
1126
+ template
1127
+
1128
+ </td><td>
1129
+
1130
+ string
1131
+
1132
+ </td><td>
1133
+
1134
+ BOM template name
1135
+
1136
+ </td></tr>
1137
+ </tbody></table>
1138
+
1139
+ ## Returns
1140
+
1141
+ Promise&lt;File \| undefined&gt;
1142
+
1143
+ BOM template file
1144
+
1145
+ ## Example
1146
+
1147
+ ```javascript
1148
+ // 获取指定模板的文件
1149
+ const templateFile = await eda.pcb_ManufactureData.getBomTemplateFile('MyCustomTemplate');
1150
+ if (templateFile) {
1151
+ await eda.sys_FileSystem.saveFile(templateFile);
1152
+ }
1153
+ ```
1154
+
1155
+ ### getbomtemplates
1156
+
1157
+ # PCB\_ManufactureData.getBomTemplates() method
1158
+
1159
+ > 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.
1160
+
1161
+ Get BOM template list
1162
+
1163
+ ## Signature
1164
+
1165
+ ```typescript
1166
+ function getBomTemplates(): Promise<Array<string>>;
1167
+ ```
1168
+
1169
+ ## Returns
1170
+
1171
+ Promise&lt;Array&lt;string&gt;&gt;
1172
+
1173
+ BOM template list
1174
+
1175
+ ## Example
1176
+
1177
+ ```javascript
1178
+ // 获取所有可用的 BOM 模板
1179
+ const templates = await eda.pcb_ManufactureData.getBomTemplates();
1180
+ console.log('可用的 BOM 模板:', templates);
1181
+ templates.forEach((template, index) => {
1182
+ console.log(`${index + 1}. ${template}`);
1183
+ });
1184
+ ```
1185
+
1186
+ ### getdsnfile
1187
+
1188
+ # PCB\_ManufactureData.getDsnFile() method
1189
+
1190
+ > 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.
1191
+
1192
+ Get Auto routing file (DSN)
1193
+
1194
+ ## Signature
1195
+
1196
+ ```typescript
1197
+ function getDsnFile(fileName?: string): Promise<File | undefined>;
1198
+ ```
1199
+
1200
+ ## Parameters
1201
+
1202
+ <table><thead><tr><th>
1203
+
1204
+ Parameter
1205
+
1206
+ </th><th>
1207
+
1208
+ Type
1209
+
1210
+ </th><th>
1211
+
1212
+ Description
1213
+
1214
+ </th></tr></thead>
1215
+ <tbody><tr><td>
1216
+
1217
+ fileName
1218
+
1219
+ </td><td>
1220
+
1221
+ string
1222
+
1223
+ </td><td>
1224
+
1225
+ _(Optional)_ File name
1226
+
1227
+ </td></tr>
1228
+ </tbody></table>
1229
+
1230
+ ## Returns
1231
+
1232
+ Promise&lt;File \| undefined&gt;
1233
+
1234
+ Auto routing DSN file data
1235
+
1236
+ ## Remarks
1237
+
1238
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
1239
+
1240
+ ## Example
1241
+
1242
+ ```javascript
1243
+ const dsnFile = await eda.pcb_ManufactureData.getDsnFile('AutoRoute_DSN');
1244
+ if (dsnFile) {
1245
+ await eda.sys_FileSystem.saveFile(dsnFile);
1246
+ }
1247
+ ```
1248
+
1249
+ ### getdxffile
1250
+
1251
+ # PCB\_ManufactureData.getDxfFile() method
1252
+
1253
+ > 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.
1254
+
1255
+ Get DXF file
1256
+
1257
+ ## Signature
1258
+
1259
+ ```typescript
1260
+ function getDxfFile(
1261
+ fileName?: string,
1262
+ layers?: Array<{ layerId: EPCB_LayerId; mirror: boolean }>,
1263
+ objects?: Array<string>,
1264
+ ): Promise<File | undefined>;
1265
+ ```
1266
+
1267
+ ## Parameters
1268
+
1269
+ <table><thead><tr><th>
1270
+
1271
+ Parameter
1272
+
1273
+ </th><th>
1274
+
1275
+ Type
1276
+
1277
+ </th><th>
1278
+
1279
+ Description
1280
+
1281
+ </th></tr></thead>
1282
+ <tbody><tr><td>
1283
+
1284
+ fileName
1285
+
1286
+ </td><td>
1287
+
1288
+ string
1289
+
1290
+ </td><td>
1291
+
1292
+ _(Optional)_ File name
1293
+
1294
+ </td></tr>
1295
+ <tr><td>
1296
+
1297
+ layers
1298
+
1299
+ </td><td>
1300
+
1301
+ Array&lt;{ layerId: [EPCB\_LayerId](../enums/EPCB_LayerId.md)<!-- -->; mirror: boolean }&gt;
1302
+
1303
+ </td><td>
1304
+
1305
+ _(Optional)_ Exported layers
1306
+
1307
+ </td></tr>
1308
+ <tr><td>
1309
+
1310
+ objects
1311
+
1312
+ </td><td>
1313
+
1314
+ Array&lt;string&gt;
1315
+
1316
+ </td><td>
1317
+
1318
+ _(Optional)_ Exported objects
1319
+
1320
+ </td></tr>
1321
+ </tbody></table>
1322
+
1323
+ ## Returns
1324
+
1325
+ Promise&lt;File \| undefined&gt;
1326
+
1327
+ DXF file data
1328
+
1329
+ ## Remarks
1330
+
1331
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
1332
+
1333
+ ## Example
1334
+
1335
+ ```javascript
1336
+ // 1. 指定导出层:顶层铜层(layerId 1)和板框层(layerId 11),不镜像
1337
+ const layers = [
1338
+ { layerId: 1, mirror: false },
1339
+ { layerId: 11, mirror: false }
1340
+ ];
1341
+
1342
+ // 2. 发起导出,25 秒内完成就输出文件信息
1343
+ const dxfFile = await Promise.race([
1344
+ eda.pcb_ManufactureData.getDxfFile('嘉立创示例_DXF', layers),
1345
+ new Promise(resolve => setTimeout(() => resolve(undefined), 25000))
1346
+ ]);
1347
+
1348
+ // 3. 查看导出结果
1349
+ if (dxfFile) {
1350
+ console.log('导出文件名:', dxfFile.name);
1351
+ console.log('文件大小:', dxfFile.size);
1352
+ }
1353
+ else {
1354
+ console.log('导出超过 25 秒仍在后台进行,真实使用直接 await 等待完成即可');
1355
+ }
1356
+ ```
1357
+
1358
+ ### getflyingprobetestfile
1359
+
1360
+ # PCB\_ManufactureData.getFlyingProbeTestFile() method
1361
+
1362
+ > 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.
1363
+
1364
+ Get the flying probe test file
1365
+
1366
+ ## Signature
1367
+
1368
+ ```typescript
1369
+ function getFlyingProbeTestFile(fileName?: string): Promise<File | undefined>;
1370
+ ```
1371
+
1372
+ ## Parameters
1373
+
1374
+ <table><thead><tr><th>
1375
+
1376
+ Parameter
1377
+
1378
+ </th><th>
1379
+
1380
+ Type
1381
+
1382
+ </th><th>
1383
+
1384
+ Description
1385
+
1386
+ </th></tr></thead>
1387
+ <tbody><tr><td>
1388
+
1389
+ fileName
1390
+
1391
+ </td><td>
1392
+
1393
+ string
1394
+
1395
+ </td><td>
1396
+
1397
+ _(Optional)_ File name
1398
+
1399
+ </td></tr>
1400
+ </tbody></table>
1401
+
1402
+ ## Returns
1403
+
1404
+ Promise&lt;File \| undefined&gt;
1405
+
1406
+ Flying probe test file data
1407
+
1408
+ ## Example
1409
+
1410
+ ```javascript
1411
+ // 保存飞针测试文件到本地
1412
+ const flyingProbeFile = await eda.pcb_ManufactureData.getFlyingProbeTestFile('FlyingProbe_Test');
1413
+ if (flyingProbeFile) {
1414
+ await eda.sys_FileSystem.saveFile(flyingProbeFile);
1415
+ }
1416
+ ```
1417
+
1418
+ ### getgerberfile
1419
+
1420
+ # PCB\_ManufactureData.getGerberFile() method
1421
+
1422
+ > 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.
1423
+
1424
+ Get the PCB fabrication file (Gerber)
1425
+
1426
+ ## Signature
1427
+
1428
+ ```typescript
1429
+ function getGerberFile(
1430
+ fileName?: string,
1431
+ colorSilkscreen?: boolean,
1432
+ unit?: ESYS_Unit.MILLIMETER | ESYS_Unit.INCH,
1433
+ digitalFormat?: { integerNumber: number; decimalNumber: number },
1434
+ other?: {
1435
+ metallicDrillingInformation: boolean;
1436
+ nonMetallicDrillingInformation: boolean;
1437
+ drillTable: boolean;
1438
+ flyingProbeTestingFile: boolean;
1439
+ },
1440
+ layers?: Array<{ layerId: EPCB_LayerId; isMirror: boolean }>,
1441
+ objects?: Array<
1442
+ | 'Pad'
1443
+ | 'Via'
1444
+ | 'Track'
1445
+ | 'Text'
1446
+ | 'Image'
1447
+ | 'Dimension'
1448
+ | 'BoardOutline'
1449
+ | 'BoardCutout'
1450
+ | 'CopperFilled'
1451
+ | 'SolidRegion'
1452
+ | 'FPCStiffener'
1453
+ | 'Line'
1454
+ | 'PlaneZone'
1455
+ | 'ComponentProperty'
1456
+ | 'ComponentSilkscreen'
1457
+ | 'TearDrop'
1458
+ >,
1459
+ ): Promise<File | undefined>;
1460
+ ```
1461
+
1462
+ ## Parameters
1463
+
1464
+ <table><thead><tr><th>
1465
+
1466
+ Parameter
1467
+
1468
+ </th><th>
1469
+
1470
+ Type
1471
+
1472
+ </th><th>
1473
+
1474
+ Description
1475
+
1476
+ </th></tr></thead>
1477
+ <tbody><tr><td>
1478
+
1479
+ fileName
1480
+
1481
+ </td><td>
1482
+
1483
+ string
1484
+
1485
+ </td><td>
1486
+
1487
+ _(Optional)_ File name
1488
+
1489
+ </td></tr>
1490
+ <tr><td>
1491
+
1492
+ colorSilkscreen
1493
+
1494
+ </td><td>
1495
+
1496
+ boolean
1497
+
1498
+ </td><td>
1499
+
1500
+ _(Optional)_ Whether to generate a color silkscreen fabrication file (EasyEDA-specific file)
1501
+
1502
+ </td></tr>
1503
+ <tr><td>
1504
+
1505
+ unit
1506
+
1507
+ </td><td>
1508
+
1509
+ [ESYS\_Unit.MILLIMETER](../enums/ESYS_Unit.md) \| [ESYS\_Unit.INCH](../enums/ESYS_Unit.md)
1510
+
1511
+ </td><td>
1512
+
1513
+ _(Optional)_ Unit
1514
+
1515
+ </td></tr>
1516
+ <tr><td>
1517
+
1518
+ digitalFormat
1519
+
1520
+ </td><td>
1521
+
1522
+ \{ integerNumber: number; decimalNumber: number \}
1523
+
1524
+ </td><td>
1525
+
1526
+ _(Optional)_ Digital format
1527
+
1528
+ </td></tr>
1529
+ <tr><td>
1530
+
1531
+ other
1532
+
1533
+ </td><td>
1534
+
1535
+ \{ metallicDrillingInformation: boolean; nonMetallicDrillingInformation: boolean; drillTable: boolean; flyingProbeTestingFile: boolean \}
1536
+
1537
+ </td><td>
1538
+
1539
+ _(Optional)_ Other
1540
+
1541
+ </td></tr>
1542
+ <tr><td>
1543
+
1544
+ layers
1545
+
1546
+ </td><td>
1547
+
1548
+ Array&lt;{ layerId: [EPCB\_LayerId](../enums/EPCB_LayerId.md)<!-- -->; isMirror: boolean }&gt;
1549
+
1550
+ </td><td>
1551
+
1552
+ _(Optional)_ Exported layers. By default, they are exported according to EasyEDA production requirements
1553
+
1554
+ </td></tr>
1555
+ <tr><td>
1556
+
1557
+ objects
1558
+
1559
+ </td><td>
1560
+
1561
+ Array&lt;'Pad' \| 'Via' \| 'Track' \| 'Text' \| 'Image' \| 'Dimension' \| 'BoardOutline' \| 'BoardCutout' \| 'CopperFilled' \| 'SolidRegion' \| 'FPCStiffener' \| 'Line' \| 'PlaneZone' \| 'ComponentProperty' \| 'ComponentSilkscreen' \| 'TearDrop'&gt;
1562
+
1563
+ </td><td>
1564
+
1565
+ _(Optional)_ Exported objects. By default, they are exported according to EasyEDA production requirements
1566
+
1567
+ </td></tr>
1568
+ </tbody></table>
1569
+
1570
+ ## Returns
1571
+
1572
+ Promise&lt;File \| undefined&gt;
1573
+
1574
+ PCB fabrication file data
1575
+
1576
+ ## Remarks
1577
+
1578
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
1579
+
1580
+ ## Example
1581
+
1582
+ ```javascript
1583
+ // 导出默认的 Gerber 文件
1584
+ const gerberFile = await eda.pcb_ManufactureData.getGerberFile('MyBoard_Gerber');
1585
+ if (gerberFile) {
1586
+ console.log('Gerber 文件已生成:', gerberFile);
1587
+ }
1588
+
1589
+ // 导出并保存到本地
1590
+ const gerberFile = await eda.pcb_ManufactureData.getGerberFile(
1591
+ 'MyBoard_Gerber',
1592
+ false,
1593
+ ESYS_Unit.MILLIMETER,
1594
+ { integerNumber: 2, decimalNumber: 6 }
1595
+ );
1596
+ if (gerberFile) {
1597
+ await eda.sys_FileSystem.saveFile(gerberFile,'Gerber.zip');
1598
+ }
1599
+
1600
+ // 自定义导出层和对象
1601
+ const gerberFile = await eda.pcb_ManufactureData.getGerberFile(
1602
+ 'Custom_Gerber',
1603
+ false,
1604
+ ESYS_Unit.INCH,
1605
+ { integerNumber: 3, decimalNumber: 5 },
1606
+ { metallicDrillingInformation: true, nonMetallicDrillingInformation: true, drillTable: false, flyingProbeTestingFile: false },
1607
+ [{ layerId: EPCB_LayerId.TOP, isMirror: false }, { layerId: EPCB_LayerId.BOTTOM, isMirror: false }, { layerId: EPCB_LayerId.BOARD_OUTLINE, isMirror: false }],
1608
+ ['Pad', 'Via', 'Track', 'BoardOutline']
1609
+ );
1610
+ ```
1611
+
1612
+ ### getidxfile
1613
+
1614
+ # PCB\_ManufactureData.getIdxFile() method
1615
+
1616
+ > 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.
1617
+
1618
+ Get IDX file
1619
+
1620
+ ## Signature
1621
+
1622
+ ```typescript
1623
+ function getIdxFile(fileName?: string): Promise<File | undefined>;
1624
+ ```
1625
+
1626
+ ## Parameters
1627
+
1628
+ <table><thead><tr><th>
1629
+
1630
+ Parameter
1631
+
1632
+ </th><th>
1633
+
1634
+ Type
1635
+
1636
+ </th><th>
1637
+
1638
+ Description
1639
+
1640
+ </th></tr></thead>
1641
+ <tbody><tr><td>
1642
+
1643
+ fileName
1644
+
1645
+ </td><td>
1646
+
1647
+ string
1648
+
1649
+ </td><td>
1650
+
1651
+ _(Optional)_
1652
+
1653
+ </td></tr>
1654
+ </tbody></table>
1655
+
1656
+ ## Returns
1657
+
1658
+ Promise&lt;File \| undefined&gt;
1659
+
1660
+ IDX file
1661
+
1662
+ ## Remarks
1663
+
1664
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
1665
+
1666
+ ## Example
1667
+
1668
+ ```javascript
1669
+ const idxFile = await eda.pcb_ManufactureData.getIdxFile('Design_Exchange');
1670
+ if (idxFile) {
1671
+ await eda.sys_FileSystem.saveFile(idxFile);
1672
+ }
1673
+ ```
1674
+
1675
+ ### getipc2581cfile
1676
+
1677
+ # PCB\_ManufactureData.getIpc2581CFile() method
1678
+
1679
+ > 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.
1680
+
1681
+ Get IPC-2581C file
1682
+
1683
+ ## Signature
1684
+
1685
+ ```typescript
1686
+ function getIpc2581CFile(
1687
+ fileName?: string,
1688
+ fileType?: 'xml' | 'cvg' | '2581',
1689
+ unit?: ESYS_Unit.INCH | ESYS_Unit.MILLIMETER,
1690
+ oemNumber?: 'Device' | 'Manufacturer Part' | 'Supplier Part' | 'Comment',
1691
+ ): Promise<File | undefined>;
1692
+ ```
1693
+
1694
+ ## Parameters
1695
+
1696
+ <table><thead><tr><th>
1697
+
1698
+ Parameter
1699
+
1700
+ </th><th>
1701
+
1702
+ Type
1703
+
1704
+ </th><th>
1705
+
1706
+ Description
1707
+
1708
+ </th></tr></thead>
1709
+ <tbody><tr><td>
1710
+
1711
+ fileName
1712
+
1713
+ </td><td>
1714
+
1715
+ string
1716
+
1717
+ </td><td>
1718
+
1719
+ _(Optional)_ File name
1720
+
1721
+ </td></tr>
1722
+ <tr><td>
1723
+
1724
+ fileType
1725
+
1726
+ </td><td>
1727
+
1728
+ 'xml' \| 'cvg' \| '2581'
1729
+
1730
+ </td><td>
1731
+
1732
+ _(Optional)_
1733
+
1734
+ </td></tr>
1735
+ <tr><td>
1736
+
1737
+ unit
1738
+
1739
+ </td><td>
1740
+
1741
+ [ESYS\_Unit.INCH](../enums/ESYS_Unit.md) \| [ESYS\_Unit.MILLIMETER](../enums/ESYS_Unit.md)
1742
+
1743
+ </td><td>
1744
+
1745
+ _(Optional)_
1746
+
1747
+ </td></tr>
1748
+ <tr><td>
1749
+
1750
+ oemNumber
1751
+
1752
+ </td><td>
1753
+
1754
+ 'Device' \| 'Manufacturer Part' \| 'Supplier Part' \| 'Comment'
1755
+
1756
+ </td><td>
1757
+
1758
+ _(Optional)_
1759
+
1760
+ </td></tr>
1761
+ </tbody></table>
1762
+
1763
+ ## Returns
1764
+
1765
+ Promise&lt;File \| undefined&gt;
1766
+
1767
+ IPC-2581C file data
1768
+
1769
+ ## Remarks
1770
+
1771
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
1772
+
1773
+ ## Example
1774
+
1775
+ ```javascript
1776
+ // 1. 发起导出(XML 格式、毫米单位、OEM 编号取元件的 Device 属性),
1777
+ // 25 秒内完成就输出文件信息
1778
+ const ipcFile = await Promise.race([
1779
+ eda.pcb_ManufactureData.getIpc2581CFile('嘉立创示例_IPC2581C', 'xml', 'mm', 'Device'),
1780
+ new Promise(resolve => setTimeout(() => resolve(undefined), 25000))
1781
+ ]);
1782
+
1783
+ // 2. 查看导出结果
1784
+ if (ipcFile) {
1785
+ console.log('导出文件名:', ipcFile.name);
1786
+ console.log('文件大小:', ipcFile.size);
1787
+ }
1788
+ else {
1789
+ console.log('导出超过 25 秒仍在后台进行,真实使用直接 await 等待完成即可');
1790
+ }
1791
+ ```
1792
+
1793
+ ### getipcd356afile
1794
+
1795
+ # PCB\_ManufactureData.getIpcD356AFile() method
1796
+
1797
+ > 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.
1798
+
1799
+ Get IPC-D-356A file
1800
+
1801
+ ## Signature
1802
+
1803
+ ```typescript
1804
+ function getIpcD356AFile(fileName?: string): Promise<File | undefined>;
1805
+ ```
1806
+
1807
+ ## Parameters
1808
+
1809
+ <table><thead><tr><th>
1810
+
1811
+ Parameter
1812
+
1813
+ </th><th>
1814
+
1815
+ Type
1816
+
1817
+ </th><th>
1818
+
1819
+ Description
1820
+
1821
+ </th></tr></thead>
1822
+ <tbody><tr><td>
1823
+
1824
+ fileName
1825
+
1826
+ </td><td>
1827
+
1828
+ string
1829
+
1830
+ </td><td>
1831
+
1832
+ _(Optional)_ File name
1833
+
1834
+ </td></tr>
1835
+ </tbody></table>
1836
+
1837
+ ## Returns
1838
+
1839
+ Promise&lt;File \| undefined&gt;
1840
+
1841
+ IPC-D-356A file data
1842
+
1843
+ ## Remarks
1844
+
1845
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
1846
+
1847
+ ## Example
1848
+
1849
+ ```javascript
1850
+ const ipcFile = await eda.pcb_ManufactureData.getIpcD356AFile('IPC_D356A_Test');
1851
+ if (ipcFile) {
1852
+ await eda.sys_FileSystem.saveFile(ipcFile);
1853
+ }
1854
+ ```
1855
+
1856
+ ### getmanufacturedata
1857
+
1858
+ # PCB\_ManufactureData.getManufactureData() method
1859
+
1860
+ > 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.
1861
+
1862
+ Export the manufacture data
1863
+
1864
+ ## Signature
1865
+
1866
+ ```typescript
1867
+ function getManufactureData(): Promise<File | undefined>;
1868
+ ```
1869
+
1870
+ ## Returns
1871
+
1872
+ Promise&lt;File \| undefined&gt;
1873
+
1874
+ Manufacture data
1875
+
1876
+ ## Remarks
1877
+
1878
+ This API corresponds to the one-click manufacture data export function of the private deployment edition
1879
+
1880
+ It will obtain the file data according to the configuration of the one-click manufacture data export popup on the front end
1881
+
1882
+ Note: This API is only valid for the private deployment edition. Calling it in other editions will always `throw Error`
1883
+
1884
+ ## Example
1885
+
1886
+ ```javascript
1887
+ // 1. 按弹窗当前配置一键导出制造文件
1888
+ try {
1889
+ const manufactureFile = await eda.pcb_ManufactureData.getManufactureData();
1890
+ console.log('制造文件大小:', manufactureFile?.size);
1891
+ }
1892
+ catch (e) {
1893
+ // 非私有化部署版本调用会直接抛错,属预期行为
1894
+ console.log('当前版本不支持一键导出制造文件(仅私有化部署版本有效)');
1895
+ }
1896
+ ```
1897
+
1898
+ ### getnetlistfile
1899
+
1900
+ # PCB\_ManufactureData.getNetlistFile() method
1901
+
1902
+ > 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.
1903
+
1904
+ Get the netlist file (Netlist)
1905
+
1906
+ ## Signature
1907
+
1908
+ ```typescript
1909
+ function getNetlistFile(
1910
+ fileName?: string,
1911
+ netlistType?: ESYS_NetlistType,
1912
+ ): Promise<File | undefined>;
1913
+ ```
1914
+
1915
+ ## Parameters
1916
+
1917
+ <table><thead><tr><th>
1918
+
1919
+ Parameter
1920
+
1921
+ </th><th>
1922
+
1923
+ Type
1924
+
1925
+ </th><th>
1926
+
1927
+ Description
1928
+
1929
+ </th></tr></thead>
1930
+ <tbody><tr><td>
1931
+
1932
+ fileName
1933
+
1934
+ </td><td>
1935
+
1936
+ string
1937
+
1938
+ </td><td>
1939
+
1940
+ _(Optional)_ File name
1941
+
1942
+ </td></tr>
1943
+ <tr><td>
1944
+
1945
+ netlistType
1946
+
1947
+ </td><td>
1948
+
1949
+ [ESYS\_NetlistType](../enums/ESYS_NetlistType.md)
1950
+
1951
+ </td><td>
1952
+
1953
+ _(Optional)_ Netlist type
1954
+
1955
+ </td></tr>
1956
+ </tbody></table>
1957
+
1958
+ ## Returns
1959
+
1960
+ Promise&lt;File \| undefined&gt;
1961
+
1962
+ Netlist file data
1963
+
1964
+ ## Remarks
1965
+
1966
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
1967
+
1968
+ ## Example
1969
+
1970
+ ```javascript
1971
+ // 导出嘉立创 EDA 专业版格式网表
1972
+ const netlistFile = await eda.pcb_ManufactureData.getNetlistFile(
1973
+ 'MyNetlist',
1974
+ ESYS_NetlistType.JLCEDA_PRO
1975
+ );
1976
+ if (netlistFile) {
1977
+ await eda.sys_FileSystem.saveFile(netlistFile);
1978
+ }
1979
+
1980
+ // 导出 Altium Designer 格式
1981
+ const altiumNetlist = await eda.pcb_ManufactureData.getNetlistFile(
1982
+ 'Netlist_Altium',
1983
+ ESYS_NetlistType.ALTIUM_DESIGNER
1984
+ );
1985
+
1986
+ // 导出 PADS 格式
1987
+ const padsNetlist = await eda.pcb_ManufactureData.getNetlistFile(
1988
+ 'Netlist_PADS',
1989
+ ESYS_NetlistType.PADS
1990
+ );
1991
+ ```
1992
+
1993
+ ### getopendatabasedoubleplusfile
1994
+
1995
+ # PCB\_ManufactureData.getOpenDatabaseDoublePlusFile() method
1996
+
1997
+ > 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.
1998
+
1999
+ Get ODB++ file
2000
+
2001
+ ## Signature
2002
+
2003
+ ```typescript
2004
+ function getOpenDatabaseDoublePlusFile(
2005
+ fileName?: string,
2006
+ unit?: ESYS_Unit.INCH | ESYS_Unit.MILLIMETER,
2007
+ otherData?: {
2008
+ metallizedDrilledHoles?: undefined | false | true;
2009
+ nonMetallizedDrilledHoles?: undefined | false | true;
2010
+ drillTable?: undefined | false | true;
2011
+ flyingProbeTestFile?: undefined | false | true;
2012
+ },
2013
+ layers?: Array<{ layerId: EPCB_LayerId; mirror: boolean }>,
2014
+ objects?: Array<{ objectName: string }>,
2015
+ ): Promise<File | undefined>;
2016
+ ```
2017
+
2018
+ ## Parameters
2019
+
2020
+ <table><thead><tr><th>
2021
+
2022
+ Parameter
2023
+
2024
+ </th><th>
2025
+
2026
+ Type
2027
+
2028
+ </th><th>
2029
+
2030
+ Description
2031
+
2032
+ </th></tr></thead>
2033
+ <tbody><tr><td>
2034
+
2035
+ fileName
2036
+
2037
+ </td><td>
2038
+
2039
+ string
2040
+
2041
+ </td><td>
2042
+
2043
+ _(Optional)_ File name
2044
+
2045
+ </td></tr>
2046
+ <tr><td>
2047
+
2048
+ unit
2049
+
2050
+ </td><td>
2051
+
2052
+ [ESYS\_Unit.INCH](../enums/ESYS_Unit.md) \| [ESYS\_Unit.MILLIMETER](../enums/ESYS_Unit.md)
2053
+
2054
+ </td><td>
2055
+
2056
+ _(Optional)_ Unit
2057
+
2058
+ </td></tr>
2059
+ <tr><td>
2060
+
2061
+ otherData
2062
+
2063
+ </td><td>
2064
+
2065
+ \{ metallizedDrilledHoles?: undefined \| false \| true; nonMetallizedDrilledHoles?: undefined \| false \| true; drillTable?: undefined \| false \| true; flyingProbeTestFile?: undefined \| false \| true \}
2066
+
2067
+ </td><td>
2068
+
2069
+ _(Optional)_ Other
2070
+
2071
+ </td></tr>
2072
+ <tr><td>
2073
+
2074
+ layers
2075
+
2076
+ </td><td>
2077
+
2078
+ Array&lt;{ layerId: [EPCB\_LayerId](../enums/EPCB_LayerId.md)<!-- -->; mirror: boolean }&gt;
2079
+
2080
+ </td><td>
2081
+
2082
+ _(Optional)_ Exported layers. By default, they are exported according to EasyEDA production requirements
2083
+
2084
+ </td></tr>
2085
+ <tr><td>
2086
+
2087
+ objects
2088
+
2089
+ </td><td>
2090
+
2091
+ Array&lt;{ objectName: string }&gt;
2092
+
2093
+ </td><td>
2094
+
2095
+ _(Optional)_ Exported objects. By default, they are exported according to EasyEDA production requirements
2096
+
2097
+ </td></tr>
2098
+ </tbody></table>
2099
+
2100
+ ## Returns
2101
+
2102
+ Promise&lt;File \| undefined&gt;
2103
+
2104
+ ODB++ file data
2105
+
2106
+ ## Remarks
2107
+
2108
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
2109
+
2110
+ ## Example
2111
+
2112
+ ```javascript
2113
+ // 导出 ODB++ 文件,自定义单位和选项
2114
+ const odbFile = await eda.pcb_ManufactureData.getOpenDatabaseDoublePlusFile(
2115
+ 'MyBoard_ODB',
2116
+ ESYS_Unit.INCH,
2117
+ {
2118
+ metallizedDrilledHoles: true,
2119
+ nonMetallizedDrilledHoles: true,
2120
+ drillTable: true,
2121
+ flyingProbeTestFile: false
2122
+ }
2123
+ );
2124
+ if (odbFile) {
2125
+ await eda.sys_FileSystem.saveFile(odbFile);
2126
+ }
2127
+ ```
2128
+
2129
+ ### getpadsfile
2130
+
2131
+ # PCB\_ManufactureData.getPadsFile() method
2132
+
2133
+ > 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.
2134
+
2135
+ Get PADS file
2136
+
2137
+ ## Signature
2138
+
2139
+ ```typescript
2140
+ function getPadsFile(fileName?: string): Promise<File | undefined>;
2141
+ ```
2142
+
2143
+ ## Parameters
2144
+
2145
+ <table><thead><tr><th>
2146
+
2147
+ Parameter
2148
+
2149
+ </th><th>
2150
+
2151
+ Type
2152
+
2153
+ </th><th>
2154
+
2155
+ Description
2156
+
2157
+ </th></tr></thead>
2158
+ <tbody><tr><td>
2159
+
2160
+ fileName
2161
+
2162
+ </td><td>
2163
+
2164
+ string
2165
+
2166
+ </td><td>
2167
+
2168
+ _(Optional)_ File name
2169
+
2170
+ </td></tr>
2171
+ </tbody></table>
2172
+
2173
+ ## Returns
2174
+
2175
+ Promise&lt;File \| undefined&gt;
2176
+
2177
+ PADS file data
2178
+
2179
+ ## Remarks
2180
+
2181
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
2182
+
2183
+ ## Example
2184
+
2185
+ ```javascript
2186
+ // 获取 PADS 格式文件
2187
+ const padsFile = await eda.pcb_ManufactureData.getPadsFile('Converted_To_PADS');
2188
+ if (padsFile) {
2189
+ await eda.sys_FileSystem.saveFile(padsFile);
2190
+ }
2191
+ ```
2192
+
2193
+ ### getpcbinfofile
2194
+
2195
+ # PCB\_ManufactureData.getPcbInfoFile() method
2196
+
2197
+ > 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.
2198
+
2199
+ Get PCB information file
2200
+
2201
+ ## Signature
2202
+
2203
+ ```typescript
2204
+ function getPcbInfoFile(fileName?: string): Promise<File | undefined>;
2205
+ ```
2206
+
2207
+ ## Parameters
2208
+
2209
+ <table><thead><tr><th>
2210
+
2211
+ Parameter
2212
+
2213
+ </th><th>
2214
+
2215
+ Type
2216
+
2217
+ </th><th>
2218
+
2219
+ Description
2220
+
2221
+ </th></tr></thead>
2222
+ <tbody><tr><td>
2223
+
2224
+ fileName
2225
+
2226
+ </td><td>
2227
+
2228
+ string
2229
+
2230
+ </td><td>
2231
+
2232
+ _(Optional)_ File name
2233
+
2234
+ </td></tr>
2235
+ </tbody></table>
2236
+
2237
+ ## Returns
2238
+
2239
+ Promise&lt;File \| undefined&gt;
2240
+
2241
+ PCB information file
2242
+
2243
+ ## Remarks
2244
+
2245
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
2246
+
2247
+ ## Example
2248
+
2249
+ ```javascript
2250
+ const pcbInfoFile = await eda.pcb_ManufactureData.getPcbInfoFile('Board_Information');
2251
+ if (pcbInfoFile) {
2252
+ await eda.sys_FileSystem.saveFile(pcbInfoFile);
2253
+ }
2254
+ ```
2255
+
2256
+ ### getpdffile
2257
+
2258
+ # PCB\_ManufactureData.getPdfFile() method
2259
+
2260
+ > 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.
2261
+
2262
+ Get PDF file
2263
+
2264
+ ## Signature
2265
+
2266
+ ```typescript
2267
+ function getPdfFile(
2268
+ fileName?: string,
2269
+ outputMethod?: EPCB_PdfOutputMethod,
2270
+ contentConfig?: { displayAttributesAsMenu: boolean; showOutlineOnly: boolean },
2271
+ watermark?: {
2272
+ show?: undefined | false | true;
2273
+ content?: undefined | string;
2274
+ styleConfig?:
2275
+ | undefined
2276
+ | {
2277
+ color: string;
2278
+ transparency: 'Opaque' | '75%' | '50%' | '25%';
2279
+ font: string;
2280
+ fontSize: {
2281
+ unit: ESYS_Unit.MILLIMETER | ESYS_Unit.INCH | ESYS_Unit.MIL;
2282
+ value: number;
2283
+ };
2284
+ style: { bold: boolean; italic: boolean; underline: boolean };
2285
+ slope: 0 | 45 | 90;
2286
+ denseness: 'Single' | 'Sparse' | 'Std' | 'Dense';
2287
+ };
2288
+ },
2289
+ graphPageConfig?: Array<Record<string, any>>,
2290
+ ): Promise<File | undefined>;
2291
+ ```
2292
+
2293
+ ## Parameters
2294
+
2295
+ <table><thead><tr><th>
2296
+
2297
+ Parameter
2298
+
2299
+ </th><th>
2300
+
2301
+ Type
2302
+
2303
+ </th><th>
2304
+
2305
+ Description
2306
+
2307
+ </th></tr></thead>
2308
+ <tbody><tr><td>
2309
+
2310
+ fileName
2311
+
2312
+ </td><td>
2313
+
2314
+ string
2315
+
2316
+ </td><td>
2317
+
2318
+ _(Optional)_ File name
2319
+
2320
+ </td></tr>
2321
+ <tr><td>
2322
+
2323
+ outputMethod
2324
+
2325
+ </td><td>
2326
+
2327
+ [EPCB\_PdfOutputMethod](../enums/EPCB_PdfOutputMethod.md)
2328
+
2329
+ </td><td>
2330
+
2331
+ _(Optional)_ Output method. ADD since EDA v4.2
2332
+
2333
+ </td></tr>
2334
+ <tr><td>
2335
+
2336
+ contentConfig
2337
+
2338
+ </td><td>
2339
+
2340
+ \{ displayAttributesAsMenu: boolean; showOutlineOnly: boolean \}
2341
+
2342
+ </td><td>
2343
+
2344
+ _(Optional)_ Content configuration. ADD since EDA v4.2
2345
+
2346
+ </td></tr>
2347
+ <tr><td>
2348
+
2349
+ watermark
2350
+
2351
+ </td><td>
2352
+
2353
+ { show?: undefined \| false \| true; content?: undefined \| string; styleConfig?: undefined \| { color: string; transparency: 'Opaque' \| '75%' \| '50%' \| '25%'; font: string; fontSize: { unit: [ESYS\_Unit.MILLIMETER](../enums/ESYS_Unit.md) \| [ESYS\_Unit.INCH](../enums/ESYS_Unit.md) \| [ESYS\_Unit.MIL](../enums/ESYS_Unit.md)<!-- -->; value: number }; style: { bold: boolean; italic: boolean; underline: boolean }; slope: 0 \| 45 \| 90; denseness: 'Single' \| 'Sparse' \| 'Std' \| 'Dense' } }
2354
+
2355
+ </td><td>
2356
+
2357
+ _(Optional)_ Watermark. ADD since EDA v4.2
2358
+
2359
+ </td></tr>
2360
+ <tr><td>
2361
+
2362
+ graphPageConfig
2363
+
2364
+ </td><td>
2365
+
2366
+ Array&lt;Record&lt;string, any&gt;&gt;
2367
+
2368
+ </td><td>
2369
+
2370
+ _(Optional)_ Graph page configuration. ADD since EDA v4.2
2371
+
2372
+ </td></tr>
2373
+ </tbody></table>
2374
+
2375
+ ## Returns
2376
+
2377
+ Promise&lt;File \| undefined&gt;
2378
+
2379
+ PDF file data (or archive)
2380
+
2381
+ ## Remarks
2382
+
2383
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
2384
+
2385
+ REFACTOR since EDA v4.2
2386
+
2387
+ ## Example
2388
+
2389
+ ```javascript
2390
+ // 导出多页 PDF(包含所有图层)
2391
+ const pdfFile = await eda.pcb_ManufactureData.getPdfFile(
2392
+ 'PCB_Documentation',
2393
+ EPCB_PdfOutputMethod.MULTI_PAGE_PDF
2394
+ );
2395
+ if (pdfFile) {
2396
+ await eda.sys_FileSystem.saveFile(pdfFile);
2397
+ }
2398
+ ```
2399
+
2400
+ ### getpickandplacefile
2401
+
2402
+ # PCB\_ManufactureData.getPickAndPlaceFile() method
2403
+
2404
+ > 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.
2405
+
2406
+ Get Coordinate file (PickAndPlace)
2407
+
2408
+ ## Signature
2409
+
2410
+ ```typescript
2411
+ function getPickAndPlaceFile(
2412
+ fileName?: string,
2413
+ fileType?: 'xlsx' | 'csv',
2414
+ unit?: ESYS_Unit.MILLIMETER | ESYS_Unit.MIL,
2415
+ ): Promise<File | undefined>;
2416
+ ```
2417
+
2418
+ ## Parameters
2419
+
2420
+ <table><thead><tr><th>
2421
+
2422
+ Parameter
2423
+
2424
+ </th><th>
2425
+
2426
+ Type
2427
+
2428
+ </th><th>
2429
+
2430
+ Description
2431
+
2432
+ </th></tr></thead>
2433
+ <tbody><tr><td>
2434
+
2435
+ fileName
2436
+
2437
+ </td><td>
2438
+
2439
+ string
2440
+
2441
+ </td><td>
2442
+
2443
+ _(Optional)_ File name
2444
+
2445
+ </td></tr>
2446
+ <tr><td>
2447
+
2448
+ fileType
2449
+
2450
+ </td><td>
2451
+
2452
+ 'xlsx' \| 'csv'
2453
+
2454
+ </td><td>
2455
+
2456
+ _(Optional)_ File type
2457
+
2458
+ </td></tr>
2459
+ <tr><td>
2460
+
2461
+ unit
2462
+
2463
+ </td><td>
2464
+
2465
+ [ESYS\_Unit.MILLIMETER](../enums/ESYS_Unit.md) \| [ESYS\_Unit.MIL](../enums/ESYS_Unit.md)
2466
+
2467
+ </td><td>
2468
+
2469
+ _(Optional)_ Unit
2470
+
2471
+ </td></tr>
2472
+ </tbody></table>
2473
+
2474
+ ## Returns
2475
+
2476
+ Promise&lt;File \| undefined&gt;
2477
+
2478
+ Coordinate file data
2479
+
2480
+ ## Remarks
2481
+
2482
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
2483
+
2484
+ ## Example
2485
+
2486
+ ```javascript
2487
+ // 导出毫米单位的 Excel 格式坐标文件
2488
+ const pnpFile = await eda.pcb_ManufactureData.getPickAndPlaceFile(
2489
+ 'PickAndPlace',
2490
+ 'xlsx',
2491
+ ESYS_Unit.MILLIMETER
2492
+ );
2493
+ if (pnpFile) {
2494
+ await eda.sys_FileSystem.saveFile(pnpFile);
2495
+ }
2496
+ ```
2497
+
2498
+ ### gettestpointfile
2499
+
2500
+ # PCB\_ManufactureData.getTestPointFile() method
2501
+
2502
+ > 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.
2503
+
2504
+ Get the test point report file
2505
+
2506
+ ## Signature
2507
+
2508
+ ```typescript
2509
+ function getTestPointFile(fileName?: string, fileType?: 'xlsx' | 'csv'): Promise<File | undefined>;
2510
+ ```
2511
+
2512
+ ## Parameters
2513
+
2514
+ <table><thead><tr><th>
2515
+
2516
+ Parameter
2517
+
2518
+ </th><th>
2519
+
2520
+ Type
2521
+
2522
+ </th><th>
2523
+
2524
+ Description
2525
+
2526
+ </th></tr></thead>
2527
+ <tbody><tr><td>
2528
+
2529
+ fileName
2530
+
2531
+ </td><td>
2532
+
2533
+ string
2534
+
2535
+ </td><td>
2536
+
2537
+ _(Optional)_ File name
2538
+
2539
+ </td></tr>
2540
+ <tr><td>
2541
+
2542
+ fileType
2543
+
2544
+ </td><td>
2545
+
2546
+ 'xlsx' \| 'csv'
2547
+
2548
+ </td><td>
2549
+
2550
+ _(Optional)_ File type
2551
+
2552
+ </td></tr>
2553
+ </tbody></table>
2554
+
2555
+ ## Returns
2556
+
2557
+ Promise&lt;File \| undefined&gt;
2558
+
2559
+ Test point report file data
2560
+
2561
+ ## Remarks
2562
+
2563
+ You can use [SYS\_FileSystem.saveFile()](./SYS_FileSystem.md) API export the file to the local file system
2564
+
2565
+ ## Example
2566
+
2567
+ ```javascript
2568
+ // 保存测试点报告文件到本地
2569
+ const testPointFile = await eda.pcb_ManufactureData.getTestPointFile('Test_Point_Report', 'xlsx');
2570
+ if (testPointFile) {
2571
+ await eda.sys_FileSystem.saveFile(testPointFile);
2572
+ }
2573
+ ```
2574
+
2575
+ ### place3dshellorder
2576
+
2577
+ # PCB\_ManufactureData.place3DShellOrder() method
2578
+
2579
+ > 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.
2580
+
2581
+ 3D shell ordering
2582
+
2583
+ ## Signature
2584
+
2585
+ ```typescript
2586
+ function place3DShellOrder(interactive?: boolean, ignoreWarning?: boolean): Promise<boolean>;
2587
+ ```
2588
+
2589
+ ## Parameters
2590
+
2591
+ <table><thead><tr><th>
2592
+
2593
+ Parameter
2594
+
2595
+ </th><th>
2596
+
2597
+ Type
2598
+
2599
+ </th><th>
2600
+
2601
+ Description
2602
+
2603
+ </th></tr></thead>
2604
+ <tbody><tr><td>
2605
+
2606
+ interactive
2607
+
2608
+ </td><td>
2609
+
2610
+ boolean
2611
+
2612
+ </td><td>
2613
+
2614
+ _(Optional)_ Whether to enable interactive checking. If enabled, a popup will wait for user interaction, and the `ignoreWarning` parameter cannot be used to ignore warnings; that is, the `ignoreWarning` parameter will be ignored. If disabled, no EDA internal popup will appear after the call, and the program performs a silent check. If the ordering conditions are met, `true` will be returned and the ordering page will be opened in a new tab
2615
+
2616
+ </td></tr>
2617
+ <tr><td>
2618
+
2619
+ ignoreWarning
2620
+
2621
+ </td><td>
2622
+
2623
+ boolean
2624
+
2625
+ </td><td>
2626
+
2627
+ _(Optional)_ Ignore warnings during non-interactive checking. If set to `true`<!-- -->, all check warning items will be ignored and the ordering data will be generated as much as possible; if set to `false`<!-- -->, any warning will interrupt execution and return `false`
2628
+
2629
+ </td></tr>
2630
+ </tbody></table>
2631
+
2632
+ ## Returns
2633
+
2634
+ Promise&lt;boolean&gt;
2635
+
2636
+ Whether the ordering check passed. Until the input parameters are fully developed, the return value has no practical effect and does not wait for the execution result
2637
+
2638
+ ## Remarks
2639
+
2640
+ This API currently only supports interactive checking. The input parameters have no effect for now and are reserved for future development
2641
+
2642
+ ## Example
2643
+
2644
+ ```javascript
2645
+ // 1. 交互式下单检查:弹出检查弹窗等待确认,确认后打开下单页面
2646
+ // const passed = await eda.pcb_ManufactureData.place3DShellOrder(true);
2647
+ // 2. 静默检查:不弹任何弹窗,忽略警告并直接生成下单资料
2648
+ // const passed = await eda.pcb_ManufactureData.place3DShellOrder(false, true);
2649
+ // console.log('下单检查结果 ' + passed);
2650
+ // 下单会真实打开订单页面并产生订单数据,案例中不实际执行
2651
+ console.log('演示调用:place3DShellOrder(true) 交互式检查,或 place3DShellOrder(false, true) 静默下单');
2652
+ ```
2653
+
2654
+ ### placecomponentsorder
2655
+
2656
+ # PCB\_ManufactureData.placeComponentsOrder() method
2657
+
2658
+ > 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.
2659
+
2660
+ Component ordering
2661
+
2662
+ ## Signature
2663
+
2664
+ ```typescript
2665
+ function placeComponentsOrder(interactive?: boolean, ignoreWarning?: boolean): Promise<boolean>;
2666
+ ```
2667
+
2668
+ ## Parameters
2669
+
2670
+ <table><thead><tr><th>
2671
+
2672
+ Parameter
2673
+
2674
+ </th><th>
2675
+
2676
+ Type
2677
+
2678
+ </th><th>
2679
+
2680
+ Description
2681
+
2682
+ </th></tr></thead>
2683
+ <tbody><tr><td>
2684
+
2685
+ interactive
2686
+
2687
+ </td><td>
2688
+
2689
+ boolean
2690
+
2691
+ </td><td>
2692
+
2693
+ _(Optional)_ Whether to enable interactive checking. If enabled, a popup will wait for user interaction, and the `ignoreWarning` parameter cannot be used to ignore warnings; that is, the `ignoreWarning` parameter will be ignored. If disabled, no EDA internal popup will appear after the call, and the program performs a silent check. If the ordering conditions are met, `true` will be returned and the ordering page will be opened in a new tab
2694
+
2695
+ </td></tr>
2696
+ <tr><td>
2697
+
2698
+ ignoreWarning
2699
+
2700
+ </td><td>
2701
+
2702
+ boolean
2703
+
2704
+ </td><td>
2705
+
2706
+ _(Optional)_ Ignore warnings during non-interactive checking. If set to `true`<!-- -->, all check warning items will be ignored and the ordering data will be generated as much as possible; if set to `false`<!-- -->, any warning will interrupt execution and return `false`
2707
+
2708
+ </td></tr>
2709
+ </tbody></table>
2710
+
2711
+ ## Returns
2712
+
2713
+ Promise&lt;boolean&gt;
2714
+
2715
+ Whether the ordering check passed. Until the input parameters are fully developed, the return value has no practical effect and does not wait for the execution result
2716
+
2717
+ ## Remarks
2718
+
2719
+ This API currently only supports interactive checking. The input parameters have no effect for now and are reserved for future development
2720
+
2721
+ ## Example
2722
+
2723
+ ```javascript
2724
+ // 1. 交互式下单检查:弹出检查弹窗等待确认,确认后打开购买页面
2725
+ // const passed = await eda.pcb_ManufactureData.placeComponentsOrder(true);
2726
+ // 2. 静默检查:不弹任何弹窗,忽略警告并直接生成下单资料
2727
+ // const passed = await eda.pcb_ManufactureData.placeComponentsOrder(false, true);
2728
+ // console.log('下单检查结果 ' + passed);
2729
+ // 下单会真实打开订单页面并产生订单数据,案例中不实际执行
2730
+ console.log('演示调用:placeComponentsOrder(true) 交互式检查,或 placeComponentsOrder(false, true) 静默下单');
2731
+ ```
2732
+
2733
+ ### placepcborder
2734
+
2735
+ # PCB\_ManufactureData.placePcbOrder() method
2736
+
2737
+ > 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.
2738
+
2739
+ PCB ordering
2740
+
2741
+ ## Signature
2742
+
2743
+ ```typescript
2744
+ function placePcbOrder(interactive?: boolean, ignoreWarning?: boolean): Promise<boolean>;
2745
+ ```
2746
+
2747
+ ## Parameters
2748
+
2749
+ <table><thead><tr><th>
2750
+
2751
+ Parameter
2752
+
2753
+ </th><th>
2754
+
2755
+ Type
2756
+
2757
+ </th><th>
2758
+
2759
+ Description
2760
+
2761
+ </th></tr></thead>
2762
+ <tbody><tr><td>
2763
+
2764
+ interactive
2765
+
2766
+ </td><td>
2767
+
2768
+ boolean
2769
+
2770
+ </td><td>
2771
+
2772
+ _(Optional)_ Whether to enable interactive checking. If enabled, a popup will wait for user interaction, and the `ignoreWarning` parameter cannot be used to ignore warnings; that is, the `ignoreWarning` parameter will be ignored. If disabled, no EDA internal popup will appear after the call, and the program performs a silent check. If the ordering conditions are met, `true` will be returned and the ordering page will be opened in a new tab
2773
+
2774
+ </td></tr>
2775
+ <tr><td>
2776
+
2777
+ ignoreWarning
2778
+
2779
+ </td><td>
2780
+
2781
+ boolean
2782
+
2783
+ </td><td>
2784
+
2785
+ _(Optional)_ Ignore warnings during non-interactive checking. If set to `true`<!-- -->, all check warning items will be ignored and the ordering data will be generated as much as possible; if set to `false`<!-- -->, any warning will interrupt execution and return `false`
2786
+
2787
+ </td></tr>
2788
+ </tbody></table>
2789
+
2790
+ ## Returns
2791
+
2792
+ Promise&lt;boolean&gt;
2793
+
2794
+ Whether the ordering check passed. Until the input parameters are fully developed, the return value has no practical effect and does not wait for the execution result
2795
+
2796
+ ## Remarks
2797
+
2798
+ This API currently only supports interactive checking. The input parameters have no effect for now and are reserved for future development
2799
+
2800
+ ## Example
2801
+
2802
+ ```javascript
2803
+ // 1. 交互式下单检查:弹出检查弹窗等待确认,确认后打开下单页面
2804
+ // const passed = await eda.pcb_ManufactureData.placePcbOrder(true);
2805
+ // 2. 静默检查:不弹任何弹窗,忽略警告并直接生成下单资料
2806
+ // const passed = await eda.pcb_ManufactureData.placePcbOrder(false, true);
2807
+ // console.log('下单检查结果 ' + passed);
2808
+ // 下单会真实打开订单页面并产生订单数据,案例中不实际执行
2809
+ console.log('演示调用:placePcbOrder(true) 交互式检查,或 placePcbOrder(false, true) 静默下单');
2810
+ ```
2811
+
2812
+ ### placesmtcomponentsorder
2813
+
2814
+ # PCB\_ManufactureData.placeSmtComponentsOrder() method
2815
+
2816
+ > 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.
2817
+
2818
+ SMT component ordering
2819
+
2820
+ ## Signature
2821
+
2822
+ ```typescript
2823
+ function placeSmtComponentsOrder(interactive?: boolean, ignoreWarning?: boolean): Promise<boolean>;
2824
+ ```
2825
+
2826
+ ## Parameters
2827
+
2828
+ <table><thead><tr><th>
2829
+
2830
+ Parameter
2831
+
2832
+ </th><th>
2833
+
2834
+ Type
2835
+
2836
+ </th><th>
2837
+
2838
+ Description
2839
+
2840
+ </th></tr></thead>
2841
+ <tbody><tr><td>
2842
+
2843
+ interactive
2844
+
2845
+ </td><td>
2846
+
2847
+ boolean
2848
+
2849
+ </td><td>
2850
+
2851
+ _(Optional)_ Whether to enable interactive checking. If enabled, a popup will wait for user interaction, and the `ignoreWarning` parameter cannot be used to ignore warnings; that is, the `ignoreWarning` parameter will be ignored. If disabled, no EDA internal popup will appear after the call, and the program performs a silent check. If the ordering conditions are met, `true` will be returned and the ordering page will be opened in a new tab
2852
+
2853
+ </td></tr>
2854
+ <tr><td>
2855
+
2856
+ ignoreWarning
2857
+
2858
+ </td><td>
2859
+
2860
+ boolean
2861
+
2862
+ </td><td>
2863
+
2864
+ _(Optional)_ Ignore warnings during non-interactive checking. If set to `true`<!-- -->, all check warning items will be ignored and the ordering data will be generated as much as possible; if set to `false`<!-- -->, any warning will interrupt execution and return `false`
2865
+
2866
+ </td></tr>
2867
+ </tbody></table>
2868
+
2869
+ ## Returns
2870
+
2871
+ Promise&lt;boolean&gt;
2872
+
2873
+ Whether the ordering check passed. Until the input parameters are fully developed, the return value has no practical effect and does not wait for the execution result
2874
+
2875
+ ## Remarks
2876
+
2877
+ This API currently only supports interactive checking. The input parameters have no effect for now and are reserved for future development
2878
+
2879
+ ## Example
2880
+
2881
+ ```javascript
2882
+ // 1. 交互式下单检查:弹出检查弹窗等待确认,确认后打开下单页面
2883
+ // const passed = await eda.pcb_ManufactureData.placeSmtComponentsOrder(true);
2884
+ // 2. 静默检查:不弹任何弹窗,忽略警告并直接生成下单资料
2885
+ // const passed = await eda.pcb_ManufactureData.placeSmtComponentsOrder(false, true);
2886
+ // console.log('下单检查结果 ' + passed);
2887
+ // 下单会真实打开订单页面并产生订单数据,案例中不实际执行
2888
+ console.log('演示调用:placeSmtComponentsOrder(true) 交互式检查,或 placeSmtComponentsOrder(false, true) 静默下单');
2889
+ ```
2890
+
2891
+ ### uploadbomtemplatefile
2892
+
2893
+ # PCB\_ManufactureData.uploadBomTemplateFile() method
2894
+
2895
+ > 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.
2896
+
2897
+ Upload a BOM template file
2898
+
2899
+ ## Signature
2900
+
2901
+ ```typescript
2902
+ function uploadBomTemplateFile(templateFile: File, template?: string): Promise<string | undefined>;
2903
+ ```
2904
+
2905
+ ## Parameters
2906
+
2907
+ <table><thead><tr><th>
2908
+
2909
+ Parameter
2910
+
2911
+ </th><th>
2912
+
2913
+ Type
2914
+
2915
+ </th><th>
2916
+
2917
+ Description
2918
+
2919
+ </th></tr></thead>
2920
+ <tbody><tr><td>
2921
+
2922
+ templateFile
2923
+
2924
+ </td><td>
2925
+
2926
+ File
2927
+
2928
+ </td><td>
2929
+
2930
+ BOM template file
2931
+
2932
+ </td></tr>
2933
+ <tr><td>
2934
+
2935
+ template
2936
+
2937
+ </td><td>
2938
+
2939
+ string
2940
+
2941
+ </td><td>
2942
+
2943
+ _(Optional)_ BOM template name. If it is `undefined`<!-- -->, the value is automatically taken from `templateFile`
2944
+
2945
+ </td></tr>
2946
+ </tbody></table>
2947
+
2948
+ ## Returns
2949
+
2950
+ Promise&lt;string \| undefined&gt;
2951
+
2952
+ BOM template name
2953
+
2954
+ ## Example
2955
+
2956
+ ```javascript
2957
+ // 从文件选择器读取模板文件
2958
+ const templateFile = await eda.sys_FileSystem.openReadFileDialog('.xlsx');
2959
+ if (templateFile) {
2960
+ const templateName = await eda.pcb_ManufactureData.uploadBomTemplateFile(
2961
+ templateFile,
2962
+ 'MyCustomTemplate'
2963
+ );
2964
+ if (templateName) {
2965
+ console.log('模板上传成功:', templateName);
2966
+ }
2967
+ }
2968
+ ```