@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,1081 @@
1
+ # PCB\_Event class
2
+
3
+ PCB & footprint / event class
4
+
5
+ ## Signature
6
+
7
+ ```typescript
8
+ class PCB_Event
9
+ ```
10
+
11
+ ## Remarks
12
+
13
+ Register an event callback
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
+ [addCrossProbeSelectEventListener(id, callFn)](./PCB_Event.md)
33
+
34
+ </td><td>
35
+
36
+ </td><td>
37
+
38
+ **_(BETA)_** Add a cross-probe selection event listener
39
+
40
+ </td></tr>
41
+ <tr><td>
42
+
43
+ [addMouseEventListener(id, eventType, callFn, onlyOnce)](./PCB_Event.md)
44
+
45
+ </td><td>
46
+
47
+ </td><td>
48
+
49
+ **_(BETA)_** Add a mouse event listener
50
+
51
+ </td></tr>
52
+ <tr><td>
53
+
54
+ [addNetEventListener(id, eventType, callFn, onlyOnce)](./PCB_Event.md)
55
+
56
+ </td><td>
57
+
58
+ </td><td>
59
+
60
+ **_(BETA)_** Add a net event listener
61
+
62
+ </td></tr>
63
+ <tr><td>
64
+
65
+ [addPrimitiveEventListener(id, eventType, callFn, onlyOnce)](./PCB_Event.md)
66
+
67
+ </td><td>
68
+
69
+ </td><td>
70
+
71
+ **_(BETA)_** Add a primitive event listener
72
+
73
+ </td></tr>
74
+ <tr><td>
75
+
76
+ [addRayTracerEngine3DViewCameraChangeEventListener(id, callFn, onlyOnce)](./PCB_Event.md)
77
+
78
+ </td><td>
79
+
80
+ </td><td>
81
+
82
+ **_(BETA)_** Add a ray tracer engine 3D preview camera change (dragging the 3D model) event listener
83
+
84
+ </td></tr>
85
+ <tr><td>
86
+
87
+ [addRayTracerEngine3DViewClickMaterialEventListener(id, callFn, onlyOnce)](./PCB_Event.md)
88
+
89
+ </td><td>
90
+
91
+ </td><td>
92
+
93
+ **_(BETA)_** Add a ray tracer engine 3D preview material click event listener
94
+
95
+ </td></tr>
96
+ <tr><td>
97
+
98
+ [addRealTimeDrcResultEventListener(id, eventType, callFn)](./PCB_Event.md)
99
+
100
+ </td><td>
101
+
102
+ </td><td>
103
+
104
+ **_(BETA)_** Add a real-time DRC result event listener
105
+
106
+ </td></tr>
107
+ <tr><td>
108
+
109
+ [isEventListenerAlreadyExist(id)](./PCB_Event.md)
110
+
111
+ </td><td>
112
+
113
+ </td><td>
114
+
115
+ Query whether the event listener exists
116
+
117
+ </td></tr>
118
+ <tr><td>
119
+
120
+ [removeEventListener(id)](./PCB_Event.md)
121
+
122
+ </td><td>
123
+
124
+ </td><td>
125
+
126
+ Remove Event listener
127
+
128
+ </td></tr>
129
+ </tbody></table>
130
+
131
+ ---
132
+
133
+ ## 方法详情
134
+
135
+ ### addcrossprobeselecteventlistener
136
+
137
+ # PCB\_Event.addCrossProbeSelectEventListener() method
138
+
139
+ > 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.
140
+
141
+ Add a cross-probe selection event listener
142
+
143
+ ## Signature
144
+
145
+ ```typescript
146
+ function addCrossProbeSelectEventListener(
147
+ id: string,
148
+ callFn: (props: any) => void | Promise<void>,
149
+ ): void;
150
+ ```
151
+
152
+ ## Parameters
153
+
154
+ <table><thead><tr><th>
155
+
156
+ Parameter
157
+
158
+ </th><th>
159
+
160
+ Type
161
+
162
+ </th><th>
163
+
164
+ Description
165
+
166
+ </th></tr></thead>
167
+ <tbody><tr><td>
168
+
169
+ id
170
+
171
+ </td><td>
172
+
173
+ string
174
+
175
+ </td><td>
176
+
177
+ Event ID, used to prevent duplicate event registration
178
+
179
+ </td></tr>
180
+ <tr><td>
181
+
182
+ callFn
183
+
184
+ </td><td>
185
+
186
+ (props: any) =&gt; void \| Promise&lt;void&gt;
187
+
188
+ </td><td>
189
+
190
+ The callback function triggered when the event fires
191
+
192
+ </td></tr>
193
+ </tbody></table>
194
+
195
+ ## Returns
196
+
197
+ void
198
+
199
+ ## Remarks
200
+
201
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error`
202
+
203
+ ## Example
204
+
205
+ ```javascript
206
+ const listenerId = '嘉立创示例_cross_probe';
207
+
208
+ // 1. 注册交叉选择事件监听(回调在用户执行交叉选中时触发,本例不依赖实际触发)
209
+ eda.pcb_Event.addCrossProbeSelectEventListener(listenerId, (props) => {
210
+ console.log('crossProbeSelect:', JSON.stringify(props));
211
+ });
212
+
213
+ // 2. 回读确认注册成功(同 id 重复注册会被防重机制忽略)
214
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
215
+ console.log('registered:', registered);
216
+
217
+ // 3. 清理监听
218
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
219
+ console.log('removed:', removed);
220
+ ```
221
+
222
+ ### addmouseeventlistener
223
+
224
+ # PCB\_Event.addMouseEventListener() method
225
+
226
+ > 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.
227
+
228
+ Add a mouse event listener
229
+
230
+ ## Signature
231
+
232
+ ```typescript
233
+ function addMouseEventListener(
234
+ id: string,
235
+ eventType: 'all' | EPCB_MouseEventType,
236
+ callFn: (
237
+ eventType: EPCB_MouseEventType,
238
+ props: [
239
+ {
240
+ primitiveId: string;
241
+ primitiveType: EPCB_PrimitiveType;
242
+ net?: undefined | string;
243
+ designator?: undefined | string;
244
+ parentComponentPrimitiveId?: undefined | string;
245
+ parentComponentDesignator?: undefined | string;
246
+ },
247
+ ],
248
+ ) => void | Promise<void>,
249
+ onlyOnce?: boolean,
250
+ ): void;
251
+ ```
252
+
253
+ ## Parameters
254
+
255
+ <table><thead><tr><th>
256
+
257
+ Parameter
258
+
259
+ </th><th>
260
+
261
+ Type
262
+
263
+ </th><th>
264
+
265
+ Description
266
+
267
+ </th></tr></thead>
268
+ <tbody><tr><td>
269
+
270
+ id
271
+
272
+ </td><td>
273
+
274
+ string
275
+
276
+ </td><td>
277
+
278
+ Event ID, used to prevent duplicate event registration
279
+
280
+ </td></tr>
281
+ <tr><td>
282
+
283
+ eventType
284
+
285
+ </td><td>
286
+
287
+ 'all' \| [EPCB\_MouseEventType](../enums/EPCB_MouseEventType.md)
288
+
289
+ </td><td>
290
+
291
+ Event type
292
+
293
+ </td></tr>
294
+ <tr><td>
295
+
296
+ callFn
297
+
298
+ </td><td>
299
+
300
+ (eventType: [EPCB\_MouseEventType](../enums/EPCB_MouseEventType.md)<!-- -->, props: \[{ primitiveId: string; primitiveType: [EPCB\_PrimitiveType](../enums/EPCB_PrimitiveType.md)<!-- -->; net?: undefined \| string; designator?: undefined \| string; parentComponentPrimitiveId?: undefined \| string; parentComponentDesignator?: undefined \| string }\]) =&gt; void \| Promise&lt;void&gt;
301
+
302
+ </td><td>
303
+
304
+ The callback function triggered when the event fires
305
+
306
+ </td></tr>
307
+ <tr><td>
308
+
309
+ onlyOnce
310
+
311
+ </td><td>
312
+
313
+ boolean
314
+
315
+ </td><td>
316
+
317
+ _(Optional)_ Whether to listen only once
318
+
319
+ </td></tr>
320
+ </tbody></table>
321
+
322
+ ## Returns
323
+
324
+ void
325
+
326
+ ## Remarks
327
+
328
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error`
329
+
330
+ ## Example
331
+
332
+ ```javascript
333
+ const listenerId = '嘉立创示例_mouse_event';
334
+
335
+ // 1. 注册鼠标事件监听,eventType 用 'all' 接收全部鼠标事件,onlyOnce 为 false 持续监听
336
+ eda.pcb_Event.addMouseEventListener(
337
+ listenerId,
338
+ 'all',
339
+ (eventType, props) => {
340
+ // 回调在用户画布操作时触发;props 是命中图元的信息数组
341
+ console.log('mouseEvent:', eventType, JSON.stringify(props));
342
+ },
343
+ false
344
+ );
345
+
346
+ // 2. 回读确认注册成功
347
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
348
+ console.log('registered:', registered);
349
+
350
+ // 3. 清理监听
351
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
352
+ console.log('removed:', removed);
353
+ ```
354
+
355
+ ### addneteventlistener
356
+
357
+ # PCB\_Event.addNetEventListener() method
358
+
359
+ > 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.
360
+
361
+ Add a net event listener
362
+
363
+ ## Signature
364
+
365
+ ```typescript
366
+ function addNetEventListener(
367
+ id: string,
368
+ eventType: 'all' | EPCB_NetEventType,
369
+ callFn: (eventType: EPCB_NetEventType, props: [{ net: string }]) => void | Promise<void>,
370
+ onlyOnce?: boolean,
371
+ ): void;
372
+ ```
373
+
374
+ ## Parameters
375
+
376
+ <table><thead><tr><th>
377
+
378
+ Parameter
379
+
380
+ </th><th>
381
+
382
+ Type
383
+
384
+ </th><th>
385
+
386
+ Description
387
+
388
+ </th></tr></thead>
389
+ <tbody><tr><td>
390
+
391
+ id
392
+
393
+ </td><td>
394
+
395
+ string
396
+
397
+ </td><td>
398
+
399
+ Event ID, used to prevent duplicate event registration
400
+
401
+ </td></tr>
402
+ <tr><td>
403
+
404
+ eventType
405
+
406
+ </td><td>
407
+
408
+ 'all' \| [EPCB\_NetEventType](../enums/EPCB_NetEventType.md)
409
+
410
+ </td><td>
411
+
412
+ Event type
413
+
414
+ </td></tr>
415
+ <tr><td>
416
+
417
+ callFn
418
+
419
+ </td><td>
420
+
421
+ (eventType: [EPCB\_NetEventType](../enums/EPCB_NetEventType.md)<!-- -->, props: \[{ net: string }\]) =&gt; void \| Promise&lt;void&gt;
422
+
423
+ </td><td>
424
+
425
+ The callback function triggered when the event fires
426
+
427
+ </td></tr>
428
+ <tr><td>
429
+
430
+ onlyOnce
431
+
432
+ </td><td>
433
+
434
+ boolean
435
+
436
+ </td><td>
437
+
438
+ _(Optional)_ Whether to listen only once
439
+
440
+ </td></tr>
441
+ </tbody></table>
442
+
443
+ ## Returns
444
+
445
+ void
446
+
447
+ ## Remarks
448
+
449
+ Net select event only
450
+
451
+ 1. When the net option is selected in the filter panel and a net is selected on the canvas
452
+
453
+ 2. When a net is selected in Engineering Design -<!-- -->&gt; Nets
454
+
455
+ the event will be triggered
456
+
457
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error`
458
+
459
+ ## Example
460
+
461
+ ```javascript
462
+ const listenerId = '嘉立创示例_net_event';
463
+
464
+ // 1. 注册网络事件监听,eventType 用 'all' 接收全部网络事件
465
+ eda.pcb_Event.addNetEventListener(
466
+ listenerId,
467
+ 'all',
468
+ (eventType, props) => {
469
+ // 回调在网络选中变化时触发;props 是网络信息数组
470
+ console.log('netEvent:', eventType, JSON.stringify(props));
471
+ },
472
+ false
473
+ );
474
+
475
+ // 2. 回读确认注册成功
476
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
477
+ console.log('registered:', registered);
478
+
479
+ // 3. 清理监听
480
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
481
+ console.log('removed:', removed);
482
+ ```
483
+
484
+ ### addprimitiveeventlistener
485
+
486
+ # PCB\_Event.addPrimitiveEventListener() method
487
+
488
+ > 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.
489
+
490
+ Add a primitive event listener
491
+
492
+ ## Signature
493
+
494
+ ```typescript
495
+ function addPrimitiveEventListener(
496
+ id: string,
497
+ eventType: 'all' | EPCB_PrimitiveEventType,
498
+ callFn: (
499
+ eventType: EPCB_PrimitiveEventType,
500
+ props: [
501
+ {
502
+ primitiveId: string;
503
+ primitiveType: EPCB_PrimitiveType;
504
+ net?: undefined | string;
505
+ designator?: undefined | string;
506
+ parentComponentPrimitiveId?: undefined | string;
507
+ parentComponentDesignator?: undefined | string;
508
+ },
509
+ ],
510
+ ) => void | Promise<void>,
511
+ onlyOnce?: boolean,
512
+ ): void;
513
+ ```
514
+
515
+ ## Parameters
516
+
517
+ <table><thead><tr><th>
518
+
519
+ Parameter
520
+
521
+ </th><th>
522
+
523
+ Type
524
+
525
+ </th><th>
526
+
527
+ Description
528
+
529
+ </th></tr></thead>
530
+ <tbody><tr><td>
531
+
532
+ id
533
+
534
+ </td><td>
535
+
536
+ string
537
+
538
+ </td><td>
539
+
540
+ Event ID, used to prevent duplicate event registration
541
+
542
+ </td></tr>
543
+ <tr><td>
544
+
545
+ eventType
546
+
547
+ </td><td>
548
+
549
+ 'all' \| [EPCB\_PrimitiveEventType](../enums/EPCB_PrimitiveEventType.md)
550
+
551
+ </td><td>
552
+
553
+ Event type
554
+
555
+ </td></tr>
556
+ <tr><td>
557
+
558
+ callFn
559
+
560
+ </td><td>
561
+
562
+ (eventType: [EPCB\_PrimitiveEventType](../enums/EPCB_PrimitiveEventType.md)<!-- -->, props: \[{ primitiveId: string; primitiveType: [EPCB\_PrimitiveType](../enums/EPCB_PrimitiveType.md)<!-- -->; net?: undefined \| string; designator?: undefined \| string; parentComponentPrimitiveId?: undefined \| string; parentComponentDesignator?: undefined \| string }\]) =&gt; void \| Promise&lt;void&gt;
563
+
564
+ </td><td>
565
+
566
+ The callback function triggered when the event fires
567
+
568
+ </td></tr>
569
+ <tr><td>
570
+
571
+ onlyOnce
572
+
573
+ </td><td>
574
+
575
+ boolean
576
+
577
+ </td><td>
578
+
579
+ _(Optional)_ Whether to listen only once
580
+
581
+ </td></tr>
582
+ </tbody></table>
583
+
584
+ ## Returns
585
+
586
+ void
587
+
588
+ ## Remarks
589
+
590
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error`
591
+
592
+ ## Example
593
+
594
+ ```javascript
595
+ const listenerId = '嘉立创示例_primitive_event';
596
+ const events = [];
597
+
598
+ // 1. 注册图元事件监听,eventType 用 'all' 接收全部图元事件
599
+ eda.pcb_Event.addPrimitiveEventListener(
600
+ listenerId,
601
+ 'all',
602
+ (eventType, props) => {
603
+ events.push({ eventType, primitiveType: props?.[0]?.primitiveType });
604
+ },
605
+ false
606
+ );
607
+
608
+ // 2. 创建一个测试焊盘,触发图元 add 事件
609
+ const pad = await eda.pcb_PrimitivePad.create(1, '1', 5000, 3000, 0, ['ELLIPSE', 60, 60], '', null, 0, 0, 0, false, 0);
610
+ await new Promise(r => setTimeout(r, 500));
611
+
612
+ // 3. 删除测试焊盘,再触发一次图元删除事件(同时清理测试图元)
613
+ await eda.pcb_PrimitivePad.delete([pad.getState_PrimitiveId()]);
614
+ await new Promise(r => setTimeout(r, 500));
615
+
616
+ // 4. 观察两次操作分别触发的事件
617
+ console.log('events:', JSON.stringify(events));
618
+
619
+ // 5. 清理监听
620
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
621
+ console.log('removed:', removed);
622
+ ```
623
+
624
+ ### addraytracerengine3dviewcamerachangeeventlistener
625
+
626
+ # PCB\_Event.addRayTracerEngine3DViewCameraChangeEventListener() method
627
+
628
+ > 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.
629
+
630
+ Add a ray tracer engine 3D preview camera change (dragging the 3D model) event listener
631
+
632
+ ## Signature
633
+
634
+ ```typescript
635
+ function addRayTracerEngine3DViewCameraChangeEventListener(
636
+ id: string,
637
+ callFn: (props: {
638
+ position: { x: number; y: number; z: number };
639
+ rotation: { x: number; y: number; z: number };
640
+ focalLength: number;
641
+ }) => void | Promise<void>,
642
+ onlyOnce?: boolean,
643
+ ): void;
644
+ ```
645
+
646
+ ## Parameters
647
+
648
+ <table><thead><tr><th>
649
+
650
+ Parameter
651
+
652
+ </th><th>
653
+
654
+ Type
655
+
656
+ </th><th>
657
+
658
+ Description
659
+
660
+ </th></tr></thead>
661
+ <tbody><tr><td>
662
+
663
+ id
664
+
665
+ </td><td>
666
+
667
+ string
668
+
669
+ </td><td>
670
+
671
+ Event ID, used to prevent duplicate event registration
672
+
673
+ </td></tr>
674
+ <tr><td>
675
+
676
+ callFn
677
+
678
+ </td><td>
679
+
680
+ (props: { position: { x: number; y: number; z: number }; rotation: { x: number; y: number; z: number }; focalLength: number }) =&gt; void \| Promise&lt;void&gt;
681
+
682
+ </td><td>
683
+
684
+ The callback function triggered when the event fires
685
+
686
+ </td></tr>
687
+ <tr><td>
688
+
689
+ onlyOnce
690
+
691
+ </td><td>
692
+
693
+ boolean
694
+
695
+ </td><td>
696
+
697
+ _(Optional)_ Whether to listen only once
698
+
699
+ </td></tr>
700
+ </tbody></table>
701
+
702
+ ## Returns
703
+
704
+ void
705
+
706
+ ## Remarks
707
+
708
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error` ADD since EDA v4
709
+
710
+ ## Example
711
+
712
+ ```javascript
713
+ const listenerId = '嘉立创示例_3d_camera';
714
+
715
+ // 1. 注册相机变动监听(回调在 3D 预览拖动时触发,本例不依赖实际触发)
716
+ eda.pcb_Event.addRayTracerEngine3DViewCameraChangeEventListener(
717
+ listenerId,
718
+ (props) => {
719
+ console.log('cameraChange:', JSON.stringify(props));
720
+ }
721
+ );
722
+
723
+ // 2. 回读确认注册成功
724
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
725
+ console.log('registered:', registered);
726
+
727
+ // 3. 清理监听
728
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
729
+ console.log('removed:', removed);
730
+ ```
731
+
732
+ ### addraytracerengine3dviewclickmaterialeventlistener
733
+
734
+ # PCB\_Event.addRayTracerEngine3DViewClickMaterialEventListener() method
735
+
736
+ > 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.
737
+
738
+ Add a ray tracer engine 3D preview material click event listener
739
+
740
+ ## Signature
741
+
742
+ ```typescript
743
+ function addRayTracerEngine3DViewClickMaterialEventListener(
744
+ id: string,
745
+ callFn: (props: { materialId: number; material: any }) => void | Promise<void>,
746
+ onlyOnce?: boolean,
747
+ ): void;
748
+ ```
749
+
750
+ ## Parameters
751
+
752
+ <table><thead><tr><th>
753
+
754
+ Parameter
755
+
756
+ </th><th>
757
+
758
+ Type
759
+
760
+ </th><th>
761
+
762
+ Description
763
+
764
+ </th></tr></thead>
765
+ <tbody><tr><td>
766
+
767
+ id
768
+
769
+ </td><td>
770
+
771
+ string
772
+
773
+ </td><td>
774
+
775
+ Event ID, used to prevent duplicate event registration
776
+
777
+ </td></tr>
778
+ <tr><td>
779
+
780
+ callFn
781
+
782
+ </td><td>
783
+
784
+ (props: { materialId: number; material: any }) =&gt; void \| Promise&lt;void&gt;
785
+
786
+ </td><td>
787
+
788
+ The callback function triggered when the event fires
789
+
790
+ </td></tr>
791
+ <tr><td>
792
+
793
+ onlyOnce
794
+
795
+ </td><td>
796
+
797
+ boolean
798
+
799
+ </td><td>
800
+
801
+ _(Optional)_ Whether to listen only once
802
+
803
+ </td></tr>
804
+ </tbody></table>
805
+
806
+ ## Returns
807
+
808
+ void
809
+
810
+ ## Remarks
811
+
812
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error` ADD since EDA v4
813
+
814
+ ## Example
815
+
816
+ ```javascript
817
+ const listenerId = '嘉立创示例_3d_material';
818
+
819
+ // 1. 注册点击材质监听(回调在 3D 预览点击材质时触发,本例不依赖实际触发)
820
+ eda.pcb_Event.addRayTracerEngine3DViewClickMaterialEventListener(
821
+ listenerId,
822
+ (props) => {
823
+ console.log('clickMaterial:', JSON.stringify(props));
824
+ }
825
+ );
826
+
827
+ // 2. 回读确认注册成功
828
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
829
+ console.log('registered:', registered);
830
+
831
+ // 3. 清理监听
832
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
833
+ console.log('removed:', removed);
834
+ ```
835
+
836
+ ### addrealtimedrcresulteventlistener
837
+
838
+ # PCB\_Event.addRealTimeDrcResultEventListener() method
839
+
840
+ > 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.
841
+
842
+ Add a real-time DRC result event listener
843
+
844
+ ## Signature
845
+
846
+ ```typescript
847
+ function addRealTimeDrcResultEventListener(
848
+ id: string,
849
+ eventType: 'all',
850
+ callFn: (eventType: undefined, props: [{ drcResult: any }]) => void | Promise<void>,
851
+ ): void;
852
+ ```
853
+
854
+ ## Parameters
855
+
856
+ <table><thead><tr><th>
857
+
858
+ Parameter
859
+
860
+ </th><th>
861
+
862
+ Type
863
+
864
+ </th><th>
865
+
866
+ Description
867
+
868
+ </th></tr></thead>
869
+ <tbody><tr><td>
870
+
871
+ id
872
+
873
+ </td><td>
874
+
875
+ string
876
+
877
+ </td><td>
878
+
879
+ Event ID, used to prevent duplicate event registration
880
+
881
+ </td></tr>
882
+ <tr><td>
883
+
884
+ eventType
885
+
886
+ </td><td>
887
+
888
+ 'all'
889
+
890
+ </td><td>
891
+
892
+ Event type
893
+
894
+ </td></tr>
895
+ <tr><td>
896
+
897
+ callFn
898
+
899
+ </td><td>
900
+
901
+ (eventType: undefined, props: \[{ drcResult: any }\]) =&gt; void \| Promise&lt;void&gt;
902
+
903
+ </td><td>
904
+
905
+ The callback function triggered when the event fires
906
+
907
+ </td></tr>
908
+ </tbody></table>
909
+
910
+ ## Returns
911
+
912
+ void
913
+
914
+ ## Remarks
915
+
916
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error`
917
+
918
+ ## Example
919
+
920
+ ```javascript
921
+ const listenerId = '嘉立创示例_drc_result';
922
+
923
+ // 1. 注册实时 DRC 结果监听,eventType 固定为 'all'
924
+ eda.pcb_Event.addRealTimeDrcResultEventListener(
925
+ listenerId,
926
+ 'all',
927
+ (eventType, props) => {
928
+ // 回调在实时 DRC 检出违规时触发;props 是 DRC 结果数组
929
+ console.log('drcResult:', JSON.stringify(props));
930
+ }
931
+ );
932
+
933
+ // 2. 回读确认注册成功
934
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
935
+ console.log('registered:', registered);
936
+
937
+ // 3. 清理监听
938
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
939
+ console.log('removed:', removed);
940
+ ```
941
+
942
+ ### iseventlisteneralreadyexist
943
+
944
+ # PCB\_Event.isEventListenerAlreadyExist() method
945
+
946
+ Query whether the event listener exists
947
+
948
+ ## Signature
949
+
950
+ ```typescript
951
+ function isEventListenerAlreadyExist(id: string): boolean;
952
+ ```
953
+
954
+ ## Parameters
955
+
956
+ <table><thead><tr><th>
957
+
958
+ Parameter
959
+
960
+ </th><th>
961
+
962
+ Type
963
+
964
+ </th><th>
965
+
966
+ Description
967
+
968
+ </th></tr></thead>
969
+ <tbody><tr><td>
970
+
971
+ id
972
+
973
+ </td><td>
974
+
975
+ string
976
+
977
+ </td><td>
978
+
979
+ Event ID
980
+
981
+ </td></tr>
982
+ </tbody></table>
983
+
984
+ ## Returns
985
+
986
+ boolean
987
+
988
+ Whether the event listener exists
989
+
990
+ ## Example
991
+
992
+ ```javascript
993
+ const listenerId = '嘉立创示例_event_exist';
994
+
995
+ // 1. 注册前查询:应为 false
996
+ const before = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
997
+ console.log('before:', before);
998
+
999
+ // 2. 注册一个鼠标事件监听使 id 生效
1000
+ eda.pcb_Event.addMouseEventListener(listenerId, 'all', () => {}, false);
1001
+
1002
+ // 3. 注册后查询:应为 true
1003
+ const after = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
1004
+ console.log('after:', after);
1005
+
1006
+ // 4. 移除后查询:应回到 false
1007
+ eda.pcb_Event.removeEventListener(listenerId);
1008
+ const afterRemove = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
1009
+ console.log('afterRemove:', afterRemove);
1010
+ ```
1011
+
1012
+ ### removeeventlistener
1013
+
1014
+ # PCB\_Event.removeEventListener() method
1015
+
1016
+ Remove Event listener
1017
+
1018
+ ## Signature
1019
+
1020
+ ```typescript
1021
+ function removeEventListener(id: string): boolean;
1022
+ ```
1023
+
1024
+ ## Parameters
1025
+
1026
+ <table><thead><tr><th>
1027
+
1028
+ Parameter
1029
+
1030
+ </th><th>
1031
+
1032
+ Type
1033
+
1034
+ </th><th>
1035
+
1036
+ Description
1037
+
1038
+ </th></tr></thead>
1039
+ <tbody><tr><td>
1040
+
1041
+ id
1042
+
1043
+ </td><td>
1044
+
1045
+ string
1046
+
1047
+ </td><td>
1048
+
1049
+ Event ID
1050
+
1051
+ </td></tr>
1052
+ </tbody></table>
1053
+
1054
+ ## Returns
1055
+
1056
+ boolean
1057
+
1058
+ Whether Remove Specify event listener
1059
+
1060
+ ## Example
1061
+
1062
+ ```javascript
1063
+ const listenerId = '嘉立创示例_event_remove';
1064
+
1065
+ // 1. 先注册一个鼠标事件监听作为移除目标
1066
+ eda.pcb_Event.addMouseEventListener(listenerId, 'all', () => {}, false);
1067
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
1068
+ console.log('registered:', registered);
1069
+
1070
+ // 2. 移除该监听
1071
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
1072
+ console.log('removed:', removed);
1073
+
1074
+ // 3. 回读确认已不存在
1075
+ const existAfter = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
1076
+ console.log('existAfter:', existAfter);
1077
+
1078
+ // 4. 重复移除同一 id:返回 false(本就未注册)
1079
+ const removedAgain = eda.pcb_Event.removeEventListener(listenerId);
1080
+ console.log('removedAgain:', removedAgain);
1081
+ ```