@windypro-rourou/dsh-eda 0.1.4 → 0.1.5

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 (483) hide show
  1. package/README.md +1 -1
  2. package/lib/capabilities.js +3 -2
  3. package/lib/client.js +33 -0
  4. package/lib/index.js +89 -2
  5. package/package.json +10 -1
  6. package/skill/INDEX.md +10 -8
  7. package/skill/README.md +125 -0
  8. package/skill/README.zh-Hans.md +125 -0
  9. package/skill/SKILL.md +746 -746
  10. package/skill/format/index.md +152 -152
  11. package/skill/format/pcb/3d.md +166 -166
  12. package/skill/format/pcb/attr.md +63 -63
  13. package/skill/format/pcb/common.md +306 -306
  14. package/skill/format/pcb/component.md +132 -132
  15. package/skill/format/pcb/dimension.md +58 -58
  16. package/skill/format/pcb/index.md +17 -17
  17. package/skill/format/pcb/obj.md +43 -43
  18. package/skill/format/pcb/pad_via.md +151 -151
  19. package/skill/format/pcb/panel.md +64 -64
  20. package/skill/format/pcb/partition.md +43 -43
  21. package/skill/format/pcb/primitive.md +196 -196
  22. package/skill/format/pcb/rule.md +71 -71
  23. package/skill/format/pcb/shape.md +441 -441
  24. package/skill/format/pcb/text.md +62 -62
  25. package/skill/format/project/blob.md +30 -30
  26. package/skill/format/project/common.md +42 -42
  27. package/skill/format/project/group.md +62 -62
  28. package/skill/format/project/index.md +12 -12
  29. package/skill/format/project/instance.md +32 -32
  30. package/skill/format/project/meta.md +189 -189
  31. package/skill/format/project/variant.md +30 -30
  32. package/skill/format/schematic/attr.md +41 -41
  33. package/skill/format/schematic/common.md +47 -47
  34. package/skill/format/schematic/component.md +91 -91
  35. package/skill/format/schematic/index.md +14 -14
  36. package/skill/format/schematic/obj.md +41 -41
  37. package/skill/format/schematic/pin.md +59 -59
  38. package/skill/format/schematic/shape.md +231 -231
  39. package/skill/format/schematic/structure.md +53 -53
  40. package/skill/format/schematic/table.md +109 -109
  41. package/skill/format/schematic/text.md +47 -47
  42. package/skill/format/schematic/wire.md +132 -132
  43. package/skill/guide/ancillary-projects/easyeda-api-sdk.md +1 -0
  44. package/skill/guide/ancillary-projects/pro-api-types.md +5 -5
  45. package/skill/guide/ancillary-projects.md +10 -10
  46. package/skill/guide/cli.md +1510 -0
  47. package/skill/guide/error-handling.md +38 -38
  48. package/skill/guide/extension-json.md +135 -135
  49. package/skill/guide/extensions-marketplace.md +61 -61
  50. package/skill/guide/how-to-start.md +316 -301
  51. package/skill/guide/i18n.md +57 -57
  52. package/skill/guide/index.md +7 -7
  53. package/skill/guide/inline-frame.md +20 -20
  54. package/skill/guide/invoke-apis.md +81 -81
  55. package/skill/guide/stability.md +37 -37
  56. package/skill/references/_index.md +471 -398
  57. package/skill/references/_quick-reference.md +3103 -3028
  58. package/skill/references/classes/DMT_Board.md +537 -533
  59. package/skill/references/classes/DMT_EditorControl.md +1736 -1736
  60. package/skill/references/classes/DMT_Event.md +356 -356
  61. package/skill/references/classes/DMT_Folder.md +775 -775
  62. package/skill/references/classes/DMT_Panel.md +531 -531
  63. package/skill/references/classes/DMT_Pcb.md +579 -575
  64. package/skill/references/classes/DMT_Project.md +734 -573
  65. package/skill/references/classes/DMT_Schematic.md +1482 -1477
  66. package/skill/references/classes/DMT_SelectControl.md +96 -96
  67. package/skill/references/classes/DMT_Team.md +172 -172
  68. package/skill/references/classes/DMT_Workspace.md +198 -198
  69. package/skill/references/classes/EDA.md +1001 -961
  70. package/skill/references/classes/IPCB_ComplexPolygon.md +299 -299
  71. package/skill/references/classes/IPCB_Polygon.md +175 -175
  72. package/skill/references/classes/IPCB_PrimitiveArc.md +1901 -1901
  73. package/skill/references/classes/IPCB_PrimitiveAttribute.md +2993 -2993
  74. package/skill/references/classes/IPCB_PrimitiveComponent.md +2624 -2627
  75. package/skill/references/classes/IPCB_PrimitiveComponentPad.md +410 -410
  76. package/skill/references/classes/IPCB_PrimitiveDimension.md +1419 -1419
  77. package/skill/references/classes/IPCB_PrimitiveFill.md +1325 -1325
  78. package/skill/references/classes/IPCB_PrimitiveImage.md +1461 -1461
  79. package/skill/references/classes/IPCB_PrimitiveLine.md +1639 -1639
  80. package/skill/references/classes/IPCB_PrimitiveObject.md +1700 -1700
  81. package/skill/references/classes/IPCB_PrimitivePad.md +3155 -3155
  82. package/skill/references/classes/IPCB_PrimitivePolyline.md +1193 -1193
  83. package/skill/references/classes/IPCB_PrimitivePour.md +1858 -1858
  84. package/skill/references/classes/IPCB_PrimitivePoured.md +556 -556
  85. package/skill/references/classes/IPCB_PrimitiveRegion.md +1332 -1332
  86. package/skill/references/classes/IPCB_PrimitiveString.md +2315 -2315
  87. package/skill/references/classes/IPCB_PrimitiveVia.md +1588 -1588
  88. package/skill/references/classes/ISCH_PrimitiveArc.md +1676 -1676
  89. package/skill/references/classes/ISCH_PrimitiveAttribute.md +2541 -2541
  90. package/skill/references/classes/ISCH_PrimitiveBus.md +973 -973
  91. package/skill/references/classes/ISCH_PrimitiveCbbSymbolComponent.md +260 -260
  92. package/skill/references/classes/ISCH_PrimitiveCircle.md +1392 -1392
  93. package/skill/references/classes/ISCH_PrimitiveComponent.md +2910 -2913
  94. package/skill/references/classes/ISCH_PrimitiveComponentPin.md +155 -155
  95. package/skill/references/classes/ISCH_PrimitiveObject.md +960 -960
  96. package/skill/references/classes/ISCH_PrimitivePin.md +2402 -2402
  97. package/skill/references/classes/ISCH_PrimitivePolygon.md +1028 -1028
  98. package/skill/references/classes/ISCH_PrimitiveRectangle.md +1777 -1777
  99. package/skill/references/classes/ISCH_PrimitiveText.md +1771 -1771
  100. package/skill/references/classes/ISCH_PrimitiveWire.md +973 -973
  101. package/skill/references/classes/LIB_3DModel.md +782 -780
  102. package/skill/references/classes/LIB_Cbb.md +957 -957
  103. package/skill/references/classes/LIB_Classification.md +969 -965
  104. package/skill/references/classes/LIB_Device.md +1222 -1221
  105. package/skill/references/classes/LIB_Footprint.md +1298 -1153
  106. package/skill/references/classes/LIB_LibrariesList.md +361 -329
  107. package/skill/references/classes/LIB_PanelLibrary.md +855 -855
  108. package/skill/references/classes/LIB_SelectControl.md +89 -89
  109. package/skill/references/classes/LIB_SimulationModel.md +807 -821
  110. package/skill/references/classes/LIB_Symbol.md +1341 -1195
  111. package/skill/references/classes/PCB_Document.md +1770 -1754
  112. package/skill/references/classes/PCB_Drc.md +3379 -3375
  113. package/skill/references/classes/PCB_Event.md +1166 -1081
  114. package/skill/references/classes/PCB_ImageTool.md +363 -0
  115. package/skill/references/classes/PCB_Layer.md +1915 -1911
  116. package/skill/references/classes/PCB_ManufactureData.md +2968 -2968
  117. package/skill/references/classes/PCB_MathPolygon.md +916 -785
  118. package/skill/references/classes/PCB_Net.md +1128 -1128
  119. package/skill/references/classes/PCB_Primitive.md +217 -217
  120. package/skill/references/classes/PCB_PrimitiveArc.md +820 -894
  121. package/skill/references/classes/PCB_PrimitiveAttribute.md +635 -717
  122. package/skill/references/classes/PCB_PrimitiveComponent.md +1050 -1050
  123. package/skill/references/classes/PCB_PrimitiveDimension.md +789 -833
  124. package/skill/references/classes/PCB_PrimitiveFill.md +783 -861
  125. package/skill/references/classes/PCB_PrimitiveImage.md +803 -875
  126. package/skill/references/classes/PCB_PrimitiveLine.md +787 -858
  127. package/skill/references/classes/PCB_PrimitiveObject.md +796 -800
  128. package/skill/references/classes/PCB_PrimitivePad.md +947 -944
  129. package/skill/references/classes/PCB_PrimitivePolyline.md +744 -819
  130. package/skill/references/classes/PCB_PrimitivePour.md +808 -845
  131. package/skill/references/classes/PCB_PrimitivePoured.md +363 -363
  132. package/skill/references/classes/PCB_PrimitiveRegion.md +765 -799
  133. package/skill/references/classes/PCB_PrimitiveString.md +828 -910
  134. package/skill/references/classes/PCB_PrimitiveVia.md +761 -765
  135. package/skill/references/classes/PCB_RayTracerEngine.md +603 -263
  136. package/skill/references/classes/PCB_SelectControl.md +495 -495
  137. package/skill/references/classes/PCB_Tool.md +9 -0
  138. package/skill/references/classes/PNL_Document.md +83 -83
  139. package/skill/references/classes/SCH_Document.md +797 -809
  140. package/skill/references/classes/SCH_Drc.md +246 -242
  141. package/skill/references/classes/SCH_Event.md +583 -583
  142. package/skill/references/classes/SCH_ManufactureData.md +1209 -1205
  143. package/skill/references/classes/SCH_Net.md +200 -200
  144. package/skill/references/classes/SCH_Netlist.md +191 -191
  145. package/skill/references/classes/SCH_Primitive.md +337 -337
  146. package/skill/references/classes/SCH_PrimitiveArc.md +686 -692
  147. package/skill/references/classes/SCH_PrimitiveAttribute.md +579 -590
  148. package/skill/references/classes/SCH_PrimitiveBus.md +618 -624
  149. package/skill/references/classes/SCH_PrimitiveCircle.md +667 -683
  150. package/skill/references/classes/SCH_PrimitiveComponent.md +2256 -2240
  151. package/skill/references/classes/SCH_PrimitiveObject.md +666 -666
  152. package/skill/references/classes/SCH_PrimitivePin.md +737 -754
  153. package/skill/references/classes/SCH_PrimitivePolygon.md +621 -627
  154. package/skill/references/classes/SCH_PrimitiveRectangle.md +715 -731
  155. package/skill/references/classes/SCH_PrimitiveText.md +736 -746
  156. package/skill/references/classes/SCH_PrimitiveWire.md +701 -703
  157. package/skill/references/classes/SCH_SelectControl.md +520 -520
  158. package/skill/references/classes/SCH_SimulationEngine.md +133 -133
  159. package/skill/references/classes/SCH_Utils.md +121 -121
  160. package/skill/references/classes/SYS_ClientUrl.md +173 -173
  161. package/skill/references/classes/SYS_Dialog.md +825 -825
  162. package/skill/references/classes/SYS_Environment.md +640 -502
  163. package/skill/references/classes/SYS_ExternalApi.md +246 -0
  164. package/skill/references/classes/SYS_FileManager.md +1664 -1686
  165. package/skill/references/classes/SYS_FileSystem.md +1366 -1171
  166. package/skill/references/classes/SYS_FontManager.md +224 -224
  167. package/skill/references/classes/SYS_FormatConversion.md +349 -349
  168. package/skill/references/classes/SYS_HeaderMenu.md +480 -479
  169. package/skill/references/classes/SYS_Help.md +141 -0
  170. package/skill/references/classes/SYS_I18n.md +861 -861
  171. package/skill/references/classes/SYS_IFrame.md +541 -535
  172. package/skill/references/classes/SYS_LoadingAndProgressBar.md +246 -246
  173. package/skill/references/classes/SYS_Log.md +422 -424
  174. package/skill/references/classes/SYS_Math.md +1565 -1565
  175. package/skill/references/classes/SYS_Message.md +363 -363
  176. package/skill/references/classes/SYS_MessageBox.md +285 -285
  177. package/skill/references/classes/SYS_MessageBus.md +1618 -1618
  178. package/skill/references/classes/SYS_PanelControl.md +696 -696
  179. package/skill/references/classes/SYS_RightClickMenu.md +175 -175
  180. package/skill/references/classes/SYS_Setting.md +134 -85
  181. package/skill/references/classes/SYS_ShortcutKey.md +623 -623
  182. package/skill/references/classes/SYS_Storage.md +484 -484
  183. package/skill/references/classes/SYS_Timer.md +447 -447
  184. package/skill/references/classes/SYS_ToastMessage.md +194 -194
  185. package/skill/references/classes/SYS_Tool.md +317 -241
  186. package/skill/references/classes/SYS_Unit.md +594 -594
  187. package/skill/references/classes/SYS_WebSocket.md +401 -401
  188. package/skill/references/classes/SYS_Window.md +849 -850
  189. package/skill/references/enums/EDMT_EditorDocumentType.md +324 -278
  190. package/skill/references/enums/EDMT_EditorSplitScreenDirection.md +51 -47
  191. package/skill/references/enums/EDMT_EditorTabEventType.md +68 -62
  192. package/skill/references/enums/EDMT_IndicatorMarkerType.md +90 -80
  193. package/skill/references/enums/EDMT_ItemType.md +181 -157
  194. package/skill/references/enums/EDMT_ProjectCollaborationMode.md +51 -47
  195. package/skill/references/enums/EDMT_ProjectFileFormat.md +60 -0
  196. package/skill/references/enums/EDMT_ProjectReadyState.md +82 -0
  197. package/skill/references/enums/ELIB_DeviceJlcLibraryCategory.md +51 -47
  198. package/skill/references/enums/ELIB_LibraryType.md +129 -113
  199. package/skill/references/enums/ELIB_PreviewType.md +77 -69
  200. package/skill/references/enums/ELIB_SimulationModelType.md +51 -47
  201. package/skill/references/enums/ELIB_SymbolType.md +142 -124
  202. package/skill/references/enums/EPCB_AutoRoutingCornerStyle.md +51 -47
  203. package/skill/references/enums/EPCB_AutoRoutingExistingPrimitiveMode.md +51 -47
  204. package/skill/references/enums/EPCB_AutoRoutingOptimization.md +51 -47
  205. package/skill/references/enums/EPCB_DocumentCanvasUpdateCalculationActiveStatus.md +51 -47
  206. package/skill/references/enums/EPCB_DocumentRatlineCalculatingActiveStatus.md +55 -51
  207. package/skill/references/enums/EPCB_InactiveLayerDisplayMode.md +64 -58
  208. package/skill/references/enums/EPCB_LayerColorConfiguration.md +90 -80
  209. package/skill/references/enums/EPCB_LayerId.md +1169 -881
  210. package/skill/references/enums/EPCB_LayerStatus.md +64 -58
  211. package/skill/references/enums/EPCB_LayerType.md +129 -113
  212. package/skill/references/enums/EPCB_MouseEventType.md +64 -58
  213. package/skill/references/enums/EPCB_NetEventType.md +64 -58
  214. package/skill/references/enums/EPCB_PcbPlateType.md +51 -47
  215. package/skill/references/enums/EPCB_PdfOutputMethod.md +64 -58
  216. package/skill/references/enums/EPCB_PrimitiveArcInteractiveMode.md +51 -47
  217. package/skill/references/enums/EPCB_PrimitiveDimensionType.md +64 -58
  218. package/skill/references/enums/EPCB_PrimitiveEventType.md +64 -58
  219. package/skill/references/enums/EPCB_PrimitiveFillMode.md +68 -62
  220. package/skill/references/enums/EPCB_PrimitivePadHeatWeldingConnectionMethod.md +64 -58
  221. package/skill/references/enums/EPCB_PrimitivePadHoleType.md +64 -58
  222. package/skill/references/enums/EPCB_PrimitivePadShapeType.md +90 -80
  223. package/skill/references/enums/EPCB_PrimitivePadType.md +64 -58
  224. package/skill/references/enums/EPCB_PrimitivePourFillMethod.md +64 -58
  225. package/skill/references/enums/EPCB_PrimitiveRegionRuleType.md +107 -95
  226. package/skill/references/enums/EPCB_PrimitiveStringAlignMode.md +142 -124
  227. package/skill/references/enums/EPCB_PrimitiveType.md +233 -201
  228. package/skill/references/enums/EPCB_PrimitiveViaType.md +64 -58
  229. package/skill/references/enums/ESCH_DynamicSimulationEnginePullEventType.md +116 -102
  230. package/skill/references/enums/ESCH_DynamicSimulationEnginePushEventType.md +90 -80
  231. package/skill/references/enums/ESCH_ExportDocumentFileType.md +64 -58
  232. package/skill/references/enums/ESCH_MouseEventType.md +51 -47
  233. package/skill/references/enums/ESCH_PrimitiveComponentType.md +142 -124
  234. package/skill/references/enums/ESCH_PrimitiveEventType.md +77 -69
  235. package/skill/references/enums/ESCH_PrimitiveFillStyle.md +129 -113
  236. package/skill/references/enums/ESCH_PrimitiveLineType.md +77 -69
  237. package/skill/references/enums/ESCH_PrimitivePinShape.md +77 -69
  238. package/skill/references/enums/ESCH_PrimitivePinType.md +168 -146
  239. package/skill/references/enums/ESCH_PrimitiveTextAlignMode.md +142 -124
  240. package/skill/references/enums/ESCH_PrimitiveType.md +207 -179
  241. package/skill/references/enums/ESCH_SimulationNetlistType.md +38 -36
  242. package/skill/references/enums/ESCH_SpiceSimulationEnginePullEventType.md +51 -47
  243. package/skill/references/enums/ESCH_SpiceSimulationEnginePushEventType.md +77 -69
  244. package/skill/references/enums/ESYS_BottomPanelTab.md +94 -80
  245. package/skill/references/enums/ESYS_HeaderMenuEnvironment.md +181 -157
  246. package/skill/references/enums/ESYS_ImportProjectBoardOutlineSource.md +55 -51
  247. package/skill/references/enums/ESYS_ImportProjectImportOption.md +64 -58
  248. package/skill/references/enums/ESYS_ImportProjectSchematicObjectStyle.md +51 -47
  249. package/skill/references/enums/ESYS_ImportProjectViaSolderMaskExpansion.md +55 -51
  250. package/skill/references/enums/ESYS_JobState.md +95 -0
  251. package/skill/references/enums/ESYS_LeftPanelTab.md +94 -80
  252. package/skill/references/enums/ESYS_LogType.md +77 -102
  253. package/skill/references/enums/ESYS_NetlistType.md +129 -113
  254. package/skill/references/enums/ESYS_PanelPosition.md +69 -0
  255. package/skill/references/enums/ESYS_PanelTab.md +368 -0
  256. package/skill/references/enums/ESYS_RightPanelTab.md +237 -201
  257. package/skill/references/enums/ESYS_ShortcutKeyEffectiveEditorRange.md +220 -190
  258. package/skill/references/enums/ESYS_ShortcutKeyEffectiveEditorScene.md +103 -91
  259. package/skill/references/enums/ESYS_StartPageQuickStartItem.md +237 -205
  260. package/skill/references/enums/ESYS_Theme.md +51 -47
  261. package/skill/references/enums/ESYS_ToastMessageType.md +90 -80
  262. package/skill/references/enums/ESYS_Unit.md +116 -102
  263. package/skill/references/enums/ESYS_WindowEventType.md +64 -47
  264. package/skill/references/enums/ESYS_WindowOpenTarget.md +51 -47
  265. package/skill/references/enums/NetportDeviceName.md +146 -146
  266. package/skill/references/enums/SchToolBarDeviceName.md +278 -278
  267. package/skill/references/interfaces/BoardProps.md +169 -169
  268. package/skill/references/interfaces/BorderConfig.md +109 -0
  269. package/skill/references/interfaces/ButtonProps.md +196 -169
  270. package/skill/references/interfaces/CellClickInfo.md +142 -0
  271. package/skill/references/interfaces/CellCoord.md +88 -0
  272. package/skill/references/interfaces/CheckBoxProps.md +223 -196
  273. package/skill/references/interfaces/CheckChangeDetail.md +88 -0
  274. package/skill/references/interfaces/CheckboxEditConfig.md +159 -0
  275. package/skill/references/interfaces/ClipboardCellData.md +142 -0
  276. package/skill/references/interfaces/ClipboardConfig.md +115 -0
  277. package/skill/references/interfaces/ColorPickerProps.md +169 -0
  278. package/skill/references/interfaces/ColumnDef.md +605 -0
  279. package/skill/references/interfaces/ColumnEditTrigger.md +57 -0
  280. package/skill/references/interfaces/ColumnGroupDef.md +192 -0
  281. package/skill/references/interfaces/ColumnResizeConfig.md +142 -0
  282. package/skill/references/interfaces/ComponentPropsMap.md +517 -448
  283. package/skill/references/interfaces/CustomHeaderConfig.md +169 -0
  284. package/skill/references/interfaces/DialogProps.md +385 -385
  285. package/skill/references/interfaces/DragSortConfig.md +115 -0
  286. package/skill/references/interfaces/EditingConfig.md +196 -0
  287. package/skill/references/interfaces/FilteringConfig.md +250 -0
  288. package/skill/references/interfaces/FixedColumnConfig.md +88 -0
  289. package/skill/references/interfaces/FlexItemProps.md +116 -116
  290. package/skill/references/interfaces/FlexProps.md +224 -224
  291. package/skill/references/interfaces/GridItemProps.md +143 -143
  292. package/skill/references/interfaces/GridProps.md +143 -143
  293. package/skill/references/interfaces/IDMT_BoardItem.md +171 -171
  294. package/skill/references/interfaces/IDMT_BriefProjectItem.md +171 -171
  295. package/skill/references/interfaces/IDMT_EditorDocumentItem.md +169 -169
  296. package/skill/references/interfaces/IDMT_EditorSplitScreenItem.md +173 -173
  297. package/skill/references/interfaces/IDMT_EditorTabItem.md +169 -169
  298. package/skill/references/interfaces/IDMT_FolderItem.md +225 -225
  299. package/skill/references/interfaces/IDMT_IndicatorMarkerShape.md +393 -393
  300. package/skill/references/interfaces/IDMT_PanelItem.md +144 -144
  301. package/skill/references/interfaces/IDMT_PcbItem.md +171 -171
  302. package/skill/references/interfaces/IDMT_ProjectItem.md +143 -143
  303. package/skill/references/interfaces/IDMT_SchematicItem.md +225 -225
  304. package/skill/references/interfaces/IDMT_SchematicPageItem.md +198 -198
  305. package/skill/references/interfaces/IDMT_TeamItem.md +144 -144
  306. package/skill/references/interfaces/IDMT_WorkspaceItem.md +117 -117
  307. package/skill/references/interfaces/IDesignPortal.md +103 -103
  308. package/skill/references/interfaces/ILIB_3DModelItem.md +198 -198
  309. package/skill/references/interfaces/ILIB_3DModelSearchItem.md +277 -277
  310. package/skill/references/interfaces/ILIB_CbbItem.md +225 -225
  311. package/skill/references/interfaces/ILIB_CbbSearchItem.md +277 -277
  312. package/skill/references/interfaces/ILIB_ClassificationIndex.md +150 -150
  313. package/skill/references/interfaces/ILIB_ClassificationNode.md +98 -0
  314. package/skill/references/interfaces/ILIB_DeviceAssociationItem.md +210 -210
  315. package/skill/references/interfaces/ILIB_DeviceExtendPropertyItem.md +304 -304
  316. package/skill/references/interfaces/ILIB_DeviceItem.md +279 -279
  317. package/skill/references/interfaces/ILIB_DevicePropertiesForSearch.md +250 -250
  318. package/skill/references/interfaces/ILIB_DeviceSearchItem.md +521 -521
  319. package/skill/references/interfaces/ILIB_ExtendLibrary3DModelFunctions.md +64 -64
  320. package/skill/references/interfaces/ILIB_ExtendLibraryCbbFunctions.md +93 -99
  321. package/skill/references/interfaces/ILIB_ExtendLibraryClassificationIndex.md +150 -150
  322. package/skill/references/interfaces/ILIB_ExtendLibraryDeviceFunctions.md +143 -157
  323. package/skill/references/interfaces/ILIB_ExtendLibraryFootprintFunctions.md +63 -63
  324. package/skill/references/interfaces/ILIB_ExtendLibraryFunctions.md +123 -123
  325. package/skill/references/interfaces/ILIB_ExtendLibraryItem.md +97 -97
  326. package/skill/references/interfaces/ILIB_ExtendLibraryItemIndex.md +98 -98
  327. package/skill/references/interfaces/ILIB_ExtendLibrarySearchProperty.md +115 -115
  328. package/skill/references/interfaces/ILIB_ExtendLibrarySearchResult.md +169 -169
  329. package/skill/references/interfaces/ILIB_ExtendLibrarySearchResultDataLine.md +234 -234
  330. package/skill/references/interfaces/ILIB_ExtendLibrarySymbolFunctions.md +91 -105
  331. package/skill/references/interfaces/ILIB_ExtendLibraryUserIndex.md +96 -96
  332. package/skill/references/interfaces/ILIB_FootprintItem.md +256 -198
  333. package/skill/references/interfaces/ILIB_FootprintPropertiesForSearch.md +61 -61
  334. package/skill/references/interfaces/ILIB_FootprintSearchItem.md +277 -277
  335. package/skill/references/interfaces/ILIB_LibraryInfo.md +92 -92
  336. package/skill/references/interfaces/ILIB_LibraryItem.md +115 -115
  337. package/skill/references/interfaces/ILIB_PanelLibraryItem.md +198 -198
  338. package/skill/references/interfaces/ILIB_PanelLibrarySearchItem.md +277 -277
  339. package/skill/references/interfaces/ILIB_RegisterExtendLibraryProps.md +71 -0
  340. package/skill/references/interfaces/ILIB_SimulationModelItem.md +306 -306
  341. package/skill/references/interfaces/ILIB_SimulationModelSearchItem.md +304 -304
  342. package/skill/references/interfaces/ILIB_SymbolItem.md +306 -279
  343. package/skill/references/interfaces/ILIB_SymbolPropertiesForSearch.md +61 -61
  344. package/skill/references/interfaces/ILIB_SymbolSearchItem.md +304 -304
  345. package/skill/references/interfaces/IPCB_AutoLayoutResult.md +169 -169
  346. package/skill/references/interfaces/IPCB_AutoRoutingProps.md +220 -220
  347. package/skill/references/interfaces/IPCB_AutoRoutingResult.md +169 -169
  348. package/skill/references/interfaces/IPCB_BomPropertiesTableColumns.md +169 -169
  349. package/skill/references/interfaces/IPCB_DifferentialPairItem.md +115 -115
  350. package/skill/references/interfaces/IPCB_DiscretizeOptions.md +65 -65
  351. package/skill/references/interfaces/IPCB_DiscretizedPoint.md +88 -88
  352. package/skill/references/interfaces/IPCB_EqualLengthNetGroupItem.md +115 -115
  353. package/skill/references/interfaces/IPCB_LayerItem.md +277 -277
  354. package/skill/references/interfaces/IPCB_NetClassItem.md +115 -115
  355. package/skill/references/interfaces/IPCB_NetInfo.md +115 -115
  356. package/skill/references/interfaces/IPCB_PadPairGroupItem.md +88 -88
  357. package/skill/references/interfaces/IPCB_PadPairMinWireLengthItem.md +88 -88
  358. package/skill/references/interfaces/IPCB_PhysicalStackingConfiguration.md +115 -115
  359. package/skill/references/interfaces/IPCB_Primitive.md +218 -218
  360. package/skill/references/interfaces/IPCB_PrimitiveAPI.md +174 -175
  361. package/skill/references/interfaces/IPCB_PrimitivePadHeatWelding.md +151 -151
  362. package/skill/references/interfaces/IPCB_PrimitivePouredPourFill.md +142 -142
  363. package/skill/references/interfaces/IPCB_PrimitiveSolderMaskAndPasteMaskExpansion.md +154 -154
  364. package/skill/references/interfaces/IPCB_RayTracerBackgroundConfig.md +223 -0
  365. package/skill/references/interfaces/IPCB_RayTracerLightConfig.md +412 -0
  366. package/skill/references/interfaces/IPCB_RayTracerMaterialConfig.md +547 -0
  367. package/skill/references/interfaces/IPCB_RayTracerPcbMaterialConfig.md +196 -0
  368. package/skill/references/interfaces/IPCB_RayTracerRenderConfigurations.md +200 -0
  369. package/skill/references/interfaces/IPCB_RayTracerRendererConfig.md +196 -0
  370. package/skill/references/interfaces/IPCB_RayTracerSceneElement.md +115 -0
  371. package/skill/references/interfaces/IPCB_RayTracerSceneElementTransform.md +123 -0
  372. package/skill/references/interfaces/IPCB_RayTracerTexture.md +88 -0
  373. package/skill/references/interfaces/IPCB_SubstratePhysicalProperties.md +88 -88
  374. package/skill/references/interfaces/IRawNet.md +103 -103
  375. package/skill/references/interfaces/IRawPureSchematic.md +80 -80
  376. package/skill/references/interfaces/IRawSchematic.md +103 -103
  377. package/skill/references/interfaces/IRawWire.md +149 -149
  378. package/skill/references/interfaces/ISCH_DrcError.md +142 -142
  379. package/skill/references/interfaces/ISCH_DrcErrorPrimitive.md +142 -142
  380. package/skill/references/interfaces/ISCH_ExportPngResolution.md +94 -94
  381. package/skill/references/interfaces/ISCH_NetInfo.md +88 -88
  382. package/skill/references/interfaces/ISCH_Primitive.md +218 -219
  383. package/skill/references/interfaces/ISCH_PrimitiveAPI.md +174 -175
  384. package/skill/references/interfaces/ISCH_ProjectNetInfo.md +142 -142
  385. package/skill/references/interfaces/ISCH_WireInfo.md +169 -169
  386. package/skill/references/interfaces/ISYS_ComparisonResponse.md +115 -0
  387. package/skill/references/interfaces/ISYS_ExtensionExternalApiIndex.md +13 -0
  388. package/skill/references/interfaces/ISYS_ExtensionRegisteredExternalApis.md +13 -0
  389. package/skill/references/interfaces/ISYS_ExternalApiHelp.md +173 -0
  390. package/skill/references/interfaces/ISYS_ExternalApiRegistration.md +146 -0
  391. package/skill/references/interfaces/ISYS_FileSystemFileList.md +169 -169
  392. package/skill/references/interfaces/ISYS_HeaderMenuSub1MenuItem.md +205 -174
  393. package/skill/references/interfaces/ISYS_HeaderMenuSub2MenuItem.md +178 -147
  394. package/skill/references/interfaces/ISYS_HeaderMenuTopMenuItem.md +115 -115
  395. package/skill/references/interfaces/ISYS_HeaderMenus.md +408 -408
  396. package/skill/references/interfaces/ISYS_HelpAudienceEntry.md +92 -0
  397. package/skill/references/interfaces/ISYS_HelpClassSummary.md +205 -0
  398. package/skill/references/interfaces/ISYS_HelpData.md +92 -0
  399. package/skill/references/interfaces/ISYS_HelpMethodDetail.md +310 -0
  400. package/skill/references/interfaces/ISYS_JobHandle.md +65 -0
  401. package/skill/references/interfaces/ISYS_JobLogEntry.md +142 -0
  402. package/skill/references/interfaces/ISYS_JobStatus.md +176 -0
  403. package/skill/references/interfaces/ISYS_LogLine.md +115 -115
  404. package/skill/references/interfaces/ISYS_MathBBox.md +142 -142
  405. package/skill/references/interfaces/ISYS_MathPoint.md +88 -88
  406. package/skill/references/interfaces/ISYS_MathPolygonWithHoles.md +92 -92
  407. package/skill/references/interfaces/ISYS_MessageBusTask.md +115 -115
  408. package/skill/references/interfaces/ISYS_MultilingualLanguagesData.md +12 -12
  409. package/skill/references/interfaces/ISYS_RightClickMenuItem.md +174 -174
  410. package/skill/references/interfaces/ISYS_ShortcutKeyData.md +169 -169
  411. package/skill/references/interfaces/ISYS_ShortcutKeyDataWithCallFn.md +62 -62
  412. package/skill/references/interfaces/ISYS_ShortcutKeyDataWithUserDefinedShortcutKey.md +62 -62
  413. package/skill/references/interfaces/ISYS_WindowEventListenerRemovableObject.md +109 -109
  414. package/skill/references/interfaces/IconProps.md +88 -88
  415. package/skill/references/interfaces/ImageProps.md +115 -115
  416. package/skill/references/interfaces/InputEditConfig.md +182 -0
  417. package/skill/references/interfaces/InputProps.md +547 -520
  418. package/skill/references/interfaces/KeyboardConfig.md +61 -0
  419. package/skill/references/interfaces/ListChildren.md +223 -223
  420. package/skill/references/interfaces/ListProps.md +250 -223
  421. package/skill/references/interfaces/ModalProps.md +358 -358
  422. package/skill/references/interfaces/NumberEditConfig.md +234 -0
  423. package/skill/references/interfaces/RadioGroupProps.md +196 -196
  424. package/skill/references/interfaces/RadioItem.md +115 -115
  425. package/skill/references/interfaces/RichTableProps.md +1357 -0
  426. package/skill/references/interfaces/RowMetaConfig.md +142 -0
  427. package/skill/references/interfaces/ScrollerProps.md +169 -169
  428. package/skill/references/interfaces/SelectEditConfig.md +211 -0
  429. package/skill/references/interfaces/SelectListItem.md +142 -142
  430. package/skill/references/interfaces/SelectOption.md +142 -0
  431. package/skill/references/interfaces/SelectProps.md +169 -169
  432. package/skill/references/interfaces/SelectionConfig.md +358 -0
  433. package/skill/references/interfaces/SliderProps.md +142 -0
  434. package/skill/references/interfaces/SlotProps.md +88 -88
  435. package/skill/references/interfaces/SortState.md +88 -0
  436. package/skill/references/interfaces/SortingConfig.md +169 -0
  437. package/skill/references/interfaces/StyleProps.md +439 -385
  438. package/skill/references/interfaces/TextAreaProps.md +196 -196
  439. package/skill/references/interfaces/TextProps.md +169 -169
  440. package/skill/references/interfaces/TextareaEditConfig.md +182 -0
  441. package/skill/references/interfaces/ValidationRule.md +223 -0
  442. package/skill/references/interfaces/VirtualScrollConfig.md +115 -0
  443. package/skill/references/types/Align.md +9 -0
  444. package/skill/references/types/CellContentType.md +9 -0
  445. package/skill/references/types/ColumnDefOrGroup.md +12 -0
  446. package/skill/references/types/ColumnEditConfig.md +13 -0
  447. package/skill/references/types/ColumnType.md +9 -0
  448. package/skill/references/types/DataChangeType.md +9 -0
  449. package/skill/references/types/FilterMatchMode.md +9 -0
  450. package/skill/references/types/RichTableRow.md +12 -0
  451. package/skill/references/types/Serializable.md +10 -0
  452. package/skill/references/types/SerializablePrimitive.md +9 -0
  453. package/skill/references/types/SortOrder.md +9 -0
  454. package/skill/references/types/TPCB_LayerTypesOfInnerLayer.md +11 -11
  455. package/skill/references/types/TPCB_LayersInTheSelectable.md +42 -42
  456. package/skill/references/types/TPCB_LayersOfComponent.md +11 -11
  457. package/skill/references/types/TPCB_LayersOfCopper.md +15 -15
  458. package/skill/references/types/TPCB_LayersOfCustom.md +41 -41
  459. package/skill/references/types/TPCB_LayersOfDimension.md +16 -16
  460. package/skill/references/types/TPCB_LayersOfFill.md +28 -28
  461. package/skill/references/types/TPCB_LayersOfImage.md +22 -22
  462. package/skill/references/types/TPCB_LayersOfInner.md +41 -41
  463. package/skill/references/types/TPCB_LayersOfLine.md +25 -25
  464. package/skill/references/types/TPCB_LayersOfObject.md +12 -12
  465. package/skill/references/types/TPCB_LayersOfPad.md +11 -11
  466. package/skill/references/types/TPCB_LayersOfRegion.md +11 -11
  467. package/skill/references/types/TPCB_NumberOfCopperLayers.md +9 -9
  468. package/skill/references/types/TPCB_PolygonSourceArray.md +85 -83
  469. package/skill/references/types/TPCB_PrimitiveDimensionCoordinateSet.md +66 -66
  470. package/skill/references/types/TPCB_PrimitivePadHole.md +30 -30
  471. package/skill/references/types/TPCB_PrimitivePadShape.md +61 -61
  472. package/skill/references/types/TPCB_PrimitiveSpecialPadShape.md +19 -19
  473. package/skill/references/types/TSYS_ComparisonErrorCode.md +15 -0
  474. package/skill/references/types/TSYS_LanguageKeyValuePairs.md +13 -0
  475. package/skill/references/types/TSYS_MathPolygonGroup.md +15 -15
  476. package/skill/references/types/TSYS_MathPolygonInput.md +20 -20
  477. package/skill/references/types/TSYS_ShortcutKeys.md +96 -96
  478. package/skill/user-guide/using-extension.md +47 -47
  479. package/src/json-gen.test.js +430 -0
  480. package/skill/guide/ancillary-projects/pro-api-sdk.md +0 -1
  481. package/skill/references/interfaces/ISYS_PcbComparisonResponse.md +0 -115
  482. package/skill/references/types/ISYS_LanguageKeyValuePairs.md +0 -13
  483. package/skill/references/types/TSYS_PcbComparisonErrorCode.md +0 -10
