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

news2025/1/9 1:15:23

最近有个需求要求对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场景!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GB/T 28181-2022 公共安全视频监控联网系统:信息传输、交换、控制技术要求pdf协议文档下载,同时附GBT-28181-2016.pdf

国标GB28181 2016标准已经执行很多年了,可以说效果非常好,去年最新的GB28181-2022标准细节也出来了,本来是一个国家级的标准,现在想要下载这个协议标准,一堆网址要会员,要积分,我整理了一下&…

LabVIEW压电陶瓷阻抗测试系统

开发了一种基于LabVIEW软件与PXI模块化仪器的压电陶瓷阻抗测试系统。该系统能在高电压工作条件下测量压电陶瓷的阻抗特性,包括阻抗模值与阻抗角的频率特性,为压电陶瓷的进一步分析与应用提供了重要参考。 项目背景 现有的阻抗测试仪大多只能在低电压条件…

OpenCV图像滤波(5)二维卷积滤波函数filter2D()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::filter2D() 函数用于对图像应用二维卷积滤波器。这个函数可以用来实现多种图像处理操作,如模糊、锐化、边缘检测等。它通过将一个…

什么是Docke,部署dockers,和基本操作命令

Docker简介 什么是容器 容器是用来装东西的,Linux 里面的容器是用来装应用的; 容器就是将软件打包成标准化单元,以用于开发、交付和部署; 容器技术已经成为应用程序封装和交付的核心技术; 容器原理:容器…

如何在STEP 7 (TIA Portal)中配置访问共享的设备及模块内部共享输入/输出(MSI/MSO)功能

通过模块内部共享输入/输出(MSI/MSO)功能,输入或输出模块可以将其输入或输出数据最多提供给4个IO控制器。 这篇文档介绍了如何在STEP 7 (TIA Portal)中配置访问共享的设备及模块内部共享输入/输出功能。可以在两个不同的项目里或同一个项目里…

24.8.3数据结构|双向循环链表、静态链表

双向循环链表 节点类型与双链表的节点类型完全相同双向循环链表的操作也与双链表的操作基本一致。 例题 将自然数一到N按由小到大的顺序沿顺时针方向围成一个圈,然后以一为起点先沿顺时针方向数到第N个数将其划去,再沿逆时针方向数到第K个数将其滑去&a…

密码加密机的功能模块

密码加密机,也称为加密机或硬件加密模块(HSM,Hardware Security Module),是一种通过国家商用密码主管部门鉴定并批准使用的国内自主开发的主机加密设备。以下是对密码加密机的详细解析: 一、基本概述 定义:密码加密机是…

LabVIEW位移检测系统

工业控制器的位移检测在保证机械设备精确运行中发挥着重要的作用。开发了一种基于LabVIEW的高精度位移检测系统,该系统通过集成硬件与软件的优化配置,实现了对工业控制器位移的精确测量和分析。 项目背景 在传统工业生产中,位移检测系统往往…

macos 10.15系统:macOS Catalina for mac 正式版

macOS Catalina for mac (macos 10.15系统)详细的最新功能介绍,此次macOS Catalina 10.15.7正式版更新发布,本次更新主要为您的Mac提供了重要的安全性更新和错误修复。感兴趣的朋友,欢迎前来下载! macOS Catalina 让你喜欢的种种…

JVM知识总结(CMS收集器)

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ CMS收集器 CMS(Concurrent Mark Sweep)收集…

Spring Boot + Vue(4)授权查看信息

前言 在SpringBoot和Vue的组合中,实现一个查看商品详情信息需商品主人授权的功能,涉及到前后端的协作以及权限管理的设计。以下是一个基本的实现步骤和概念介绍: 一. 设计数据库模型 首先,你需要设计数据库模型来存储商品信息、用…

物镜球差透射AC-TEM的原理、步骤与数据分析-测试狗

物镜球差透射AC-TEM的原理、步骤与数据分析 物镜球差透射AC-TEM是一种高级的透射电子显微镜技术,它通过校正物镜球差来提高图像的分辨率和对比度;这种技术在材料科学、生物学、化学等领域的研究中发挥着重要作用。 一、原理 物镜球差透射AC-TEM的原理基…

代码随想录算法训练营第七天(一)| 454.四数相加II 383. 赎金信

454.四数相加II 题目&#xff1a; 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1…

Debug小妙招·「1」--使用GDB分析进程Core Dump

使用GDB分析进程Core Dump 目录 Core Dump简介GDB简介生成Core Dump使用GDB分析Core Dump实例分析常见问题与解决方法1. Core Dump简介 什么是Core Dump 当程序崩溃(例如,由于非法内存访问或除零操作)时,操作系统会生成一个文件,称为core dump。这个文件包含了程序在崩溃时…

常见VPS服务器附加组件一览

网络主机行业竞争非常激烈&#xff0c;因此主机服务提供商竭尽全力为客户提供完整的解决方案&#xff0c;其中包含构建和管理在线项目所需的一切。但客户通常有特定需求&#xff0c;因此需要不同的附加组件。在管理自己的网络服务器时尤其如此。 今天&#xff0c;我们将介绍您…

无感陶瓷电阻器-EAK脉冲能量吸收电阻

EAK陶瓷电阻器系列投入批量生产。BA 系列的最大电阻为 1MΩ&#xff0c;电压高达 20kV。 在散装结构中表现出色 EAK 的无感陶瓷电阻器设计用于需要高电压、高能量和高峰值电流电阻器的应用。固有的非感性电阻器是通过本体结构产生的&#xff0c;而不是蜿蜒曲折或转弯产生的。这…

Django内置后端和自定义后端

【图书介绍】《Django 5企业级Web应用开发实战&#xff08;视频教学版&#xff09;》_django 5企业级web应用开发实战(视频教学版)-CSDN博客 《Django 5企业级Web应用开发实战&#xff08;视频教学版&#xff09;》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) 5.2.3 内置…

java学习笔记 day8.6

修改数据 1.修改数据时判断name参数不为空且非空字符串,判断salary是不为空则添加记录 <update id"editStaffItem">update staff<set><if testname!null and name!"">name#{name},</if><if test"salary!null">sa…

LearnOpenGL-光照章节(颜色、基础光照、材质、光照贴图)

LearnOpenGL-光照章节&#xff08;颜色、基础光照、材质、光照贴图&#xff09; 颜色创建一个光照场景 基础光照一、环境光照二、漫反射光照三、镜面反射 材质光照贴图一、漫反射贴图二、镜面光贴图三、放射光贴图 颜色 我们在现实生活中看到某一物体的颜色并不是这个物体真正…

Unity强化工程 之 SpriteShape(精灵地形编辑器)

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正 1.什么是SpriteShape&#xff1f; SpriteShape 是一个灵活且功能强大的世界构建资源&#xff0c;它可以沿着形状的轮廓进…