Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

是否可以提供一些使用例程呢? #3

Open
itldg opened this issue Sep 20, 2024 · 23 comments
Open

是否可以提供一些使用例程呢? #3

itldg opened this issue Sep 20, 2024 · 23 comments
Assignees
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@itldg
Copy link

itldg commented Sep 20, 2024

想自行开发一个扩展插件
可以实现元件和边框的绑定关系,自己计算开孔尺寸和距离等

希望在弹窗中可以实现一个类似图层管理一样,添加删除 盖板

选择某个盖板后可以选择某个元件和某个边框的绑定关系

目前下载了SDK可以正常编译导入

如何实现在弹窗中调用eda的内容?

弹窗中是否可以使用eda样式的文本,表格,tab等

@yanranxiaoxi yanranxiaoxi added enhancement New feature or request good first issue Good for newcomers labels Sep 20, 2024
@yanranxiaoxi
Copy link
Member

使用例程是我们开发的下一个目标,在有空余开发资源后会进行编写。
现在我们内部有使用扩展实现许多功能,后续会将这些官方扩展作为例程开源提供。

IFrame 中可以直接使用 eda 对象进行调用。

IFrame 当前是完整的独立 HTML 页面,而不是以控件的形式,可自定义性更高,但没有办法自动套用 EDA 默认的样式,这是我们对当前功能复杂度方面的取舍。

@itldg
Copy link
Author

itldg commented Sep 20, 2024

我有测试,在IFrame 写代码

console.log('[DEBUG] eda:', eda);

Uncaught ReferenceError: eda is not defined

@itldg
Copy link
Author

itldg commented Sep 21, 2024

在框架中我未能获取到 eda 的对象

另外想咨询下,是否可以在PCB中获取 矩形图元

@yanranxiaoxi
Copy link
Member

我有测试,在IFrame 写代码

console.log('[DEBUG] eda:', eda);

Uncaught ReferenceError: eda is not defined

当前框架内的 eda 对象在初始化时并未加载,是在初始化之后的时刻加载的,
你可以尝试循环等待其加载后再开始后续调用

@itldg
Copy link
Author

itldg commented Sep 23, 2024

我有测试,在IFrame 写代码

console.log('[DEBUG] eda:', eda);

Uncaught ReferenceError: eda is not defined

当前框架内的 eda 对象在初始化时并未加载,是在初始化之后的时刻加载的, 你可以尝试循环等待其加载后再开始后续调用

感谢指导,今天验证了下,获取正常了,接下来等一等 PCB中获取 矩形图元,预计这个要多久会发布API呢

@itldg
Copy link
Author

itldg commented Sep 23, 2024

在 IFrame 是否可以引入其它JS和CSS呢?

比如使用Vue编译的结果放在IFrame中是否可行呢?

@yanranxiaoxi
Copy link
Member

@itldg 要绘制矩形,你可以使用折线图元,为其传入包含矩形 TPCB_PolygonSourceArray 的 IPCB_Polygon 对象

@yanranxiaoxi yanranxiaoxi self-assigned this Oct 29, 2024
@Sheepfan0828
Copy link

使用例程是我们开发的下一个目标,在有空余开发资源后会进行编写。 现在我们内部有使用扩展实现许多功能,后续会将这些官方扩展作为例程开源提供。

IFrame 中可以直接使用 eda 对象进行调用。

IFrame 当前是完整的独立 HTML 页面,而不是以控件的形式,可自定义性更高,但没有办法自动套用 EDA 默认的样式,这是我们对当前功能复杂度方面的取舍。

问下IFRAME如何打开?

@itldg
Copy link
Author

itldg commented Dec 13, 2024

使用例程是我们开发的下一个目标,在有空余开发资源后会进行编写。 现在我们内部有使用扩展实现许多功能,后续会将这些官方扩展作为例程开源提供。
IFrame 中可以直接使用 eda 对象进行调用。
IFrame 当前是完整的独立 HTML 页面,而不是以控件的形式,可自定义性更高,但没有办法自动套用 EDA 默认的样式,这是我们对当前功能复杂度方面的取舍。

问下IFRAME如何打开?

eda.sys_IFrame.openIFrame('/iframe/index.html', 500, 500);

@Sheepfan0828
Copy link

使用例程是我们开发的下一个目标,在有空余开发资源后会进行编写。 现在我们内部有使用扩展实现许多功能,后续会将这些官方扩展作为例程开源提供。
IFrame 中可以直接使用 eda 对象进行调用。
IFrame 当前是完整的独立 HTML 页面,而不是以控件的形式,可自定义性更高,但没有办法自动套用 EDA 默认的样式,这是我们对当前功能复杂度方面的取舍。

问下IFRAME如何打开?

eda.sys_IFrame.openIFrame('/iframe/index.html', 500, 500);
这个是在哪里运行呢?

@itldg
Copy link
Author

itldg commented Dec 13, 2024

https://prodocs.lceda.cn/cn/api/guide/inline-frame.html
有文档可以学习的

@Sheepfan0828
Copy link

https://prodocs.lceda.cn/cn/api/guide/inline-frame.html 有文档可以学习的

我的意思是这个在哪个地方跑?是在教程里的入口代码文件里面吗?

@Sheepfan0828
Copy link

我在入口文件.src/index.ts里面跑这个 没有办法获取eda实例 但是代码编写的时候先写eda然后后面加个‘.' 然后还能正常弹出eda里面的类。
屏幕截图 2024-12-13 153042

https://prodocs.lceda.cn/cn/api/guide/inline-frame.html 有文档可以学习的

@itldg
Copy link
Author

itldg commented Dec 13, 2024

// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function activate(status?: 'onStartupFinished', arg?: string): void {
console.log(extensionConfig.displayName, "激活", status, arg);
}

写在这里呢

@Sheepfan0828
Copy link

Sheepfan0828 commented Dec 13, 2024

// eslint-disable-next-line @typescript-eslint/no-unused-vars export function activate(status?: 'onStartupFinished', arg?: string): void { console.log(extensionConfig.displayName, "激活", status, arg); }

写在这里呢

写在这里还是说找不到eda


/**
 * 入口文件
 *
 * 本文件为默认扩展入口文件,如果你想要配置其它文件作为入口文件�?
 * 请修�? `extension.json` 中的 `entry` 字段�?
 *
 * 请在此处使用 `export`  导出所有你希望�? `headerMenus` 中引用的方法�?
 * 方法通过方法名与 `headerMenus` 关联�?
 *
 * 如需了解更多开发细节,请阅读:
 * https://prodocs.lceda.cn/cn/api/guide/
 */
import * as extensionConfig from '../extension.json';

// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function activate(status?: 'onStartupFinished', arg?: string): void {
	eda.sys_IFrame.openIFrame('/iframe/index.html', 500, 500);
}

export function about(): void {
	eda.sys_MessageBox.showInformationMessage(
		eda.sys_I18n.text('EasyEDA extension SDK v', undefined, undefined, extensionConfig.version),
		eda.sys_I18n.text('About'),
	);
}

下面是错误信息

$ npx ts-node ./src/index.ts
D:\jlceda-extension\pro-api-sdk\node_modules\ts-node\src\index.ts:859
    return new TSError(diagnosticText, diagnosticCodes, diagnostics);
           ^
TSError: ⨯ Unable to compile TypeScript:
src/index.ts:18:2 - error TS2304: Cannot find name 'eda'.

18  eda.sys_IFrame.openIFrame('/iframe/index.html', 500, 500);
    ~~~
src/index.ts:22:2 - error TS2304: Cannot find name 'eda'.

22  eda.sys_MessageBox.showInformationMessage(
    ~~~
src/index.ts:23:3 - error TS2304: Cannot find name 'eda'.

23   eda.sys_I18n.text('EasyEDA extension SDK v', undefined, undefined, extensionConfig.version),
     ~~~
src/index.ts:24:3 - error TS2304: Cannot find name 'eda'.

24   eda.sys_I18n.text('About'),
     ~~~

    at createTSError (D:\jlceda-extension\pro-api-sdk\node_modules\ts-node\src\index.ts:859:12)
    at reportTSError (D:\jlceda-extension\pro-api-sdk\node_modules\ts-node\src\index.ts:863:19)
    at getOutput (D:\jlceda-extension\pro-api-sdk\node_modules\ts-node\src\index.ts:1077:36)
    at Object.compile (D:\jlceda-extension\pro-api-sdk\node_modules\ts-node\src\index.ts:1433:41)
    at Module.m._compile (D:\jlceda-extension\pro-api-sdk\node_modules\ts-node\src\index.ts:1617:30)
    at node:internal/modules/cjs/loader:1718:10
    at Object.require.extensions.<computed> [as .ts] (D:\jlceda-extension\pro-api-sdk\node_modules\ts-node\src\index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:1305:32)
    at Function._load (node:internal/modules/cjs/loader:1119:12)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14) {
  diagnosticCodes: [ 2304, 2304, 2304, 2304 ]
}

@yanranxiaoxi
Copy link
Member

在 IFrame 是否可以引入其它JS和CSS呢?

比如使用Vue编译的结果放在IFrame中是否可行呢?

现在扩展的加载逻辑已经调整。eda 的注入阶段已经在页面加载之前。

引用 JS 和 CSS 也已就绪。

@itldg
Copy link
Author

itldg commented Dec 23, 2024

在 IFrame 是否可以引入其它JS和CSS呢?
比如使用Vue编译的结果放在IFrame中是否可行呢?

现在扩展的加载逻辑已经调整。eda 的注入阶段已经在页面加载之前。

引用 JS 和 CSS 也已就绪。

好的,有机会我再来试试

@itldg
Copy link
Author

itldg commented Dec 23, 2024

在 IFrame 是否可以引入其它JS和CSS呢?
比如使用Vue编译的结果放在IFrame中是否可行呢?

现在扩展的加载逻辑已经调整。eda 的注入阶段已经在页面加载之前。

引用 JS 和 CSS 也已就绪。

已测试,很棒,可以引入Vue的编译结果了,框架如果去除边框会更美观一些

边框

美化

@yanranxiaoxi
Copy link
Member

yanranxiaoxi commented Dec 23, 2024

16px 的边缘在新版本已经移除了,你指的具体是哪个边框呢?

@itldg
Copy link
Author

itldg commented Dec 23, 2024

16px 的边缘在新版本已经移除了,你值的具体是哪个边框呢

就是这16px的边框

我目前用的在线版测试的

版本 :V2.2.34.5
编译日期 :2024-12-17

@yanranxiaoxi
Copy link
Member

yanranxiaoxi commented Dec 23, 2024

奇怪,在 2.2.34.5 应该已经移除它了 ...

我测试没有这个边框。你有可以复现的扩展吗?

@itldg
Copy link
Author

itldg commented Dec 23, 2024

奇怪,在 2.2.34.5 应该已经移除它了 ...

image

@itldg
Copy link
Author

itldg commented Dec 23, 2024

image

这个单位是如何转换的呢?

如果用户输入1mm,需要eda.sys_Unit.mmToMil(1, 5)/10 这样去转换么?

另外就是线条是否可以直接改长度?矩形直接修改宽高?

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants