Skip to content
New issue

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

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

Already on GitHub? Sign in 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 这样去转换么?

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in 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