AVEVA MARINE C# 程序执行MarJobLauncher工作

news/2024/10/15 10:15:04

手工执行的话一般如此操作,例如分离零件等操作

今天利用c# 介绍下AM如何用代码执行提取零件gen文件的过程

引用如下的库文件

封装的类库

其中appname/shortname/appExecutable这些去下面的文件去查找

C:\AVEVA\Marine\OH12.1.SP4\MarJobs.xml

 

public static class MarJobEx{public static string appName = "Hull Plate Interface";public static string appShort_name = "tbrplateint";/// <summary>/// 按照零件名称提取gen文件/// </summary>/// <param name="Plates"></param>/// <param name="passWord"></param>/// <returns></returns>public static List<FileInfo> HullPlatePartsInterFace(this IEnumerable<string> Plates, string passWord){//MDB.CurrentMDB.GetWork();//var job = ExportOutHullMarJobs().First(j => j.executable == HullPlateInterface);var pro = Aveva.Pdms.Database.Project.CurrentProject;var mdb = Aveva.Pdms.Database.MDB.CurrentMDB;MarJob mj = new MarJob(){Project = pro.Name,MDB = mdb.Name,User = pro.UserName,Password = passWord};mj.Create(appName);Aveva.Marine.Utility.MarUtil util = new Aveva.Marine.Utility.MarUtil();var datDir = util.TBEnvironmentGet("SB_SHIPDATA");util.Dispose();StringBuilder sb = new StringBuilder();Plates.ToList().ForEach(c => sb.AppendLine($"PLATE,'{c}';"));string cmdstr = sb.ToString();var fn = Path.Combine(datDir, $"{appShort_name}_{mj.JobId}.dat");File.WriteAllText(fn, cmdstr);mj.AddInput(fn);mj.Run(false);var dats = mj.Outputs.Cast<string>().FirstOrDefault(c => c.EndsWith(".dat"));var fls = File.ReadAllLines(dats).Where(c => File.Exists(c));return fls.Select(c => new FileInfo(c)).ToList();}/// <summary>/// 按照装配提取/// </summary>/// <param name="curAss"></param>/// <param name="passWord"></param>/// <returns></returns>public static List<FileInfo> HullPlatePartsInterFace(this List<DbElement> curAssOrBlockEle, string passWord){var strs = curAssOrBlockEle.Select(c=>c.GetAsString(DbAttributeInstance.NAMN));MDB.CurrentMDB.GetWork();//var job = ExportOutHullMarJobs().First(j => j.executable == HullPlateInterface);var pro = Aveva.Pdms.Database.Project.CurrentProject;var mdb = Aveva.Pdms.Database.MDB.CurrentMDB;MarJob mj = new MarJob(){Project = pro.Name,MDB = mdb.Name,User = pro.UserName,Password = passWord};mj.Create(appName);Aveva.Marine.Utility.MarUtil util = new Aveva.Marine.Utility.MarUtil();var datDir = util.TBEnvironmentGet("SB_SHIPDATA");util.Dispose();var cmdstrs = curAssOrBlockEle.Select(c=>$"{(c.GetActualType().Name == "ASMBLY" ? "ASSEMBLY" : "BLOCK")},'{c.GetAsString(DbAttributeInstance.NAMN)}';").ToArray();var fn = Path.Combine(datDir, $"{appShort_name}_{mj.JobId}.dat");File.WriteAllLines(fn, cmdstrs);mj.AddInput(fn);mj.Run(false);var dats=mj.Outputs.Cast<string>().FirstOrDefault(c => c.EndsWith(".dat"));var fls = File.ReadAllLines(dats).Where(c => File.Exists(c));return fls.Select(c => new FileInfo(c)).ToList();}}

 

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

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

相关文章

cv2 判断图片是冷还是暖

把图片的颜色空间转为HSV H表示色调(下图横轴), 图片的平均H值可用于区分冷暖 人工智障与神经病网络 https://www.cnblogs.com/JiangOil/

使用Spleete进行人声与背景声分离

安装:https://pypi.org/project/spleeter/ 下载权重: 2sterms.tar.gz https://github.com/deezer/spleeter/releases/tag/v1.4.02sterms分区分 背景音和人声, 此外还有4sterms和5sterms的模型, 会区分出更多乐器的轨道,视频提取声音到MP3格式 ffmpeg -i ./item.mp4 -vn -c:a l…

.Net 8.0 下的新RPC,IceRPC之试试的新玩法打洞

作者引言很高兴啊,我们来到了IceRPC之试试的新玩法"打洞",让防火墙哭去吧试试RPCs的新玩法"打洞"比较典型的玩法:RPC数据流从客户端流向服务端,现在来尝试用IceRPC来玩一个新的花样"打洞"。概述对于 IceRPC,客户端是发起连接的实体, 而服务…

快捷键ctrl+`打不开vscode终端

分析 毫无疑问,是热键冲突了。 目前没有很好的热键检测手段,包括OpenArk也检测不到这个热键冲突,说实话只能借助百度,自己找那真是大海捞针。 像这种冲突,一般是全局快捷键,也就是后台的应用也能使用的快捷键,比如截图啊之类的。因为一般的快捷键是前台时才可用的。 解决…

SpringBoot 打包所有依赖

SpringBoot 项目打包的时候可以通过插件 spring-boot-maven-plugin 来 repackage 项目,使得打的包中包含所有依赖,可以直接运行。例如: <plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin&…

简单解决version GLIBC_2.34 not found,version GLIBC_2.25 not found

简单解决version GLIBC_2.34 not found,version GLIBC_2.25 not found 无需手动下载安装包编译 前言 很多博客都是要手动下载安装包进行编译升级,但这样很容易导致系统崩溃,本博文提供一个简单的方法,参考自博客1,博客2. 检查版本 strings /usr/lib64/libc.so.6 |grep GLI…

简单解决version `GLIBC_2

简单解决version GLIBC_2.34 not found,version GLIBC_2.25 not found 无需手动下载安装包编译 前言 很多博客都是要手动下载安装包进行编译升级,但这样很容易导致系统崩溃,本博文提供一个简单的方法,参考自博客1,博客2. 检查版本 strings /usr/lib64/libc.so.6 |grep GLI…

初三奥赛模拟测试5

初三奥赛模拟测试5点击查看快读快写代码 #include <cstdio>using namespace std; // orz laofudasuan // modifiednamespace io {const int SIZE = (1 << 21) + 1;char ibuf[SIZE], *iS, *iT, obuf[SIZE], *oS = obuf, *oT = oS + SIZE - 1, c, qu[55]; int f, qr;…