关于访问方法和开发语言的选用

【作废】Inventor 二次开发学习指南入门到精通(含Inventor最新二次开发教程下载) 年初我曾撰写了一篇文章,登载到我同事的博客,以及AU中国。我想这篇作为本博客的第一篇正式技术文章,应该是最合适的,因此,贴于此,仅供参考: Inventor二次开发学习指南 作者:梁晓冬 – Autodesk开发技术顾问 Inventor作为Autodesk公司制造业旗舰产品,已经在三维领域得到了广泛的应用。许多国内开发者迫切想学习Inventor API,学习如何应用到专业领域。也有很 阅读详情

访问方法:

总的来说,任何Autodesk产品成熟的API,都包含三种访问方式:插件,独立的EXE和控件程序。

- 插件:是拓展产品能力的方式,其dll依附于宿主程序。这是Inventor API应用程序大量所使用的。甚至包括Autodesk前两年收购的CFDesign,它是基于Inventor的一个复杂高级应用,其中一些模块功能也是插件。在VB6年代,插件可以dll形式和exe形式,exe自然是和Inventor不在一个进程内。大部分用的是dll,和Inventor共处一个进程,获取最优的效率。
- 独立的EXE: 和Inventor不同进程,自然是效率上会逊色些。通常可能是因为需要有独立的界面,后台调用启动Inventor做处理(因为启动的Inventor进程可设置为不可见),例如批量的出图,打印,访问模型数据分析。这样甚至可以设置计划任务,定期调用exe程序,执行相应的工作。这里需要注意的时,并不是所有功能在Inventor不可见的时候都会能执行正常或成功,因为有些API需要更新视图,不可见的Inventor就不行了。
另外,独立的EXE可以访问已经在运行的Inventor进程。所以对于开发者研究API来说,是比较方便的,因为不需要如插件一样的重启Inventor才能看到代码修改的效果。可以修改,再启动EXE,再访问Inventor进程,发现问题很快修改。
- 控件:这个是利用到提供的Inventor View Control (InventorViewCtrl.ocx). 将其嵌入到独立程序,可以加载模型,进行浏览。

除以上三种方式外,Inventor还独有一种方法:Apprentice。名为学徒服务器。它拥有大部分API读取方面的功能,至于修改(写)的功能,仅限于iProperties等很少的部分。它只需要安装Inventor View这个免费产品即能过得使用。一般我们讲:Inventor提供的叫做Inventor API,而Apprentice是其子集合。所以在大部分场合,Inventor API特指安装Inventor后获取的所有API功能,而Apprentice指的只是部分功能。当然,若安装了Inventor,不仅能用到全功能API,也能使用到Apprentice。

所以,根据需求
- 若是拓展Inventor本身的能力,可做成插件
- 若是做自动化任务,独立界面,则可做成EXE
- 若还需要在独立程序里浏览模型,可嵌入Inventor View Control 

最后是VBA,它是集成到Inventor的编译环境,主要用来创建宏命令。大多数情况下,我喜欢用来做测试,因为最方便。


开发语言:

目前Inventor API是COM的形式。只要是支持COM的开发语言都能用。 SDK的例子也提供了好几种语言: VB, C++, VB.NET, C#. 甚至我们看到有一些用户用Delphi。 我个人对 Delphi不熟悉,不好评价。

- VB虽然说还是可以用,但其语言本身已经逐渐的淡出。而且,VB6写的dll插件,总是32位的,不能在64位上运行。另外,最新的免注册插件VB用不了。
- VB.NET 和 C#,单纯就语言本身,网上有大量的分析和对比。这里就不赘述了。仅就Inventor API而言,两者没有太大区别,根据个人习惯选用即可。当然C#在一些方法调用上有其自身的特点,例如

http://adndevblog.typepad.com/manufacturing/2012/06/use-reference-keys-in-c.html
http://adndevblog.typepad.com/manufacturing/2012/06/how-to-convert-iconbitmap-to-ipicturedisp-without-visualbasiccompatibilityvb6supporticontoipicture.html
设计时稍许注意即可。
- C++: 毫无疑问,C++是强大的。但在COM方面,代码设计还是比.NET繁琐很多,类型强制要求也多。而且免注册插件方面我们发现了些小问题,如果你擅长.NET,可以优先考虑.NET。

