使用C#(winform)调用STK并展示其3D/2D控件

最近有个需求要求对STK做二次开发,要用自己写的界面但又要嵌入STK的3D/2D控件展示,后台调用STK引擎做计算。官方文档语焉不详,网上的资料要么太多重复(到处抄来抄去),要么有诸多错漏之处,找了很久,python、C++(qt)、C#相关的资料都找了很多,最后终于用C#的winform技术实现了,写个博客记录一下,我也不敢保证自己百分百正确,权当做个参考,也希望能够帮助到后来者。

本文主要参考了C#对STK11.4二次开发的Hello World_c# usim stk-CSDN博客Visual Studio 2019 STK11.6 C#(WPF)二次开发_stk11.6与c#互联-CSDN博客

STK 11.6,vs2022。

首先打开vs新建winform工程,这里注意要选.NET Framework的,不要选.NET Core的,.NET Framework版本我这里选的是4.8。

新建完工程后,首先右键点击项目,修改属性,在其中“生成”下面选择目标平台,确保和所安装的STK一样,64位的选64位,32位的选32位。

然后还是右键点击项目->添加->引用,打开引用管理器

首先选择COM一栏,选中“AGI STK Objects 11”

之后进入浏览选择“AGI.STKX.Interop.dll”和“AGI.STKX.Controls.Interop.dll”。如果这里没有的话可以选择右下角浏览,找到 你的STK安装目录/bin/Primary Interop Assemblies/ 这个目录下面找到相应的文件添加。

之后点击确定,可以看到引用中多了我们刚才所添加的内容以及一些依赖。

之后右键点击其中“AGI.STKX.Interop”,选择属性,将“嵌入互操作类型”改为False。

然后找到工具箱,在其中右键新建选项卡,命名为agi,右键agi这个选项卡,选择“选择项”,在出现的“选择工具箱项”界面中点击“浏览”,在本地找到你之前添加的“AGI.STKX.Controls.Interop.dll”文件,加入,然后点击确定,得到新的控件,其中VOCntrl是3D控件,2DCntrl是2D控件。

到这里,基本上准备工作就做完了,然后就是愉快的拖控件环节了!

将3D控件和2D控件拖到窗口中,再加个按钮。

双击按钮,添加按钮的响应代码

var root = new AgStkObjectRoot();
root.NewScenario("Test");

其中“Test”是新场景的名字,可以起个自己喜欢的。

然后运行程序,点击按钮,就会发现控件内容刷新了,呈现出了想要的3D和2D场景!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值