问题标签 [ocean]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何使用 Ocean 为区域创建属性并在每个区域中设置值
我找不到如何为区域创建属性的方法。
ocean - 如何删除过时的自定义 Ocean 对象
我正在实施定制的数据源。由于我正在对序列化机制进行更改,因此在重新启动项目时,我的输入数据树中会出现很多过时的对象条目(无法从数据源中读取对象)。如何从输入树中删除这些对象,正常的删除功能对这些对象不起作用。
ocean - 计算断层解释和折线相交
我计划制作可以测试钻孔是否穿过断层的功能。我的第一个想法是制作一个工作步骤组件,该组件将钻孔和故障解释作为输入并返回交叉点的数量。我已经做了一个检查故障解释是否与表面相交的工作步骤。该函数的核心如下:
以上工作正常,我想我可以沿着相同的线做一些事情来计算折线(井轨迹)和从代表故障解释的折线集合生成的表面之间的交点。关键问题是,有没有办法从一组折线中获取/生成表面?故障解释可以显示为一个表面(三角化),这个表面是否可以从 api 访问?从 api 返回的表面必须能够用作 ISurfaceIntersectionService 的参数。如果通过 Ocean api 无法做到这一点,有没有一种方法可以让用户从断层解释中预先准备断层解释?或者也许有一种完全不同的方法可以有效地解决上述问题?
.net - 海洋单元测试
当我尝试从 Ocean SDK 运行单元测试示例时,当我尝试在 NUnit.exe 中加载 dll 时出现错误。任何人都可以帮助解决可能的原因吗?
NUnit.exe 的以下异常:
ocean - 注册模块时 Slb.License 出错
我有一个引用 Slb.License 以获得 Ocean2010 许可的项目。我正在针对 Petrel 2010.1 进行构建。
在运行 >Petrel 2010.1 (2010.2.2) 的机器上安装插件后,我使用 registermodule.exe 注册我的模块。除引用 Slb.License 的许可证模块外,所有模块都正确注册。
RegisterModule.exe 给我一个错误:“无法加载指定的模块。原因:无法加载文件或程序集' Slb.License, Version=2009.1.4.32700, Culture=neutral, PublicKeyToken=05cb3974809 3345b' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)"
错误中的版本 2009.1.4.32700 是与我正在构建的 Petrel 2010.1 一起打包的 Slb.License 版本。Petrel 2010.2.2 打包的 Slb.License 版本为 2010.1.5.21635。
有什么想法吗 ?如果我手动将我的许可证模块添加到 Petrel.exe.config,我的插件会正确加载并正常工作。我有问题的 RegisterModule.exe。
谢谢。
编辑
这在以前的版本中有效,但不确定具体如何。
ocean - 部署相互交互的插件
我们希望实现通过在共享程序集中声明的接口进行交互的插件。从技术上讲,几个插件将使用“主”插件注册实体(在集成期间),而后者又会使用这些实体(在 Petrel 会话期间)。
由于每个插件通常都是商店中的不同产品,因此它们需要由不同的 PIP 安装。
插件将向后兼容共享程序集。
是否可以使用 PIP 安装程序来实现这一点 - 以及如何实现?
ocean - 域对象“已更改”事件多次触发?
我有一个自定义窗口来显示输入树中的各种对象。一旦在输入树上检查了一个对象并显示在窗口中,我就订阅了该对象的“已更改”事件。我绝对确定我没有多次订阅该活动。我看到的问题是当我对对象进行更改(例如颜色)时,事件会触发 3 次。
伪代码:
编辑:
我注意到只打开设置并单击“确定”而不更改任何内容会导致 3 个事件被触发。所以现在我认为它实际上与改变颜色无关。
我也试过检查DomainObjectChangeEventArgs PropertyNames
属性,但总是空的。
c# - 如何使用 Petrel 演示项目运行 Ocean 测试
我正在尝试运行 Ocean 测试框架测试,在其中打开 Petrel 2011 演示项目。但是,当我打开项目时,PetrelSystem.ProjectService.OpenPrimaryProject()
我收到以下错误消息并且测试被中止:
有解决此问题的方法吗?
visual-studio-2012 - 使用 Visual Studio 11 Beta 构建 Ocean 2011 插件 - InventorNet.dll 问题
我已经开始测试 VS11 beta 来构建 Ocean 2011 插件。它似乎工作得很好,并且有足够的优势,我正在考虑将它用于日常工作。(当然,在 Schlumberger 推荐之前,我们不会使用 VS11 进行生产构建。)
但是,有一个阻塞问题:
依赖 InventorNet.dll 的项目无法构建,并显示以下消息:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1546,5):警告 MSB3270:正在构建的项目的处理器架构“MSIL”与参考“InventorNet”、“AMD64”。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改项目的目标处理器体系结构,以便在项目和参考之间对齐处理器体系结构,或者依赖具有与项目的目标处理器体系结构匹配的处理器体系结构的参考。
CSC:致命错误 CS0008:从文件“c:\Program Files\Schlumberger\Petrel 2011\InventorNet.dll”读取元数据时出现意外错误——“未找到索引。”*
我认为第一个警告是无害的,因为其他依赖项会发出类似的警告,但我无法通过错误消息(粗体)。两者都可能源自 MSBuild 使用的 .NET 4.5(也在测试版)中更严格的程序集验证。我们的项目面向 .NET 3.5。
有谁知道该错误是否可以通过某些设置或其他技巧来修复,或者我们是否需要来自 Schlumberger 的更新程序集?(谷歌搜索产生了一些与 VS2010 相关的类似案例,并表明程序集提供者确实需要重建程序集以纠正问题。)
或者,有人可以指出这个问题是否会在 Ocean 2012 中得到解决?
ocean - 重构/重命名 Ocean Workstep 派生类
似乎一旦将 Ocean Workstep 派生类发布到生产环境(并被客户端使用),它的名称、命名空间和程序集名称就会被有效地锁定以供将来更新(以确保向后兼容性)。
保存 Petrel 项目时,工作步骤引用将保存为二进制文件 Classes.ptd 中的完整类型名称(命名空间、类、强程序集名称)。在加载过程中,如果无法解析确切的类型名称(程序集版本似乎被忽略),则工作步骤在工作流编辑器中显示为“工作步骤不可用”。
在我们遇到的其他二进制序列化实例中,Petrel 使用已SerializationBinder
注册的PetrelSystem.ProjectSerializationService
- 对于 Workstep 实例并非如此。
有没有其他方法可以促进 Workstep 类/命名空间/程序集重命名?
为什么这种行为的记录如此糟糕(如果有的话)?我们是不是误会了什么?