如果你从0开始创建工程,切记用提供的Inventor 开发向导。它会安装.NET和C++的工程项目模板,极大的节省你创建工程的时间。注意,从2012开始, 向导创建的插件是免注册形式的。

在Win7上,可以从这里找到C:\Users\Public\Documents\Autodesk\Inventor 2013\SDK\DeveloperTools\Tools\Wizards

        

以上仅是个人的一点心得,供入门的开发者参考。各位若已经开发,有什么心得体会,请畅所欲言。谢谢分享。 

无障碍开发系列之隐藏内容访问 欢迎访文我的博客YangChen’s Blog前一阵子一直在开发一个无障碍项目,到现在算是告一段落了,利用这点时间打算整理下无障碍开发上的一些关键技术。这次开发任务还是蛮有挑战的,网上也没有找到什么系统性的学习资料,踩了不少坑,回炉也改了不少代码,所以对于这个项目的技术总结还是十分重要的。无障碍开发概念什么是无障碍开发要做无障碍开发,知道什么是无障碍这个概念是十分重要的。无障碍在词典中的字面意思是 阅读详情

相关推荐

C#语言的移动应用开发

C#是一种由微软开发的现代编程语言,作为.NET平台的核心语言之一,C#结合了多种编程范式,包括面向对象编程、泛型编程等。其设计目标是提高开发效率、保证代码的可维护性。C#的语法简洁明了,易于学习和使用,因此吸引了大批开发者。

2501_90466880的博客 991

操作iProperties: 学徒服务器和InventorAPI性能对比

选自http://modthemachine.typepad.com/my_weblog/2010/03/iproperty-performance.html Here’s some performance data regarding using Inventor and Apprentice to work with iProperties.  I found this intere

Gear Up Cloud 1710

详解STM32F407双重ADC同步采集与DMA传输的配置技巧及实战应用

本文详细解析了STM32F407双重ADC同步采集与DMA传输的配置技巧及实战应用。通过CubeMX配置、代码实现和常见问题解决方案,帮助开发者高效实现多通道数据同步采集,提升工业自动化和嵌入式系统的数据采集效率与精度。

ii567的博客 364

Inventor二次开发用什么语言好?

Inventor编程接口属于ActiveX类型,所以凡是支持ActiveX的语言,比如VC, VB, C#, VB.NET, Java, Delphi等等,都可以用来开发Inventor的应用程序。选择的关键在于你对那种语言熟悉,或者说使用起来最有信心。 另外还有一个不需要Inventor安装就可以调用一部分Inventor API功能的编程接口,叫做Apprentice Server A

CAD定制乐园 5174

基于DFT的mbist sdc模板(DFT)

摘要:本文详细介绍了DFT测试模式下的SDC约束方法。

murphyrong的博客 921

【解决方案】使用transformer指定显卡后,模型依然加载到默认第1张显卡上

按理说指定了环境变量为后面几张显卡,模型会自动加载到我们指定的显卡上。可是查看gpu使用情况,发现还是加载在了第一张显卡上,这是为啥呢?

m0_56745306的博客 2441

My First Plug-in - Inventor API .NET 开发从0开始-课程2

在课程1我们做了一个简单的例子,初步知道程序大概会是什么样子,如何用一个按钮实现我们的设计意图。所谓知其然需知其所以然,我们需要走到代码背后,解读其基本的元素,为进一步的学习做好准备。不要紧张,本课程在内容上考虑到了初学者,甚至.NET的初学者情况,在描述上尽量的不涉及到很复杂的原理以及知识点。当然,如果你想在有关方面有综合而深入的了解,可以参考.NET的教程。 课程2使用的代码工程如下:

Gear Up Cloud 2019

python中有趣的库 freegames 的详细使用

freegames 是一个包含多个简单 Python 游戏的开源库,适合初学者学习 Python 编程和游戏开发。以下是 freegames 的详细介绍和用法示例。

数据知道的博客 3万+

2021-08-29

三层架构 含义 三层架构主要是指将业务应用规划中的表示层 UI、数据访问层 DAL 以及业务逻辑层 BLL,其分层的 核心任务是“高内聚低耦合”的实现。在整个软件架构中,分层结构是常见和普通的软件结构框架,同 时也具有非常重要的地位和意义。这种三层架构可以在软件开发的过程中,划分技术人员和开发人员 的具体开发工作,重视核心业务系统的分析、设计以及开发,提高信息系统开发质量和开发效率,进而为信息系统日后的更新与维护提供很大的方便。 主要有以下三种分层方式: 1、数据层不包含任何代码,只有数据库,还有相关的存储

