Перейти к публикации

NXOpen Basic .NET


asd

Рекомендованные сообщения

Вот работаю я со сборкой, выделил нужный мне компонент как объект класса Component. Как узнать, в каком файле этот компонент находится?

Если бы это был объект класса Part, то это можно было бы сделать так:

Dim path As String = my_Part.FullPath

Но у компонентов свойства FullPath нет.

Вопрос вдогонку:

Как переключать режимы, то есть переключаться, скажем, между моделированием и обработкой?

Изменено пользователем asd
Ссылка на сообщение
Поделиться на других сайтах


На первый вопрос нашел ответ на иностранном форуме. Легким движением руки "Component" преобразуется в "Part"

my_part = CType(my_component.Prototype, Part)

, а дальше как я говорил.

По второму вопросу, там же, говорят что это невозможно, по крайней мере в NX3.

У меня, правда, NX4.

Ссылка на сообщение
Поделиться на других сайтах

Напрямую сделать так наверно не получится, но можно попробовать немного схитрить.

Я использую NXOpen .NET API из 5ки.

И сразу прошу прощения, что отправляю непроверенный код, так как возможности его потестить сейчас нет...

Смысл такой - я создаю новую часть и устанавливаю для неё модуль из перечислителя public enum FileNewApplication (в примере модуль обработки). Также устанавливаю свойство не делать создаваемую часть отображаемой fileNew.MakeDisplayedPart = false; . По логике NX должен переключиться в установленное приложение, а созданную часть в фоне затем можно попробовать закрыть.

Надеюсь, этот подход сработает) (код на C#)

theSession = Session.GetSession();

FileNew fileNew = theSession.Parts.FileNew();

fileNew.Application = FileNewApplication.Cam;

fileNew.NewFileName = "bufferFile.prt";

fileNew.MakeDisplayedPart = false;

fileNew.Commit();

fileNew.Destroy();
Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

Пытаюсь получить программный доступ к геометрии, заданной в операции обработки.

Операция типа FIXED_CONTOUR, метод управления - Граница (drive method - Boundary).

В принципе как бы получается, например вот этот тестовый код, запущенный как journal, отрабатывается нормально.

------------------------------

Option Strict Off

Imports System

Imports System.IO

Imports System.Windows.Forms

Imports NXOpen

Imports NXOpen.CAM

Imports NXOpen.UF

Imports NXOpen.Utilities

Module test

Dim theSession As Session

Dim theUfSession As UFSession

Sub Main()

theSession = Session.GetSession()

theUfSession = UFSession.GetUFSession()

Dim WorkPart As Part = TheSession.Parts.Work

Dim setupTag As Tag

Dim camObjectTag As Tag

Dim selectedTags() As NXOpen.Tag

Dim selectedCount As Integer

Dim lw as ListingWindow = theSession.ListingWindow

lw.Open()

theUfSession.Cam.InitSession()

theUfSession.Setup.AskSetup(setupTag)

theUfSession.UiOnt.AskSelectedNodes(selectedCount, selectedTags)

Dim i As Integer

Dim x() as IntPtr

theUFSession.Cambnd.AskBoundaries(selectedTags(0), CamGeomType.CamTrim, i, x)

lw.WriteLine(i)

End Sub

End Module

-----------------------------

Проблема возникает, когда я заменяю CamGeomType.CamTrim на CamGeomType.CamDrive, то есть пытаюсь заполучить не Trim Boundaries, a Drive Boundaries. Программа просто вылетает с ошибкой "Object is not the desired type".

Вопрос: как получить доступ к "управляющим границам" (Drive Boundaries)?

Это всё в NX7.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...