当前位置: 首页 > news >正文

SP3D c# 开发独立的exe

此方法避免了启动S3D的过程

imageS3D.net API允许编写独立应用程序,即外部自动化TaskHost可执行文件。

在独立应用程序中可以编写哪些自动化?
检查自动化-检查对象/数据,并采取一些行动,如生成
报告文件/输出文件。
数据挖掘-对对象和相关对象进行一些数据处理/数据挖掘,
生成报告。
根据您的工作流程修改属性。
从内部数据库/系统访问数据并将此类数据加载到S3 D
对象
对类对象数据的模型/目录数据执行后台计划任务
分析/检查/修改。
在非交互式环境中创建S3 D对象

image

请注意,没有用户交互服务/组件(客户端服务)可以可用于此类独立应用程序。

这些仅适用于

互动环境。
您只能引用和使用中间层服务和组件。无论您是在运行S3D.net API,
交互式TaskHost,或在独立可执行文件中,底层
语义和关联框架仍在后台运行。S3D的这个“中央处理单元”持续监控和反应
根据指定的应用程序进行修改和简化更改元数据行为。
当你编写独立应用程序时,你必须照顾
连接到网站;(可以连接到默认上次打开的网站,或提供网站连接详情)
开设工厂;(可以获取可用工厂及其信息的列表)
设置活动权限组;(稍后的所有修改都将与此一起
权限组)
局限性:激活一种植物后,您无法切换到不同的植物。

代码部分

 static void Main(string[] args){AddPath();var projectDbKey = $@"Software\Intergraph\Applications\Environments\CommonApp\ProjectDB";var s3dProjectDBInfor = Registry.CurrentUser.OpenSubKey(projectDbKey);var PhysicalName = s3dProjectDBInfor.GetValue("PhysicalName").ToString();var Schema = s3dProjectDBInfor.GetValue("Schema").ToString();var arrPhysicalName = PhysicalName.Split(new string[] { ";", "=" }, StringSplitOptions.RemoveEmptyEntries);var arrSchema = Schema.Split(new string[] { ";", "=" }, StringSplitOptions.RemoveEmptyEntries);SiteManager sm = MiddleServiceProvider.SiteMgr;var st = sm.ConnectSite(arrPhysicalName[1], arrPhysicalName[3], SiteManager.eDBProviderTypes.MSSQL, arrSchema[3]);st.OpenPlant(st.Plants.FirstOrDefault());foreach (BusinessObject ob in st.ActivePlant.PlantModel.RootSystem.SystemChildren){Console.WriteLine(ob.ToString());}Console.ReadKey();}static void AddPath(){var paths = new string[]{"C:\\Program Files (x86)\\Smart3D\\GeometryTopology\\Runtime","C:\\Program Files (x86)\\Smart3D\\Core\\Runtime"};var envVariables = Environment.GetEnvironmentVariable("Path");string[] strs = envVariables.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);if (!strs.Contains(paths[0])){Environment.SetEnvironmentVariable("Path", envVariables + ";" + paths[0]);envVariables = Environment.GetEnvironmentVariable("Path");strs = envVariables.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);}if (!strs.Contains(paths[1])){Environment.SetEnvironmentVariable("Path", envVariables + ";" + paths[1]);envVariables = Environment.GetEnvironmentVariable("Path");strs = envVariables.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);}}

注意 引用的dll的copy local属性设置为true。

 

image

最后运行效果如图所示

image

http://www.wxhsa.cn/company.asp?id=6982

相关文章:

  • python错误code
  • 瑞 ping 我
  • java八股文笔记 - 指南
  • NOIP 模拟赛十六
  • 【AT_dp_y】Grid 2 - Harvey
  • C#十五天 026多态重写 027抽象类与开闭原则 028接口,依赖反转,单元测试
  • 解题报告-P11844 [USACO25FEB] Friendship Editing G
  • 两种判断计算机大小端模式的方法
  • CSP-S模拟23
  • CF1413F Roads and Ramen
  • 复现The Annotated Transformer代码时遇到的问题和相关链接
  • Node.js 文件上传中文文件名乱码难题,为什么只有Node会有乱码困难,其他后端框架少见?
  • ROS2之节点
  • 9.17日总结
  • ECT-OS-JiuHuaShan 框架,元推理AGI奇迹
  • Mapper与Mapper.xml的关系
  • Rocky Linux10.0安装zabbix7.4详细步骤 - 教程
  • 【P3158】放棋子 - Harvey
  • 最强AI语音克隆和文本配音工具!与真人无异,CosyVoice下载介绍
  • 近日C++线上练习结果
  • 密力根油滴实验实验报告
  • Linux 系统插入U盘/移动硬盘实现自动挂载
  • 来点人瑞平我
  • 【P2051】中国象棋 - Harvey
  • JavaDay6
  • Ubuntu Linux 云服务器常见安全漏洞修复方法汇总 Apache/OpenSSH/DNS
  • AI智能体开发实战:从提示工程转向上下文工程的完整指南
  • 解码C语言九条语句
  • 多个 root 用户记录,而且有些记录的密码是空的,导致认证混乱。
  • 解题报告-P11670 [USACO25JAN] Cow Checkups S