weixin_49983358的博客 141

手把手保姆级|Python爬取微信公众号文章完整版,反反爬策略拉满,附可运行完整代码(永久可用)

做Python爬虫的朋友都知道,爬取微信公众号文章 绝对是爬虫领域的「香饽饽」也是「硬骨头」。一方面,微信公众号的文章是极具价值的数据源:不管是自媒体从业者做竞品分析、新媒体运营者整理干货、还是个人学习收集资料,都需要批量爬取公众号文章;另一方面,微信的反爬机制堪称全网最严苛之一 ——腾讯对微信生态的风控做到了极致,动态渲染页面、高频IP封禁、Cookie短时效失效、请求头严格校验、自动化工具秒识别、频繁请求直接拉黑,这些反爬手段让90%的爬虫新手望而却步:要么爬了几篇就被封IP,要么Cookie失效爬取中

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2624

人工智能智能体研究综述:从理论架构到前沿应用

AI Agent,即人工智能智能体,是指能够在特定环境中自主感知、推理、决策并执行行动以实现特定目标的智能系统[1]。自主性反应性主动性(Pro-activeness)和社会性fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;AI Agent核心特征自主性 Autonomy反应性 Reactivity主动性 Pro-activeness。

nmdbbzcl的博客 902

基于SpringBoot+Vue的小说阅读器系统的设计与实现

Java简介Java是一种面向对象的静态式编程语言。Java编程语言具有多线程和对象定向的特点。其特点是根据方案的属性将方案分为几个不同的模块,这些模块是封闭的和多样化的,在申请过程中具有很强的独立性。Java语言在计算机软件开发过程中的运用可以达到交互操作的目的,通过各种形式的交换,可以有效地处理所需的数据,从而确保计算机软件开发的可控性和可见性。开发java语言时,保留了网络接口,Java保留的缺省网络接口可以与web应用程序编程所依赖的类别库相匹配。

JAVA编码选手的博客 964

【YOLOv11多模态融合改进】(可见光+红外)涉及像素级融合、特征级融合(中期、中后期、后期)、决策级融合的完整配置步骤以及二次改进方案

在网络输入阶段将多模态数据直接合并,形成统一的特征表示。

Limiiiing的博客 1967

为什么企业建站或独立站选用WordPress

大型企业需要可扩展且可靠的网络解决方案以保持竞争力。传统上,企业依赖昂贵的专有网络解决方案,但WordPress作为一种成熟的内容管理系统(CMS),正逐渐成为大型企业的可行选择。WordPress已为43.3%的网站提供支持,具备处理高流量、多语言内容和复杂访问需求的能力。尽管存在一些误解,如WordPress仅适用于博客或安全性不足,但事实是WordPress具有高度可扩展性、灵活性和经济性,支持响应式开发、多站点功能,并不断更新。此外,WordPress的开源特性使其不依赖于单一供应商,且用户界面友好

1540

【花雕学编程】Arduino FOC 之AS5048A磁编码器模块

您的硬件平台、使用场景和Arduino版本可能影响使用方法的选择。在Arduino平台上实现FOC可以提供平滑的运行和高度的扭矩、速度和位置控制,它通过精确控制电机的电流和电压来实现高效率、高精度和低噪声的操作。5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。1、高性能电机控制:FOC是一种高级的电机控制算法,可以精准控制PMSM(永磁同步电机)和BLDC(无刷直流)电机,实现平滑的转速和扭矩输出。

雕爷学编程 1496

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

[精]vbscript和javascript互相调用方法

vbscript和javascript互相调用方法   ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数。ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript。不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言。   脚本语言的选择往往基于许多不同原因:它可能是开发者最为熟悉

hissan的专栏 1833

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Lua语言的安全开发

Lua是一种解释型语言,最早由巴西的一个团队于1993年开发,主要用于嵌入式应用。它的设计理念是简单、灵活和高效,这使得Lua能够轻松嵌入到其他应用程序中。轻量级:Lua的核心库非常小,易于集成。灵活性:支持多种编程范式,如过程式、函数式和面向对象编程。高效性:相较于其他脚本语言,Lua的运行效率相对较高。尽管其性质吸引了大量开发者,但在实际应用中,Lua的安全性问题也日益受到关注。Lua语言因其高效性和灵活性,被广泛应用于多种领域。然而,随着应用规模和复杂性的增加,安全问题也愈加突出。

