NX二次开发-VS使用NXOpen向导创建项目失败,再次弹出创建向导对话框,解决办法

592 篇文章 436 订阅 ¥299.90 ¥99.00

NX二次开发-VS使用NXOpen向导创建项目失败,再次弹出创建向导对话框,解决办法

这个问题前两年就遇到过,当时知道怎么解决,但没写博客记录,觉得这就是个很简单的问题,不起眼。

但是后来也发现有很多人遇到这种问题,到处在QQ群问。虽然问题不大,可能这就是做过有经验和没做过没经验的区别。今天我刚好又遇到了,就再次记录一下。

问题描述
在这里插入图片描述解决办法

检查当前NX的环境变量UGII_BASE_DIR,指向的是不是当前NX版本的路径,如果你装了多个版本,指向的不是当前VS要开发的这个版本,就会出现上面的问题。

我的问题是指向版本的路径写得不对,少了一个空格,NX和9中间应该有一个空格

在这里插入图片描述
改正如下

D:\Program Files\Siemens\NX 9.0

在这里插入图片描述
再次打开VS用向导创建项目,创建成功
在这里插入图片描述如果还是失败,可能你的环境变量需要重启电脑才能生效,在试一下。

Caesae卢尚宇

2021年3月11日

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
NX二次开发中,使用FDH(k-DOP)算法创建实体的最小包容盒可以通过以下步骤完成: 1. 获取实体的边界框(bounding box):可以使用NXOpen.UF.BoundingBox.AskBoundingBox函数获取实体的边界框。 2. 将边界框转换为k-DOP表示法:k-DOP是一种基于凸包的多面体表示方法,可以用于快速计算实体的最小包容盒。可以使用NXOpen.UF.Kdop.Create函数将边界框转换为k-DOP表示法。 3. 使用FDH算法计算最小包容盒:FDH算法是一种基于k-DOP表示法的快速包容盒计算方法。可以使用NXOpen.UF.Kdop.Fdh函数计算实体的最小包容盒。 以下是一个示例代码: ``` using System; using NXOpen; using NXOpen.UF; class KdopDemo { static void Main(string[] args) { Tag partTag = Session.GetSession().Parts.Work.Tag; Tag[] bodyTags = GetSelectedBodies(); UFSession ufSession = UFSession.GetUFSession(); foreach (Tag bodyTag in bodyTags) { // 获取实体的边界框 double[] bbox = new double[6]; ufSession.Modl.AskBoundingBox(bodyTag, bbox); // 将边界框转换为k-DOP表示法 int kdopOrder = 8; // 8表示八面体 double[] kdop = new double[kdopOrder * 2]; ufSession.Kdop.Create(kdopOrder, bbox, kdop); // 使用FDH算法计算最小包容盒 double[] mbb = new double[kdopOrder * 2]; int retcode = ufSession.Kdop.Fdh(kdopOrder, kdop, mbb); if (retcode == 0) { // 创建最小包容盒 Tag mbbTag = ufSession.Modl.CreateBox1(partTag, FeatureSigns.Nullsign, mbb); } } } static Tag[] GetSelectedBodies() { Selection sel = Session.GetSession().SelectionManager; sel.SingleObjectPerSelection = true; sel.Scope = Selection.SelectionScope.OnlyVisible; sel.SelectionScope = Selection.SelectionScopeIndivisible.SelectionScopeAnyInAssembly; sel.Clear(); sel.DialogTitle = "Select bodies"; sel.Filters = new Selection.MaskTriple[] { new Selection.MaskTriple(ObjectType.Body, 0, 0) }; sel.EnableMultiple = true; sel.EnableSearch = true; sel.MaxNumberOfPicks = 0; sel.SetSwitchMask((int)(Selection.SelectionAction.ClearAndEnableSpecific)); sel.SetSwitchMask((int)(Selection.SelectionAction.AddToExisting)); sel.SetSwitchMask((int)(Selection.SelectionAction.RemoveFromExisting)); sel.SetSwitchMask((int)(Selection.SelectionAction.InvertExisting)); sel.SetSwitchMask((int)(Selection.SelectionAction.Toggle)); sel.ClearMenu(); sel.UpdateView(); sel.ResetButtonName(); sel.SetButtonName("Done"); sel.SetFilterText("Select bodies"); if (sel.CanSelect()) { sel.StartSelection(); } int count = sel.Count; if (count == 0) { throw new Exception("No bodies selected."); } Tag[] tags = new Tag[count]; for (int i = 0; i < count; ++i) { Tag tag = sel.SelectedTag(i); tags[i] = tag; } return tags; } } ``` 这个代码示例可以让用户选择一个或多个实体,然后计算它们的最小包容盒,并在Part Navigator中创建一个新的最小包容盒实体。注意,这个代码示例仅仅是用来演示如何使用FDH算法计算最小包容盒,实际应用中可能需要根据具体需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿飞2018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值