@@ -1,1081 +1,1166 @@
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
- ```
1
+ # PCB\_Event class
2
+
3
+ PCB &amp; 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
+ [addImageEventListener(id, callFn)](./PCB_Event.md)
44
+
45
+ </td><td>
46
+
47
+ </td><td>
48
+
49
+ **_(BETA)_** 新增插入图片事件监听
50
+
51
+ </td></tr>
52
+ <tr><td>
53
+
54
+ [addMouseEventListener(id, eventType, callFn, onlyOnce)](./PCB_Event.md)
55
+
56
+ </td><td>
57
+
58
+ </td><td>
59
+
60
+ **_(BETA)_** Add a mouse event listener
61
+
62
+ </td></tr>
63
+ <tr><td>
64
+
65
+ [addNetEventListener(id, eventType, callFn, onlyOnce)](./PCB_Event.md)
66
+
67
+ </td><td>
68
+
69
+ </td><td>
70
+
71
+ **_(BETA)_** Add a net event listener
72
+
73
+ </td></tr>
74
+ <tr><td>
75
+
76
+ [addPrimitiveEventListener(id, eventType, callFn, onlyOnce)](./PCB_Event.md)
77
+
78
+ </td><td>
79
+
80
+ </td><td>
81
+
82
+ **_(BETA)_** Add a primitive event listener
83
+
84
+ </td></tr>
85
+ <tr><td>
86
+
87
+ [addRayTracerEngine3DViewCameraChangeEventListener(id, callFn, onlyOnce)](./PCB_Event.md)
88
+
89
+ </td><td>
90
+
91
+ </td><td>
92
+
93
+ **_(BETA)_** Add a ray tracer engine 3D preview camera change (dragging the 3D model) event listener
94
+
95
+ </td></tr>
96
+ <tr><td>
97
+
98
+ [addRayTracerEngine3DViewClickMaterialEventListener(id, callFn, onlyOnce)](./PCB_Event.md)
99
+
100
+ </td><td>
101
+
102
+ </td><td>
103
+
104
+ **_(BETA)_** Add a ray tracer engine 3D preview material click event listener
105
+
106
+ </td></tr>
107
+ <tr><td>
108
+
109
+ [addRealTimeDrcResultEventListener(id, eventType, callFn)](./PCB_Event.md)
110
+
111
+ </td><td>
112
+
113
+ </td><td>
114
+
115
+ **_(BETA)_** Add a real-time DRC result event listener
116
+
117
+ </td></tr>
118
+ <tr><td>
119
+
120
+ [isEventListenerAlreadyExist(id)](./PCB_Event.md)
121
+
122
+ </td><td>
123
+
124
+ </td><td>
125
+
126
+ Query whether the event listener exists
127
+
128
+ </td></tr>
129
+ <tr><td>
130
+
131
+ [removeEventListener(id)](./PCB_Event.md)
132
+
133
+ </td><td>
134
+
135
+ </td><td>
136
+
137
+ Remove Event listener
138
+
139
+ </td></tr>
140
+ </tbody></table>
141
+
142
+ ---
143
+
144
+ ## 方法详情
145
+
146
+ ### addcrossprobeselecteventlistener
147
+
148
+ # PCB\_Event.addCrossProbeSelectEventListener() method
149
+
150
+ > 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.
151
+
152
+ Add a cross-probe selection event listener
153
+
154
+ ## Signature
155
+
156
+ ```typescript
157
+ function addCrossProbeSelectEventListener(
158
+ id: string,
159
+ callFn: (props: any) => void | Promise<void>,
160
+ ): void;
161
+ ```
162
+
163
+ ## Parameters
164
+
165
+ <table><thead><tr><th>
166
+
167
+ Parameter
168
+
169
+ </th><th>
170
+
171
+ Type
172
+
173
+ </th><th>
174
+
175
+ Description
176
+
177
+ </th></tr></thead>
178
+ <tbody><tr><td>
179
+
180
+ id
181
+
182
+ </td><td>
183
+
184
+ string
185
+
186
+ </td><td>
187
+
188
+ Event ID, used to prevent duplicate event registration
189
+
190
+ </td></tr>
191
+ <tr><td>
192
+
193
+ callFn
194
+
195
+ </td><td>
196
+
197
+ (props: any) =&gt; void \| Promise&lt;void&gt;
198
+
199
+ </td><td>
200
+
201
+ The callback function triggered when the event fires
202
+
203
+ </td></tr>
204
+ </tbody></table>
205
+
206
+ ## Returns
207
+
208
+ void
209
+
210
+ ## Remarks
211
+
212
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error`
213
+
214
+ ## Example
215
+
216
+ ```javascript
217
+ const listenerId = '嘉立创示例_cross_probe';
218
+
219
+ // 1. 注册交叉选择事件监听(回调在用户执行交叉选中时触发,本例不依赖实际触发)
220
+ eda.pcb_Event.addCrossProbeSelectEventListener(listenerId, (props) => {
221
+ console.log('crossProbeSelect:', JSON.stringify(props));
222
+ });
223
+
224
+ // 2. 回读确认注册成功(同 id 重复注册会被防重机制忽略)
225
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
226
+ console.log('registered:', registered);
227
+
228
+ // 3. 清理监听
229
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
230
+ console.log('removed:', removed);
231
+ ```
232
+
233
+ ### addimageeventlistener
234
+
235
+ # PCB\_Event.addImageEventListener() method
236
+
237
+ > 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.
238
+
239
+ > Warning: This API is now obsolete.
240
+ >
241
+ > 临时接口(插入图片 PCB 迁移打通流程用):统一事件机制落地后替换,请尽快迁移,勿在新功能中继续依赖
242
+
243
+ 新增插入图片事件监听
244
+
245
+ ## Signature
246
+
247
+ ```typescript
248
+ function addImageEventListener(
249
+ id: string,
250
+ callFn: (message: { file?: File; source: 'toolbar' | 'paste' }) => void | Promise<void>,
251
+ ): boolean;
252
+ ```
253
+
254
+ ## Parameters
255
+
256
+ <table><thead><tr><th>
257
+
258
+ Parameter
259
+
260
+ </th><th>
261
+
262
+ Type
263
+
264
+ </th><th>
265
+
266
+ Description
267
+
268
+ </th></tr></thead>
269
+ <tbody><tr><td>
270
+
271
+ id
272
+
273
+ </td><td>
274
+
275
+ string
276
+
277
+ </td><td>
278
+
279
+ 事件 ID,用于防止重复注册(内部自动加扩展 uuid 前缀)
280
+
281
+ </td></tr>
282
+ <tr><td>
283
+
284
+ callFn
285
+
286
+ </td><td>
287
+
288
+ (message: { file?: File; source: 'toolbar' \| 'paste' }) =&gt; void \| Promise&lt;void&gt;
289
+
290
+ </td><td>
291
+
292
+ 事件触发时的回调,接收 pro-ui 触发的放置图片请求
293
+
294
+ </td></tr>
295
+ </tbody></table>
296
+
297
+ ## Returns
298
+
299
+ boolean
300
+
301
+ 是否注册成功
302
+
303
+ ## Remarks
304
+
305
+ ADD since EDA v5
306
+
307
+ ### addmouseeventlistener
308
+
309
+ # PCB\_Event.addMouseEventListener() method
310
+
311
+ > 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.
312
+
313
+ Add a mouse event listener
314
+
315
+ ## Signature
316
+
317
+ ```typescript
318
+ function addMouseEventListener(
319
+ id: string,
320
+ eventType: 'all' | EPCB_MouseEventType,
321
+ callFn: (
322
+ eventType: EPCB_MouseEventType,
323
+ props: [
324
+ {
325
+ primitiveId: string;
326
+ primitiveType: EPCB_PrimitiveType;
327
+ net?: string;
328
+ designator?: string;
329
+ parentComponentPrimitiveId?: string;
330
+ parentComponentDesignator?: string;
331
+ },
332
+ ],
333
+ ) => void | Promise<void>,
334
+ onlyOnce?: boolean,
335
+ ): void;
336
+ ```
337
+
338
+ ## Parameters
339
+
340
+ <table><thead><tr><th>
341
+
342
+ Parameter
343
+
344
+ </th><th>
345
+
346
+ Type
347
+
348
+ </th><th>
349
+
350
+ Description
351
+
352
+ </th></tr></thead>
353
+ <tbody><tr><td>
354
+
355
+ id
356
+
357
+ </td><td>
358
+
359
+ string
360
+
361
+ </td><td>
362
+
363
+ Event ID, used to prevent duplicate event registration
364
+
365
+ </td></tr>
366
+ <tr><td>
367
+
368
+ eventType
369
+
370
+ </td><td>
371
+
372
+ 'all' \| [EPCB\_MouseEventType](../enums/EPCB_MouseEventType.md)
373
+
374
+ </td><td>
375
+
376
+ Event type
377
+
378
+ </td></tr>
379
+ <tr><td>
380
+
381
+ callFn
382
+
383
+ </td><td>
384
+
385
+ (eventType: [EPCB\_MouseEventType](../enums/EPCB_MouseEventType.md)<!-- -->, props: \[{ primitiveId: string; primitiveType: [EPCB\_PrimitiveType](../enums/EPCB_PrimitiveType.md)<!-- -->; net?: string; designator?: string; parentComponentPrimitiveId?: string; parentComponentDesignator?: string }\]) =&gt; void \| Promise&lt;void&gt;
386
+
387
+ </td><td>
388
+
389
+ The callback function triggered when the event fires
390
+
391
+ </td></tr>
392
+ <tr><td>
393
+
394
+ onlyOnce
395
+
396
+ </td><td>
397
+
398
+ boolean
399
+
400
+ </td><td>
401
+
402
+ _(Optional)_ Whether to listen only once
403
+
404
+ </td></tr>
405
+ </tbody></table>
406
+
407
+ ## Returns
408
+
409
+ void
410
+
411
+ ## Remarks
412
+
413
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error`
414
+
415
+ ## Example
416
+
417
+ ```javascript
418
+ const listenerId = '嘉立创示例_mouse_event';
419
+
420
+ // 1. 注册鼠标事件监听,eventType 用 'all' 接收全部鼠标事件,onlyOnce 为 false 持续监听
421
+ eda.pcb_Event.addMouseEventListener(
422
+ listenerId,
423
+ 'all',
424
+ (eventType, props) => {
425
+ // 回调在用户画布操作时触发;props 是命中图元的信息数组
426
+ console.log('mouseEvent:', eventType, JSON.stringify(props));
427
+ },
428
+ false
429
+ );
430
+
431
+ // 2. 回读确认注册成功
432
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
433
+ console.log('registered:', registered);
434
+
435
+ // 3. 清理监听
436
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
437
+ console.log('removed:', removed);
438
+ ```
439
+
440
+ ### addneteventlistener
441
+
442
+ # PCB\_Event.addNetEventListener() method
443
+
444
+ > 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.
445
+
446
+ Add a net event listener
447
+
448
+ ## Signature
449
+
450
+ ```typescript
451
+ function addNetEventListener(
452
+ id: string,
453
+ eventType: 'all' | EPCB_NetEventType,
454
+ callFn: (eventType: EPCB_NetEventType, props: [{ net: string }]) => void | Promise<void>,
455
+ onlyOnce?: boolean,
456
+ ): void;
457
+ ```
458
+
459
+ ## Parameters
460
+
461
+ <table><thead><tr><th>
462
+
463
+ Parameter
464
+
465
+ </th><th>
466
+
467
+ Type
468
+
469
+ </th><th>
470
+
471
+ Description
472
+
473
+ </th></tr></thead>
474
+ <tbody><tr><td>
475
+
476
+ id
477
+
478
+ </td><td>
479
+
480
+ string
481
+
482
+ </td><td>
483
+
484
+ Event ID, used to prevent duplicate event registration
485
+
486
+ </td></tr>
487
+ <tr><td>
488
+
489
+ eventType
490
+
491
+ </td><td>
492
+
493
+ 'all' \| [EPCB\_NetEventType](../enums/EPCB_NetEventType.md)
494
+
495
+ </td><td>
496
+
497
+ Event type
498
+
499
+ </td></tr>
500
+ <tr><td>
501
+
502
+ callFn
503
+
504
+ </td><td>
505
+
506
+ (eventType: [EPCB\_NetEventType](../enums/EPCB_NetEventType.md)<!-- -->, props: \[{ net: string }\]) =&gt; void \| Promise&lt;void&gt;
507
+
508
+ </td><td>
509
+
510
+ The callback function triggered when the event fires
511
+
512
+ </td></tr>
513
+ <tr><td>
514
+
515
+ onlyOnce
516
+
517
+ </td><td>
518
+
519
+ boolean
520
+
521
+ </td><td>
522
+
523
+ _(Optional)_ Whether to listen only once
524
+
525
+ </td></tr>
526
+ </tbody></table>
527
+
528
+ ## Returns
529
+
530
+ void
531
+
532
+ ## Remarks
533
+
534
+ Net select event only
535
+
536
+ 1. When the net option is selected in the filter panel and a net is selected on the canvas
537
+
538
+ 2. When a net is selected in Engineering Design -<!-- -->&gt; Nets
539
+
540
+ the event will be triggered
541
+
542
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error`
543
+
544
+ ## Example
545
+
546
+ ```javascript
547
+ const listenerId = '嘉立创示例_net_event';
548
+
549
+ // 1. 注册网络事件监听,eventType 用 'all' 接收全部网络事件
550
+ eda.pcb_Event.addNetEventListener(
551
+ listenerId,
552
+ 'all',
553
+ (eventType, props) => {
554
+ // 回调在网络选中变化时触发;props 是网络信息数组
555
+ console.log('netEvent:', eventType, JSON.stringify(props));
556
+ },
557
+ false
558
+ );
559
+
560
+ // 2. 回读确认注册成功
561
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
562
+ console.log('registered:', registered);
563
+
564
+ // 3. 清理监听
565
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
566
+ console.log('removed:', removed);
567
+ ```
568
+
569
+ ### addprimitiveeventlistener
570
+
571
+ # PCB\_Event.addPrimitiveEventListener() method
572
+
573
+ > 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.
574
+
575
+ Add a primitive event listener
576
+
577
+ ## Signature
578
+
579
+ ```typescript
580
+ function addPrimitiveEventListener(
581
+ id: string,
582
+ eventType: 'all' | EPCB_PrimitiveEventType,
583
+ callFn: (
584
+ eventType: EPCB_PrimitiveEventType,
585
+ props: [
586
+ {
587
+ primitiveId: string;
588
+ primitiveType: EPCB_PrimitiveType;
589
+ net?: string;
590
+ designator?: string;
591
+ parentComponentPrimitiveId?: string;
592
+ parentComponentDesignator?: string;
593
+ },
594
+ ],
595
+ ) => void | Promise<void>,
596
+ onlyOnce?: boolean,
597
+ ): void;
598
+ ```
599
+
600
+ ## Parameters
601
+
602
+ <table><thead><tr><th>
603
+
604
+ Parameter
605
+
606
+ </th><th>
607
+
608
+ Type
609
+
610
+ </th><th>
611
+
612
+ Description
613
+
614
+ </th></tr></thead>
615
+ <tbody><tr><td>
616
+
617
+ id
618
+
619
+ </td><td>
620
+
621
+ string
622
+
623
+ </td><td>
624
+
625
+ Event ID, used to prevent duplicate event registration
626
+
627
+ </td></tr>
628
+ <tr><td>
629
+
630
+ eventType
631
+
632
+ </td><td>
633
+
634
+ 'all' \| [EPCB\_PrimitiveEventType](../enums/EPCB_PrimitiveEventType.md)
635
+
636
+ </td><td>
637
+
638
+ Event type
639
+
640
+ </td></tr>
641
+ <tr><td>
642
+
643
+ callFn
644
+
645
+ </td><td>
646
+
647
+ (eventType: [EPCB\_PrimitiveEventType](../enums/EPCB_PrimitiveEventType.md)<!-- -->, props: \[{ primitiveId: string; primitiveType: [EPCB\_PrimitiveType](../enums/EPCB_PrimitiveType.md)<!-- -->; net?: string; designator?: string; parentComponentPrimitiveId?: string; parentComponentDesignator?: string }\]) =&gt; void \| Promise&lt;void&gt;
648
+
649
+ </td><td>
650
+
651
+ The callback function triggered when the event fires
652
+
653
+ </td></tr>
654
+ <tr><td>
655
+
656
+ onlyOnce
657
+
658
+ </td><td>
659
+
660
+ boolean
661
+
662
+ </td><td>
663
+
664
+ _(Optional)_ Whether to listen only once
665
+
666
+ </td></tr>
667
+ </tbody></table>
668
+
669
+ ## Returns
670
+
671
+ void
672
+
673
+ ## Remarks
674
+
675
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error`
676
+
677
+ ## Example
678
+
679
+ ```javascript
680
+ const listenerId = '嘉立创示例_primitive_event';
681
+ const events = [];
682
+
683
+ // 1. 注册图元事件监听,eventType 用 'all' 接收全部图元事件
684
+ eda.pcb_Event.addPrimitiveEventListener(
685
+ listenerId,
686
+ 'all',
687
+ (eventType, props) => {
688
+ events.push({ eventType, primitiveType: props?.[0]?.primitiveType });
689
+ },
690
+ false
691
+ );
692
+
693
+ // 2. 创建一个测试焊盘,触发图元 add 事件
694
+ const pad = await eda.pcb_PrimitivePad.create(1, '1', 5000, 3000, 0, ['ELLIPSE', 60, 60], '', null, 0, 0, 0, false, 0);
695
+ await new Promise(r => setTimeout(r, 500));
696
+
697
+ // 3. 删除测试焊盘,再触发一次图元删除事件(同时清理测试图元)
698
+ await eda.pcb_PrimitivePad.delete([pad.getState_PrimitiveId()]);
699
+ await new Promise(r => setTimeout(r, 500));
700
+
701
+ // 4. 观察两次操作分别触发的事件
702
+ console.log('events:', JSON.stringify(events));
703
+
704
+ // 5. 清理监听
705
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
706
+ console.log('removed:', removed);
707
+ ```
708
+
709
+ ### addraytracerengine3dviewcamerachangeeventlistener
710
+
711
+ # PCB\_Event.addRayTracerEngine3DViewCameraChangeEventListener() method
712
+
713
+ > 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.
714
+
715
+ Add a ray tracer engine 3D preview camera change (dragging the 3D model) event listener
716
+
717
+ ## Signature
718
+
719
+ ```typescript
720
+ function addRayTracerEngine3DViewCameraChangeEventListener(
721
+ id: string,
722
+ callFn: (props: {
723
+ position: { x: number; y: number; z: number };
724
+ rotation: { x: number; y: number; z: number };
725
+ focalLength: number;
726
+ }) => void | Promise<void>,
727
+ onlyOnce?: boolean,
728
+ ): void;
729
+ ```
730
+
731
+ ## Parameters
732
+
733
+ <table><thead><tr><th>
734
+
735
+ Parameter
736
+
737
+ </th><th>
738
+
739
+ Type
740
+
741
+ </th><th>
742
+
743
+ Description
744
+
745
+ </th></tr></thead>
746
+ <tbody><tr><td>
747
+
748
+ id
749
+
750
+ </td><td>
751
+
752
+ string
753
+
754
+ </td><td>
755
+
756
+ Event ID, used to prevent duplicate event registration
757
+
758
+ </td></tr>
759
+ <tr><td>
760
+
761
+ callFn
762
+
763
+ </td><td>
764
+
765
+ (props: { position: { x: number; y: number; z: number }; rotation: { x: number; y: number; z: number }; focalLength: number }) =&gt; void \| Promise&lt;void&gt;
766
+
767
+ </td><td>
768
+
769
+ The callback function triggered when the event fires
770
+
771
+ </td></tr>
772
+ <tr><td>
773
+
774
+ onlyOnce
775
+
776
+ </td><td>
777
+
778
+ boolean
779
+
780
+ </td><td>
781
+
782
+ _(Optional)_ Whether to listen only once
783
+
784
+ </td></tr>
785
+ </tbody></table>
786
+
787
+ ## Returns
788
+
789
+ void
790
+
791
+ ## Remarks
792
+
793
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error` ADD since EDA v4
794
+
795
+ ## Example
796
+
797
+ ```javascript
798
+ const listenerId = '嘉立创示例_3d_camera';
799
+
800
+ // 1. 注册相机变动监听(回调在 3D 预览拖动时触发,本例不依赖实际触发)
801
+ eda.pcb_Event.addRayTracerEngine3DViewCameraChangeEventListener(
802
+ listenerId,
803
+ (props) => {
804
+ console.log('cameraChange:', JSON.stringify(props));
805
+ }
806
+ );
807
+
808
+ // 2. 回读确认注册成功
809
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
810
+ console.log('registered:', registered);
811
+
812
+ // 3. 清理监听
813
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
814
+ console.log('removed:', removed);
815
+ ```
816
+
817
+ ### addraytracerengine3dviewclickmaterialeventlistener
818
+
819
+ # PCB\_Event.addRayTracerEngine3DViewClickMaterialEventListener() method
820
+
821
+ > 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.
822
+
823
+ Add a ray tracer engine 3D preview material click event listener
824
+
825
+ ## Signature
826
+
827
+ ```typescript
828
+ function addRayTracerEngine3DViewClickMaterialEventListener(
829
+ id: string,
830
+ callFn: (props: { materialId: number; material: any }) => void | Promise<void>,
831
+ onlyOnce?: boolean,
832
+ ): void;
833
+ ```
834
+
835
+ ## Parameters
836
+
837
+ <table><thead><tr><th>
838
+
839
+ Parameter
840
+
841
+ </th><th>
842
+
843
+ Type
844
+
845
+ </th><th>
846
+
847
+ Description
848
+
849
+ </th></tr></thead>
850
+ <tbody><tr><td>
851
+
852
+ id
853
+
854
+ </td><td>
855
+
856
+ string
857
+
858
+ </td><td>
859
+
860
+ Event ID, used to prevent duplicate event registration
861
+
862
+ </td></tr>
863
+ <tr><td>
864
+
865
+ callFn
866
+
867
+ </td><td>
868
+
869
+ (props: { materialId: number; material: any }) =&gt; void \| Promise&lt;void&gt;
870
+
871
+ </td><td>
872
+
873
+ The callback function triggered when the event fires
874
+
875
+ </td></tr>
876
+ <tr><td>
877
+
878
+ onlyOnce
879
+
880
+ </td><td>
881
+
882
+ boolean
883
+
884
+ </td><td>
885
+
886
+ _(Optional)_ Whether to listen only once
887
+
888
+ </td></tr>
889
+ </tbody></table>
890
+
891
+ ## Returns
892
+
893
+ void
894
+
895
+ ## Remarks
896
+
897
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error` ADD since EDA v4
898
+
899
+ ## Example
900
+
901
+ ```javascript
902
+ const listenerId = '嘉立创示例_3d_material';
903
+
904
+ // 1. 注册点击材质监听(回调在 3D 预览点击材质时触发,本例不依赖实际触发)
905
+ eda.pcb_Event.addRayTracerEngine3DViewClickMaterialEventListener(
906
+ listenerId,
907
+ (props) => {
908
+ console.log('clickMaterial:', JSON.stringify(props));
909
+ }
910
+ );
911
+
912
+ // 2. 回读确认注册成功
913
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
914
+ console.log('registered:', registered);
915
+
916
+ // 3. 清理监听
917
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
918
+ console.log('removed:', removed);
919
+ ```
920
+
921
+ ### addrealtimedrcresulteventlistener
922
+
923
+ # PCB\_Event.addRealTimeDrcResultEventListener() method
924
+
925
+ > 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.
926
+
927
+ Add a real-time DRC result event listener
928
+
929
+ ## Signature
930
+
931
+ ```typescript
932
+ function addRealTimeDrcResultEventListener(
933
+ id: string,
934
+ eventType: 'all',
935
+ callFn: (eventType: undefined, props: [{ drcResult: any }]) => void | Promise<void>,
936
+ ): void;
937
+ ```
938
+
939
+ ## Parameters
940
+
941
+ <table><thead><tr><th>
942
+
943
+ Parameter
944
+
945
+ </th><th>
946
+
947
+ Type
948
+
949
+ </th><th>
950
+
951
+ Description
952
+
953
+ </th></tr></thead>
954
+ <tbody><tr><td>
955
+
956
+ id
957
+
958
+ </td><td>
959
+
960
+ string
961
+
962
+ </td><td>
963
+
964
+ Event ID, used to prevent duplicate event registration
965
+
966
+ </td></tr>
967
+ <tr><td>
968
+
969
+ eventType
970
+
971
+ </td><td>
972
+
973
+ 'all'
974
+
975
+ </td><td>
976
+
977
+ Event type
978
+
979
+ </td></tr>
980
+ <tr><td>
981
+
982
+ callFn
983
+
984
+ </td><td>
985
+
986
+ (eventType: undefined, props: \[{ drcResult: any }\]) =&gt; void \| Promise&lt;void&gt;
987
+
988
+ </td><td>
989
+
990
+ The callback function triggered when the event fires
991
+
992
+ </td></tr>
993
+ </tbody></table>
994
+
995
+ ## Returns
996
+
997
+ void
998
+
999
+ ## Remarks
1000
+
1001
+ Note: This API is only valid for extensions. Calling it in a standalone script environment will always `throw Error`
1002
+
1003
+ ## Example
1004
+
1005
+ ```javascript
1006
+ const listenerId = '嘉立创示例_drc_result';
1007
+
1008
+ // 1. 注册实时 DRC 结果监听,eventType 固定为 'all'
1009
+ eda.pcb_Event.addRealTimeDrcResultEventListener(
1010
+ listenerId,
1011
+ 'all',
1012
+ (eventType, props) => {
1013
+ // 回调在实时 DRC 检出违规时触发;props 是 DRC 结果数组
1014
+ console.log('drcResult:', JSON.stringify(props));
1015
+ }
1016
+ );
1017
+
1018
+ // 2. 回读确认注册成功
1019
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
1020
+ console.log('registered:', registered);
1021
+
1022
+ // 3. 清理监听
1023
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
1024
+ console.log('removed:', removed);
1025
+ ```
1026
+
1027
+ ### iseventlisteneralreadyexist
1028
+
1029
+ # PCB\_Event.isEventListenerAlreadyExist() method
1030
+
1031
+ Query whether the event listener exists
1032
+
1033
+ ## Signature
1034
+
1035
+ ```typescript
1036
+ function isEventListenerAlreadyExist(id: string): boolean;
1037
+ ```
1038
+
1039
+ ## Parameters
1040
+
1041
+ <table><thead><tr><th>
1042
+
1043
+ Parameter
1044
+
1045
+ </th><th>
1046
+
1047
+ Type
1048
+
1049
+ </th><th>
1050
+
1051
+ Description
1052
+
1053
+ </th></tr></thead>
1054
+ <tbody><tr><td>
1055
+
1056
+ id
1057
+
1058
+ </td><td>
1059
+
1060
+ string
1061
+
1062
+ </td><td>
1063
+
1064
+ Event ID
1065
+
1066
+ </td></tr>
1067
+ </tbody></table>
1068
+
1069
+ ## Returns
1070
+
1071
+ boolean
1072
+
1073
+ Whether the event listener exists
1074
+
1075
+ ## Example
1076
+
1077
+ ```javascript
1078
+ const listenerId = '嘉立创示例_event_exist';
1079
+
1080
+ // 1. 注册前查询:应为 false
1081
+ const before = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
1082
+ console.log('before:', before);
1083
+
1084
+ // 2. 注册一个鼠标事件监听使 id 生效
1085
+ eda.pcb_Event.addMouseEventListener(listenerId, 'all', () => {}, false);
1086
+
1087
+ // 3. 注册后查询:应为 true
1088
+ const after = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
1089
+ console.log('after:', after);
1090
+
1091
+ // 4. 移除后查询:应回到 false
1092
+ eda.pcb_Event.removeEventListener(listenerId);
1093
+ const afterRemove = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
1094
+ console.log('afterRemove:', afterRemove);
1095
+ ```
1096
+
1097
+ ### removeeventlistener
1098
+
1099
+ # PCB\_Event.removeEventListener() method
1100
+
1101
+ Remove Event listener
1102
+
1103
+ ## Signature
1104
+
1105
+ ```typescript
1106
+ function removeEventListener(id: string): boolean;
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
+ id
1127
+
1128
+ </td><td>
1129
+
1130
+ string
1131
+
1132
+ </td><td>
1133
+
1134
+ Event ID
1135
+
1136
+ </td></tr>
1137
+ </tbody></table>
1138
+
1139
+ ## Returns
1140
+
1141
+ boolean
1142
+
1143
+ Whether Remove Specify event listener
1144
+
1145
+ ## Example
1146
+
1147
+ ```javascript
1148
+ const listenerId = '嘉立创示例_event_remove';
1149
+
1150
+ // 1. 先注册一个鼠标事件监听作为移除目标
1151
+ eda.pcb_Event.addMouseEventListener(listenerId, 'all', () => {}, false);
1152
+ const registered = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
1153
+ console.log('registered:', registered);
1154
+
1155
+ // 2. 移除该监听
1156
+ const removed = eda.pcb_Event.removeEventListener(listenerId);
1157
+ console.log('removed:', removed);
1158
+
1159
+ // 3. 回读确认已不存在
1160
+ const existAfter = eda.pcb_Event.isEventListenerAlreadyExist(listenerId);
1161
+ console.log('existAfter:', existAfter);
1162
+
1163
+ // 4. 重复移除同一 id:返回 false(本就未注册)
1164
+ const removedAgain = eda.pcb_Event.removeEventListener(listenerId);
1165
+ console.log('removedAgain:', removedAgain);
1166
+ ```