QQ登录

只需一步,快速开始

微信登录

手机微信,扫码同步

用户名登录

用户名,密码登录

搜索
企业广告

[PDMS] SP3D开发-如何通过名称找到一个工厂对象

[复制链接]
2K |2
阅读字号:
leeathorskeyVIP会员 VIP会员 | 显示全部楼层 |阅读模式       最后访问IP湖北省
海川高三  |  头衔:  TA未设置 
★发布悬赏→ 发布(0)  承接(0/0)   

加入五千万化工人社群

您需要 登录 才可以下载或查看,没有账号?注册

x
SP3D相对于PDMS一个重大缺陷,就是没有一个简单的脚本语言、简单的开发方式,比如在PDMS中使用“$!Name”就可以定位某个管件,进行属性设置,非常方便。那么在S3D中,该如何用同样方便的方式进行属性修改和属性批量修改呢?我们首先需要找到这个对象。
1、S3D开发的方法
S3D的开发有三种,SQL、COM及.Net,我们这里推荐采用.Net,因为SQL直接进行数据库层面操作,安全性不高;COM是微软三十年前的技术,现在已经不再维护了;.Net拥有丰富的开发库,可以非常高效快捷的开发出我们需要的程序,除了一点不便,那就是调试太麻烦。S3D的引用库在…\Smart3D\Core\Container\Bin\Assemblies\Release文件夹下,常用的如下图所示:
0.png
一般需要添加以下文件头:
using Ingr.SP3D.Common.Client;
using Ingr.SP3D.Common.Client.Services;
using Ingr.SP3D.Common.Middle;
using Ingr.SP3D.Common.Middle.Services;
using Ingr.SP3D.Route.Middle;

2、调用方法
调用方法如下所示,不详细叙述。
1.png
2.png

3、介绍一个工具
上文说过,.Net程序调试非常麻烦,所以笔者开发了3DBox,能让S3D支持以C#为基础的脚本语言开发。3DBox已经内置了S3D的头文件,只需要像写脚本的方式在文件里写入需要操作的内容,让后在3DBox命令行中输入 “run 文件路径”回车即可。
4、代码及运行结果
我们可以通过以下代码或许当前工作控件的所有工厂对象名称:
SP3DConnection oConnection =
ClientServiceProvider.WorkingSet.ActiveConnection;
WorkingSet oWorkingSet = ClientServiceProvider.WorkingSet;
Filter oFilter = new Filter();
BOCollection oWorkingcoll = oWorkingSet.GetObjectsByFilter(oFilter, oConnection);
string name = “”;
foreach (BusinessObject obj in oWorkingcoll)
{
try
{
name = name + obj.GetPropertyValue(“IJNamedItem”, “Name”).ToString() + “\r\n”;
}
catch { }
}
return name;
获取到名称以后,我们可以通过名称匹配或者名称正则表达式匹配等方法找到想要定位的对象,下一步就可以对对象进行操作了。
运行结果如下图所示:
3.png

关注微信公众号长远数智实验室了解更多!


 

发表于 2019-8-9 09:07:11

评分

参与人数 1财富 +3 收起 理由
qy576100527 + 3 发起议题

查看全部评分

声明:

本站是提供个人知识管理及信息存储的网络存储空间,所有内容均由用户发布,不代表本站观点。

请注意甄别主题及回复内容中的联系方式、诱导购买等信息,谨防诈骗。内容及翻译仅供参考

当前内容由会员用户名 leeathorskey 发布!权益归其或其声明的所有人所有 仅代表其个人观点, 仅供个人学习、研究之用。

本主题及回复中的网友及版主依个人意愿的点评互动、推荐、评分等,均不代表本站认可其内容或确认其权益归属,

如发现有害或侵权内容,可联系我站举证删除,我站在线客服信息service@hcbbs.com 电话188-4091-1640 

了解了解,学习,多谢楼主分享

 

发表于 2019-8-9 19:22:18

回复

使用道具 举报

学习了

 

发表于 2019-8-10 00:54:10

回复

使用道具 举报

【发主题】高级


          特别提示:

          本站系信息发布平台,仅提供信息内容存储服务。

         禁止发布上传, 包括但不限于:不能公开传播或无传播权的出版物、无传播权的在行标准规范、涉密内容等
          不听劝告后果自负!造成平台或第三方损失的,依法追究相关责任。

          请遵守国家法规;不要散播涉爆类、涉黄毒赌类、涉及宗教、政治议题、谣言负面等信息   

     

您需要登录后才可以回帖 登录 | 注册

本版积分规则

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français Español العربية Persian

联系

0411-88254066

18840911640

(工作时间09:00-17:00)

其它时间请联【微信客服】

或 电子信箱信箱

service@hcbbs.com

微信群

先加微信

再说要入何种专业群

拉你入群  勿发广告

100多个海川专业微信群

还有QQ大群:7990017
申请时注明你的QQ号


 

关于我们  -  隐私协议    -  网站声明   -  广告服务   -  企业会员   -  个人会员  -   主题竞价   -   专家智库  -  服务市场    -  APP和微信   -  分类信息   -     -  在线计算  -  单位换算


不良信息举报 0411-88254066  举报中心       在线客服#微信号:  18840911640    电子信箱   service@hcbbs.com   【QQ客服】3153267246   


海川化工论坛网(hcbbs) @Discuz! X3  加载0.153177 second(s), 67 queries , Redis On. | 网站统计 |  劰载中...


辽公安备21100302203002号  | 辽ICP备17009251号  |  辽B2证-20170197