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

Получить TCComponentBOMLine


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

День добрый. А есть ли возможность получить текущий выделенный TCComponentBOMLine. Для компонента работает так:

 

InterfaceAIFComponent comps [] = application.getTargetComponents();

TCComponentItem object = (TCComponentItem) comps[0];

 

Думал, что можно просто привести к нужному мне, но не работает. Падает:

 

TCComponentBOMLine boml = (TCComponentBOMLine) comps[0];

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


      
public class Handler extends AbstractHandler
{
    public Object execute(ExecutionEvent event) throws ExecutionException 
    {
ISelection m_selection = HandlerUtil.getCurrentSelection(event);
AIFComponentContext aifComp[] = SelectionHelper.getTargetContexts(m_selection);
TCComponentBOMLine boml = (TCComponentBOMLine) aifComp[0].getComponent() ;

   }

}

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

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

 

... extends AbstractAIFAction

 

public void run()

{

// тут

...

}

 

Не могу выйти на event или найти ему замену

Попробовал еще так

 

ISelection m_selection = this.getSelection();

AIFComponentContext aifComp[] = SelectionHelper.getTargetContexts(m_selection);
TCComponentBOMLine boml = (TCComponentBOMLine) aifComp[0].getComponent() ;

 

также на последней строке падает((

А может вообще бомлайн из главной рабочей области получить нельзя?

Ссылка на сообщение
Поделиться на других сайтах
53 минуты назад, cppGhost сказал:

День добрый. А есть ли возможность получить текущий выделенный TCComponentBOMLine. Для компонента работает так:

 

TCComponentBOMLine boml = (TCComponentBOMLine) comps[0];

вообще это должно работать.ищите в другом месте. или дайте кусок кода целиком.

 

так как у вас AIFAction и вы в методе run() работаете - то в это в принципе и причина скорей всего. В разных потоках получается. Что именно отладчик выдает ?

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

Вот прямо сначала метода:

 

public void run()
    {
        try
        {
            InterfaceAIFComponent comps [] = application.getTargetComponents();
            if((comps != null) && (comps.length > 0) && (comps[0] != null))
            {                

                ErrorMsg_1("before");
                TCComponentBOMLine boml = (TCComponentBOMLine) comps[0] ;
                ErrorMsg_1("after");

             }

}

 

Есть только сообщение "before". Сообщение уже не появляется. Вызываю данную команду из рабочей области тимцентра кнопкой на тулбаре.

P.S. отладчика нет(( приходится делать код и смотреть фактически на машине клиента

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

Еще заметил проблему, которая, как мне кажется, такая же. Есть у меня команда "вставить" в своем виде. Для вставки я беру элемент из буфера обмена и также приведением получаю бомлайн. Так вот если зайти в менеджер структуры и оттуда скопировать элемент, то всё ок. А если прямо из рабочей области тимцентра, то приведение типа 

 

TCComponentBOMLine boml = (TCComponentBOMLine) comps[0];

 

также валится.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, cppGhost сказал:

 

Есть только сообщение "before". Сообщение уже не появляется. Вызываю данную команду из рабочей области тимцентра кнопкой на тулбаре.

P.S. отладчика нет(( приходится делать код и смотреть фактически на машине клиента

а в чем вы пишите?не в эклипсе разве?какая версия ТС?

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

Эклипс. ТС10. И всё больше мне кажется, что бомлайны начинаются только при работа с менеджером структуры.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, cppGhost сказал:

Еще заметил проблему, которая, как мне кажется, такая же. Есть у меня команда "вставить" в своем виде. Для вставки я беру элемент из буфера обмена и также приведением получаю бомлайн. Так вот если зайти в менеджер структуры и оттуда скопировать элемент, то всё ок. А если прямо из рабочей области тимцентра, то приведение типа 

 

TCComponentBOMLine boml = (TCComponentBOMLine) comps[0];

 

также валится.

хм, ну а разве не так должно работать...
в одном месте бомлайны в другом айтемы

Ссылка на сообщение
Поделиться на других сайтах
46 минут назад, cppGhost сказал:

Эклипс. ТС10. И всё больше мне кажется, что бомлайны начинаются только при работа с менеджером структуры.

так какие проблемы с отладкой в эклипсе?у вас может отладка не настроена?там все прекрасно отлаживается

 

 

46 минут назад, cppGhost сказал:

Эклипс. ТС10. И всё больше мне кажется, что бомлайны начинаются только при работа с менеджером структуры.

ну вам правильно кажется. как уже сказали - айтемы(мухи) отдельно, бомлайны(котлеты) - отдельно.

 

айтем в навигаторе тимцентра  != бомлайн выделенный в менеджере структуры. Это объекты двух разных классов.И это должно быть очевидно

 

У бомлайна есть методы getItem или getItemRevision

Изменено пользователем lexx174
Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, cppGhost сказал:

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

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

И откуда ещё взяться бомлайну, если для его определения нужно правило ревизии, дата и т.д.?

Вообще я не специалист, но это же специфичный рантайм класс, по сути то.

Тимцентру его сначала "вычислить" надо на основе какой-то структуры и дополнительных данных(правила, айтемы или ревизии айтемов (в случае точной структуры)), а потом уже использовать.

И вычислением как раз менеджеры стуктур занимаются (ну или какой-то общий класс-движок в этих менеджерах работает).

 

Изменено пользователем Алексей256
Ссылка на сообщение
Поделиться на других сайтах
В 24.07.2017 в 11:54, cppGhost сказал:

Еще заметил проблему, которая, как мне кажется, такая же. Есть у меня команда "вставить" в своем виде. Для вставки я беру элемент из буфера обмена и также приведением получаю бомлайн. Так вот если зайти в менеджер структуры и оттуда скопировать элемент, то всё ок. А если прямо из рабочей области тимцентра, то приведение типа 

 

TCComponentBOMLine boml = (TCComponentBOMLine) comps[0];

 

также валится.

так и должно быть, BOMLine - runtime объект, он есть только в менеджере стуркутры.

В 24.07.2017 в 16:39, Алексей256 сказал:

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

И откуда ещё взяться бомлайну, если для его определения нужно правило ревизии, дата и т.д.?

Вообще я не специалист, но это же специфичный рантайм класс, по сути то.

Тимцентру его сначала "вычислить" надо на основе какой-то структуры и дополнительных данных(правила, айтемы или ревизии айтемов (в случае точной структуры)), а потом уже использовать.

И вычислением как раз менеджеры стуктур занимаются (ну или какой-то общий класс-движок в этих менеджерах работает).

 

именно

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • GHEB
    • Orchestra2603
      Во-первых, я то ничего не доказываю. Это вы пытаетесь доказать, что без закреплений нельзя считать на собственные частоты. Набросили гавнеца на вентелятор, как вы всегда делаете, а я дурак триггернулся и свои нервые клетки трачу уже не первый день. Не могу я спокойно смотреть на то, когда белое называют черным, так еще и тем, кто четко говорит, что "кам он! белое же!"  достается в стиле "сам дурак!".    Когда вас спрашивают прямо "почему так?", вы начинаете свой сказ про мифическую факторизацию, но какую именно вы сказать не можете. Зато начинаете раздавать экзаменационные задания. Ваша фирменная манера вести разговор. Браво.   Не то чтобы я кайфовал от того, что вы меня заставляете биться лбом об стену. Просто я все еще тешу себя надеждой, что эту стену проломить. Уже не первый раз, блин, на те же грабли.    В том то и дело... Мне не нужно знать деталей алгоритмов, чтобы понять, что вы пургу несете. Знаний из линейной алгебры мне вполне достаточно для этого.
    • Fedor
    • Шайтан
      Просто скачал, построил сетку не меняя ничего, запустил расчет. Ошибок не выдает.
    • lem_on
      Да, обработка вразбежку, стандартный прием и на точении тоже. 
    • ДОБРЯК
      Вы что-то доказываете, рассказываете, пишите много слов и букв, а в итоге говорите, что деталей не знаю. :=) Это что-то из серии мазохизма. :=) Вас раздражает, а вы продолжаете разговор, и в итоге виноват я.  Ладно бы доказывали когда знаете детали что доказываете. Написали кучу сообщений, а в итоге сказали, что не знаю деталей о чем сам написал кучу сообщений. :=)   Просто великолепно.
    • hlibhlib
      Так решили?  https://disk.yandex.ru/d/ZDWZv8p_B7l6nw
    • nicomed
      Я не программист, тем более не системщик. Могу только гипотетически предполагать что разные версии NET Framework в системе... я писал под 4.7.2. Переписывать с отловом ошибок , если честно лень. Тут вообще глаза на лоб лезут. Из не стандартных Майкрософтовских библиотек использовались только библиотеки от Солид-а. Что там может хотеть автозагрузки не представляю. Обычное WPF приложение. Исходники в доступе. С похожим сталкивался к каком аспекте: Когда у себя тестировал скрытие кромок, то для того, что бы сделать все кромки опять видимыми, то переходил в режим видимости кромок в Солиде ( ) и нажимал кнопку "Сбросить все". Визуально все кромки делались видимые. Потом после использования  макроса все кромки, что до этого скрывались и проявились после нажатия кнопки - скрывались вновь.   При тестах на 2-х машинах Вин10 СВ21 - пока проблем не было.
    • maxx2000
      выдавить на экструдере и пилой шик-шик, как колбасу, а не заниматься суходрочкой. если это корпуса с интегрированным оребрением, вложиться в литье люминя под давлением.
    • Говорящий Огурец
      Во, вспомнил, где я картинки видел! :) Инструкция по эксплуатации Sandvik Coromant. Обработка титана. Техническое руководство.pdf Начиная с 91-й страницы.   Чисто интуитивно применял нечто подобное на алюминии и технических пластиках при фрезеровке ребер/стенок
×
×
  • Создать...