乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 335|回复: 12

aardio以com方式开发autocad的库(补充智能提示)

[复制链接]

16

主题

48

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2021-8-28 17:02:00 | 显示全部楼层 |阅读模式
当前的aardio版本已含一个简单的开发库,但缺少智能提示,现予以补充。
    目前补充了智能提示功能的开发库,对写形如:acad.ActiveDocument.ActiveSpace.AddLine(StartPoint, EndPoint)这样,从acad程序到最终操作层的代码的情况,可以实现智能提示,但形如以下的代码,则未实现智能提示:
var  actModel=acad.ActiveDocument.ModelSpace;
               actModel.AddLine(pt1,pt2)
   未能确认是什么原因。
   现把补充了智能提示功能的开发库及相关整理的过程资料都发出来,有兴趣的朋友可以一起升级完善相关功能。
   2021年09月23日升级完善,有需要的朋友可重新下载。


压缩包中autocad.aardio即是成果文件。2021年09月23日修改
智能提示示例

rlxsa1gcywd.gif

rlxsa1gcywd.gif

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

0

主题

16

帖子

4

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-2-13 16:53:00 | 显示全部楼层

自动提示的代码里有些语法错误,例如 -> 只是用来转义 . 不能写到代码里。
另外智能提示变量是全局有效的,最好加上前缀避免冲突干扰,例 !Documents. 可能带来问题。
如果基于 com.cad 扩展,也可以这样写:
这样可以继承标准库所有的功能、同步更新,也可以任意修改扩展。
看了一下你代码里 GetAcCmColor 这几个函数是用不了的,
代码里不能用 -> 代替点,直接写 "AutoCAD.AcCmColor" 就可以。
而且他这个比较特别,必须加上版本号,com.cad 最新版本添加了一个 GetCadInterfaceObject 函数用于做这事。
然后 com.cad 添加了这几个函数:
测试了一下这样写就可以用了。
像 AutoCAD 这样复杂的接口,智能提示不能完全替代文档,如果把所有智能提示做起来工作量太大,建议加一些常用的就可以了。
回复

使用道具 举报

0

主题

16

帖子

4

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-4-19 15:05:00 | 显示全部楼层

非常感谢你反馈的意见,这些反馈非常有价值。
aardio 会重视并收集类似的反馈,如果确实有很多用户需要某个功能,我们会认重考虑这些需求并在后续继续努力改进。
aardio 整个开发环境只有几 MB,
如果要在 aardio 里找其他大型开发工具的一些特性,
这确实就像在自行车里找房车里的舒适零件大概率是找不到的。
目前运行检测错误仍然是一般桌面开发工具最主要的手段,
很多时候运行也不一定知道是不是写错了,所以软件发布以后还要不断的修改 BUG。
aardio 仍然尽可能地提供了方便的智能提示、同词高亮这些功能,排除一般的编写笔误并不难:

iundi1zwttf.gif

iundi1zwttf.gif

实际上更强大的编程语言、开发环境都可以用于 aardio 开发,aardio 可以方便地调用十余种编程语言。
例如 Python  肯定不缺强大的开发环境,但是 Google 一下 "Python + aardio" 可以找到很多文章分享了他们在用 aardio 编写软件界面去调用 Python 代码的愉快体验。
所以 aardio 一般不与其他开发工具对比,而是专注于更好地利用其他开发工具。
回复

使用道具 举报

0

主题

16

帖子

4

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-4-19 15:18:00 | 显示全部楼层

确实 aardio 打不过不计其数更强大的编程语言。
正是为了摆脱匹马打天下的模式,所以我们在十几年前就开始重视在 aardio 中调用并利用其他的编程语言。
目前在 aardio 中已经可以方便地调用C语言、C++、C#、Java、Python、R、Javascript、Node.Js、Fortran、VB、Flash ActionScript、PHP、VBScript、PowerShell、NewLISP、AutoLISP、Delphi、FreeBASIC、Ruby、Rust、Julia、Nim、Go 语言、批处理 ...... 并且还在继续增加。

v1t2f4y32i0.png

v1t2f4y32i0.png


回复

使用道具 举报

20

主题

245

帖子

12

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
326
发表于 2021-8-29 14:56:00 | 显示全部楼层
同一版本打开多个cad,指定特定cad的问题解决了吗?
回复

使用道具 举报

16

主题

48

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2021-8-29 15:44:00 | 显示全部楼层

我没偿试,只是有个想法:lisp调用时,想办法发送程序窗口句柄hwnd;在aardio中,通过hwnd调用autocad。不知道是否可行。
回复

使用道具 举报

20

主题

245

帖子

12

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
326
发表于 2021-8-29 21:28:00 | 显示全部楼层

那你可以研究一下。通过HWND是无法获取到com接口的。我尝试过通过ROT获取,但是这也是一条死路。这个问题aardio作者也回复过我,他的建议跟其他人一样:自己建立一个ROT,那就有点复杂而且不方便了。
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2021-11-5 09:48:00 | 显示全部楼层
想问一下 这个智能提示,支持vba自带的函数么
回复

使用道具 举报

16

主题

48

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2021-11-9 15:25:00 | 显示全部楼层

vba用的就com。
回复

使用道具 举报

2

主题

39

帖子

9

银币

初来乍到

Rank: 1

铜币
47
发表于 2021-11-15 11:52:00 | 显示全部楼层
aardio必须赞 国产语言的先锋,铁杆支持!。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 02:09 , Processed in 0.463264 second(s), 77 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表