创建Femap对象主要有两种方式,一是直接在Femap内置的API程序窗体中创建,二是在API程序窗口以外的开发环境中创建。
一、使用FEMAP集成的API程序窗口
开始使用FEMAP API的最快方法是打开API编程窗口。它提供了一个完整的编辑、调试和运行的环境,使用Visual Basic的语言。更重要的是,由于它与FEMAP整合在一起,所以随时都可以使用。
![ca4490bee75c98d73f6fefa25ab5f4a7.png](https://i-blog.csdnimg.cn/blog_migrate/f67e80d3e5a93d250e4a5869d259fba2.jpeg)
调用Femap集成的API编程窗口-Step1
![9f9b7691385c43408e5563545a50b983.png](https://i-blog.csdnimg.cn/blog_migrate/8d5cf8dc1d4fa59ba2381cf7066396ed.jpeg)
调用Femap集成的API编程窗口-Step2
![2f34d7a16d364969eac4a4c714c0dcac.png](https://i-blog.csdnimg.cn/blog_migrate/6a794c06bf62126e7ad30214c70e2a6e.jpeg)
API编程窗口
要将应用程序链接到FEMAP,必须声明一个对象,然后将其连接到FEMAP。在API程序窗体中会自动生成以下代码:
Dim App as Femap.model
Set App = feFemap()
feFemap()方法做的事情与下文的“GetObject”相同,但由于编程环境与FEMAP完全集成,它总是可以确定启动应用程序的会话,并直接与该进程通信。即使您从API编程窗口保存基本脚本,并将其作为用户命令连接到工具栏按钮或菜单命令,也可以工作。
2. 非API编程窗口的其他环境
在Basic中,可以通过GetObject或CreateObject函数和Femap进行连接。要决定使用哪一个,您必须决定您的应用程序是否需要访问已经在进行中的FEMAP会话(Session),在这种情况下,您将使用GetObject。如果您需要启动一个新的FEMAP会话,您必须使用CreateObject。这种使用了标准的OLE/COM机制来找到FEMAP对象的方法,有一个限制,即如果您有多个运行的FEMAP副本(多个进程,而不是同一个FEMAP中打开的多个模型),GetObject将始终将您连接到最先启动的进程。这仅仅是OLE/COM界面的一个无法避免的限制。
下面的示例(VBA中)展示了如何创建一个FEMAP应用程序对象,并连接到一个运行中的FEMAP会话。
Dim App As Object
Set App = GetObject(, "femap.model")
如果你想要开始一个新的FEMAP会话,正确的方法应该是:
Dim App As Object
Set App = CreateObject("femap.model")
这个对CreateObject的调用将启动一个新的FEMAP会话,但它将不可见。如果希望FEMAP可见,则必须调用feAppVisible()方法。
如果你有一个应用程序,创建了一个新的FEMAP会话,然后想退出FEMAP,不再让它作为进程运行,你需要:
femap = nothing
三、Femap类库的引用
如上所示,你可以将你的FEMAP对象声明为一个通用的“对象”,无论你是在Visual Basic还是在FEMAP之外的任何其他基本编辑器(比如Excel)中进行编程。但是,如果你在Visual Basic中工作,你可以选择引用FEMAP类型库并显式地使用它定义的对象(FEMAP内部的API编程可停靠面板自动使用FEMAP类型库)。使用类型库为您提供了几个非常有用的好处。首先,您将能够使用对象浏览器来查看可用的属性和方法。然而,更方便的是,当您使用对象或方法时,您将看到弹出工具提示,提供有关可用属性的信息,或所需的参数列表。
如果你用Excel编程,引用Femap类库的方法如图所示。工具->引用->浏览->找到Femap安装目录下的Femap.tlb文件,倒入后在“可用引用”中勾选即可。其他如VB、C++编程环境,以用方法可查阅API帮助文档。
![22cd020c901db2fc5ba3f350d2992133.png](https://i-blog.csdnimg.cn/blog_migrate/491d26218b8bce251143ce17ea7b5992.jpeg)
VBA引用Femap类库-Step1
![449f617f900b16194ccbf3755fa676bf.png](https://i-blog.csdnimg.cn/blog_migrate/bcd7134c1380e4e9a0f8a300863c05ec.jpeg)
VBA引用Femap类库-Step2
引用完成后声明Femap变量的方式有所改变,应写为:
Dim App as femap.model
Set App = GetObject(,”femap.model”)
四、小结
1)使用Femap软件中的API程序窗口软件会自动声明一个Femap对象,我们接着编写程序即可实现自定义功能。
2)使用其他开发环境则需要自己声明变量,如使用VB或者VBA时:
Dim App as Object
Set App = GetObject(,”femap.model”)
3)如果使用VBA可以引用Femap类库,便于查看Femap对象的属性和方法。引用后声明Femap对象方法是:
Dim App as femap.model
Set App = GetObject(,”femap.model”)