2501_90435987的博客 414

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

win10 C语言开发环境搭建

C语言开发环境搭建一、编辑器的选择二、windows10下的开发环境方法一:1.下载msys642.更新安装包,下载mingw64 gcc编译器3.打开clion编辑器,配置mingw64编译器4.创建一个c语言项目,并运行方法二:1.打开windows10 Linux子系统功能3.windows应用商店下载ubuntu 18 系统4.打开clion编辑器,配置mingw64编译器三、关于两种方式...

java7_ljbk的专栏 1801

浅谈《软件工程》常用的几种软件开发方法

软件工程 在上个世纪60年代中期爆发了众所周知的软件危机。为了克服这一危机,在1968、1969年连续召开的两次著名的NATO会议上提出了软件工程这一术语,并在以后不断发展、完善。与此同时,软件研究人员也在不断探索新的软件开发方法。 软件开发方法 目前常用的开发方法有四种,分别是结构化方法、原型法和面向对象方法。接下来我们会一一叙述这些软件开发方法的实现过程和其中的特点以及优缺点。 结构化方法 结构化方法:结构化方法是应用最为广泛的一种开发方法。按照信息系统生命周期,应用结构化系..

自己的选择,无论是否正确,请坚持下去,黎明就在下一刻。 1万+

vbscript和javascript互相调用方法

vbscript和javascript互相调用方法  ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数。ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript。不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言。   脚本语言的选择往往基于许多不同原因:它可能是开发者最为熟悉的

Reker熊的Blog 1935

VBS和JS互相调用方法

vbscript和javascript互相调用方法           ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数。ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript。不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言。  脚本语言的选择往往基于许多不同原因:它可

nearsun的专栏 7869

python语言和c++语言 哪个难_Python PK C++,究竟谁更胜一筹?

原标题:Python PK C++,究竟谁更胜一筹? 作者 | Farhad Malik译者 | 弯月,编辑 | 屠敏来源 | 优快云(ID:优快云news)在编程生涯的早期阶段,我参与过一款C++数学优化应用程序的开发,这个程序对性能的要求很高。至今我依然记得那段艰难的经历。在那个项目中,我遇到了一些概念,比如指针、并发和垃圾回收,刚开始的时候这些概念非常难以理解。然而,如果你问我对C++...

weixin_39581896的博客 2421

Assembly语言的测试开发

Assembly语言的测试开发是一项挑战性与复杂性并存的任务。尽管其语法相对繁琐,但其在性能和资源控制上的优势使其在某些场景下成为必不可少的工具。通过合理选择工具、明确测试目标以及逐步调试,可以有效提高开发流程的效率。在未来的发展中,随着计算机架构的不断演进,Assembly语言或许会在新技术的推动下重新焕发活力。

2501_91241361的博客 485

实例方法和静态方法有什么不一样?

面试造航母,工作拧螺丝,面试好像几乎是技术人员面临频率较高的问题,不是面试别人就是别人面试自己,那针对各种各样的面试,该怎么回答呢。今天就把之前遇到的一个面试问题来分析一下,下面是本文大纲 复现之前的面试问答 分析static关键字 从不同的方面来回答面试官的问题 面试问答 某年某月某日的一场对话: 面试官:说一下实例方法和静态方法有什么不同的地方吧? 我:静态方法只能访问静态成...

adam_swx的博客 4407

Ruby语言的安全开发

Ruby是一种动态、开放源代码的编程语言,以其优雅的语法和强大的功能而闻名。Ruby最著名的框架是Ruby on Rails(以下简称Rails),它极大地促进了Web应用程序的开发。然而,随着网络安全威胁的不断增加,开发者在使用Ruby语言进行项目开发时必须将安全性放在首位。本文将讨论Ruby语言的安全开发实践,包括常见的安全漏洞、预防措施以及最佳实践,以帮助开发者构建安全可靠的应用程序。

2501_90494596的博客 595
上一篇: 【作废】Inventor 二次开发学习指南入门到精通(含Inventor最新二次开发教程下载)
下一篇: My First Plug-in - Inventor API .NET 开发从0开始
autodeskinventorapi
博客等级 码龄14年 313粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值