@windypro-rourou/dsh-eda 0.1.4 → 0.1.6

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