这里怎么写才能正确打开cad呢?
请教一下前辈们,这里怎么写才对?有哪里有Aardio开发CAD的基础教程呢?只能搞com,那是没有好结果的 你有种再说一遍 发表于 2024-6-22 10:52
只能搞com,那是没有好结果的
也只能com,想着写界面走捷径. 2283785532024-6-22 11:27
也只能com,想着写界面走捷径.
学c#啊,WPF那么多东西学,winform也很快啊 你有种再说一遍 发表于 2024-6-22 14:47
学c#啊,WPF那么多东西学,winform也很快啊
看来确实得学C#了,听说更容易上手 228378553 发表于 2024-6-22 15:08
看来确实得学C#了,听说更容易上手
关键是有ifox类库啊,前人写了那么多东西,你直接调用就好了 你有种再说一遍 发表于 2024-6-22 15:22
关键是有ifox类库啊,前人写了那么多东西,你直接调用就好了
从hello world开始了 本帖最后由 guangdonglbq 于 2024-6-26 10:48 编辑
1.运行范例前,需要先在ide里打开一个aardio项目
2.还不行,再检查安装了什么cad,是否是正常安装。
用了几年aardio做autocad的开发,还是比较方便的。
选择技术,建议以适合自己为依据。 本帖最后由 jacenhe 于 2024-6-27 09:23 编辑
1、COM 是很强大的技术,没有完美的东西,但凡事应多利用优点。
例如 WebView2 就是可以通过 COM 接口实现浏览器控件的跨进程通信,因此拥有卓越的性能与方便的开发接口。
很多时候技术没有优劣,怎么去使用才是最重要的。
2、为什么不能创建 COM 接口。
正常不会出现这种问题。
如果创建 COM 接口失败,检查一下是否没有正确安装 AutoCAD,或者使用了绿色阉割版。
3、哪里有 aardio 开发 AutoCAD 的教程。
aardio + AutoLISP 快速入门 (qq.com)
aardio 自带了很多调用 AutoCAD 的范例。
4、能调用 COM 不等于只能 COM。
不使用 COM 接口,混写 LISP 与 aardio 代码的示例。
import process;
import com.cad;
for hwnd in process.eachWindow( "@acad.exe" ) {
com.cad.sendCopyData(hwnd,`(print '<?={
{
{car=12,cdr=23},//LISP 点对
{1,2,3,path},//LISP 列表
{name="Tom",age=23},//LISP 关联列表
"来自 aardio代码的字符串",
123,
false,
true
}
}?>)`)
}
5、其实很简单,以实现多文件对话框为例。
在工程向导界面点选『窗口程序 / ActiveX EXE 』。
发布生成 EXE 文件,双击 EXE 注册控件(或调用 /r 命令行参数静默注册)。
然后在 AutoLISP 里就可以直接调用 aardio 编写的函数了( aardio 会自动生成下面的 AutoLISP 代码)。
(defun GetFiles (filter title / obj files)
(setq obj (vlax-get-or-create-object "aardioTestControl.Sample"))
(setq hwndOwner (itoa(vla-get-hwnd(vlax-get-acad-object))))
(setq files (vlax-invoke obj 'GetFiles filter title hwndOwner))
(vlax-release-object obj)
files
)
guangdonglbq 发表于 2024-6-26 09:58
1.运行范例前,需要先在ide里打开一个aardio项目
2.还不行,再检查安装了什么cad,是否是正常安装。
用了 ...
谢谢前辈,我再试试去
页:
[1]
2