Jump to content

Экранная линейка


Recommended Posts

можно ещё добавить функцию масштабироания расчетных значений

Это как? Поясните, пожалуйста - не понял идею.

Link to post
Share on other sites


fox1001
Это как? Поясните, пожалуйста - не понял идею.

например. линейка откалибрована по виду который имеет масштаб 1:1. затем не меня чертежа переползаем на вид который выполнен в масштабе 1:2, вот тут вместо новой калибровки открываем контекстное меню (например) и задаем масштаб (пишем "1/2") жмем Enter и эталонные значения автоматически пересчитываются, в данном случае эталонное значение нужно увеличить в 2 раза без изменения положения движков.

т.е если

масштаб = 1:1 при расстоянии в пикселях равном 300 px эталонное значение 40 мм,

то для

масштаба = 1:2 при расстоянии в пикселях равном 300 px эталонное значение 80 мм,

Link to post
Share on other sites
  • 2 weeks later...
Plumber
обновил шапку темы.

Спасибо за прекрасный подарок к празднику :drinks_drunk: все работает просто СУПЕР  :clap_1:

Link to post
Share on other sites

Да, отлично работает. Благодарствую! Что вдруг интерфейс предельно минималистским стал? :-)

Link to post
Share on other sites
fox1001
Что вдруг интерфейс предельно минималистским стал? :-)

мне так лучше нравица m1003.gif 

Link to post
Share on other sites
Plumber
мне так лучше нравица
 

И мне так тоже о-о-очень нравица, ничего лишнего - КРАСОТА :biggrin:

Link to post
Share on other sites
  • 7 months later...

Никто не даст ссылку. А то яндекс.диск говори удалили фаил

Link to post
Share on other sites
  • 1 year later...

ЭЭЭЭ Есть проблема.... 

У меня она открывавется  в центре экрана. И нет возможности ее передвинуть. Только растянуть. Что я не так фигачу?

И... старая мне нравилась больше, но потерялась где-то =(((

Edited by RP_SPB
Link to post
Share on other sites
2 часа назад, RP_SPB сказал:

И нет возможности ее передвинуть.

а КАК ты её двигаешь? давай подробнее. по шагам и лучше с картинками. а ещё лучше видео.

на другом компе пробовал? пробуй и отпишись.

Link to post
Share on other sites
  • 2 weeks later...
  • 1 year later...
  • 5 years later...

хорошая программа, если бы можно было выбирать угол "нулевой координаты", а не только измерять из верхнего левого

:good:

  • Нравится 1
Link to post
Share on other sites
Ander

Он же размер диагонали даёт, подтащи к нужной точке левый угол, выстави диагональ по нужной линии - есть размер. Хелп в СНМе, правда, он в нём значения углов, по-моему, напутал. Программка отличная.

Edited by Ander
Link to post
Share on other sites

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

Link to post
Share on other sites
Ander

Мда, есть проблемка. Не буду её замечать ))))).

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • IgP
      Аааа, ну это стандартное решение от АСКОН: сделать тоже самое заново ... В данном случае установить ПО на ПК.
    • NDE
      Собственно доработка ПО, различные утилиты DLL (User functions), написанные с помощью UGOpen. Из NX необходимо читать (и по возможности записывать) атрибуты в BOM Teamcenter.  Ограничение версии NX - 10. А он, как известно, не умеет работать с атрибутами BOM line, с типами, отличающимися от строковых.   Пример, есть атрибут в BOM - номер вхождения с типом integer. При работе в NX необходимо знать, какой атрибут присвоен конкретному компоненту. Штатными средствами увидеть это невозможно (в сборку входит деталь несколько раз с разными значениями этого атрибута и просто визуально посмотреть в Менеджере структуры и потом в навигаторе сборки NX и понять, что к чему относится - невозможно). Да и каменный век это
    • IgP
      Ни hrena не понял ... Задачу бы лучше с технической/материалистичной стороны описали ...  
    • NDE
      Предисловие: "Или я слишком глубоко копаю и не вижу ответа на поверхности, или тут что-то действительно не так". Как организована интеграция NX и Teamcenter в части загрузки сборок и хранения информации о компонентах. Исходные данные: NX10, Teamcenter 11.6, испоьзование SOA из поставки NX, язык C/C++. Задача: из User Function NX читать атрибуты строк BOM и записывать их. Как я реализовал это сейчас:: Получаю сессию, открытую NX: NXOpen::Session *theSession = NXOpen::Session::GetSession(); NXOpen::PDM::PdmSession *thePdmSession = theSession->PdmSession(); connectionHandle = thePdmSession->GetSoaConnectionHandle(); Teamcenter::Soa::Client::Connection* tcSoaConnection = reinterpret_cast<Teamcenter::Soa::Client::Connection*>(connectionHandle->GetHandle()); Нахожу в базе ревизию сборки: dmSrev = Teamcenter::Services::Core::DatamanagementService::getService(tcSoaConnection); std::vector< Teamcenter::Services::Core::_2007_01::Datamanagement::GetItemFromIdInfo > query(1); Teamcenter::Services::Core::_2007_01::Datamanagement::GetItemFromIdPref pref; Teamcenter::Soa::Client::Model::ItemRevision *itemRevision; Teamcenter::Soa::Client::Model::Item *item; std::vector< Teamcenter::Soa::Client::ModelObject * > objs(1); query[0].itemId = object_id.GetUTF8Text(); query[0].revIds.push_back(object_rev.GetUTF8Text()); Teamcenter::Services::Core::DatamanagementService::GetItemFromIdResponse item_bom_response = dmSrev->getItemFromId(query, 1, pref); Создаю новое окно BOMWindow: itemRevision = item_bom_response.output[0].itemRevOutput[0].itemRevision; item = item_bom_response.output[0].item; bom_info[0].item = item; bom_info[0].itemRev = itemRevision; bom_info[0].clientId = "InfoDSERequest"; bom_info[0].bomView = nullptr; bom_info[0].objectForConfigure = nullptr; bom_info[0].activeAssemblyArrangement = nullptr; bom_info[0].revRuleConfigInfo = revRuleConfigInfo; Teamcenter::Services::Cad::StructuremanagementService *structServ = Teamcenter::Services::Cad::StructuremanagementService::getService(tcSoaConnection); Teamcenter::Services::Cad::_2007_01::Structuremanagement::CreateBOMWindowsResponse bomWindow = structServ->createBOMWindows(bom_info); topLine = bomWindow.output[0].bomLine; Дальше перебираю BOMLine, ищу UG ENTITY HANDLE, совпадающие с хэндлом в NX (с отбрасыванием от хэндла версионной информации, т.е. первые 28 символов): cur_line = dynamic_cast<Teamcenter::Soa::Client::Model::BOMLine *>(child_lines[i]); ent_handle = cur_line->get_UG_ENTITY_HANDLE(); UF_TAG_decompose_handle ((char*)ent_handle.c_str(), &file_data, &sub_file_id, &versio); child_file_data = file_data; UF_free(file_data); instance_file_data.resize(28); child_file_data.resize(28); if (!instance_file_data.compare(child_file_data) && instance_sub_file_id==sub_file_id) // Сравнение искомого компонента с каждой строкой BOMLine { Чтение атрибутов, например, seq_no = cur_line->get_bl_occ_int_order_no(); }   Считаю что это неэффективно, да и вообще неправильно. Если посмотреть, что создаёт NX в кэше SOA с помощью Teamcenter::Soa::Client::ModelObjectVector all_objs; tcSoaConnection->getModelManager()->getObjectsFromStore(all_objs); То мы увидим там и BOMWindow  и BOMLine и PSOccurrence и PSOccurrenceThread. Т.е. уже всё открыто и по идее надо работать именно с этими объектами. Но я, хоть убей, не могу найти связь между компонентом сборки NX и объектом TC. Максимум, что я накопал штатными средствами: Можно получить хэндл в БД для PendingComponents (естественно, NX Component для них ещё отсутствует). Хэндл имеет следующий вид: "wCpJ4WwyhfM7oB 0WhJ4WwyhfM7oB 2tpdxbGAhfM7oB". Это 3 UIds в Teamcenter. Первый - это UId айтема/ревизии, второй - PSBOMView, третий PSOccurrenceThread. Не штатными средствами, если импортировать функцию UGMGR_NX_ask_db_comp_handle_uids из LIBUGMR.DLL, можно получить такой же набор UIds для любого компонента NX или только PSOccurrenceThread  с помощью UGMGR_NX_ask_occ_thread_of_instance: HINSTANCE lib = nullptr; typedef int(__cdecl *INT_TAG_CHAR_PROC)(tag_t, char **); typedef int(__cdecl *INT_TAG_CHAR3_PROC)(tag_t, char **,char ** ,char **); INT_TAG_CHAR3_PROC UGMGR_NX_ask_db_comp_handle_uids; INT_TAG_CHAR_PROC UGMGR_NX_ask_occ_thread_of_instance; lib = LoadLibraryA("LIBUGMR.DLL"); UGMGR_NX_ask_db_comp_handle_uids = (INT_TAG_CHAR3_PROC)GetProcAddress(lib, "?UGMGR_NX_ask_db_comp_handle_uids@@YAHIPEAPEAD00@Z"); UGMGR_NX_ask_occ_thread_of_instance = (INT_TAG_CHAR_PROC)GetProcAddress(lib, "?UGMGR_NX_ask_occ_thread_of_instance@@YAHIPEAPEAD@Z"); tag_t inst_tag = UF_ASSEM_ask_inst_of_part_occ(pComponent->Tag()); UGMGR_NX_ask_db_comp_handle_uids(inst_tag, &buf, &buf1, &buf2); UGMGR_NX_ask_occ_thread_of_instance(inst_tag, &buf);   Эти функции написаны на C без использования ООП, поэтому мне удалось их использовать. Аналогичных функций в UGOpen я не нашёл. В принципе в LIBUGMR.DLL имеются функции для работы с BOM, но они уже на C++  с использованием классов, а лезть в это без исходной документации не лучшая идея. Да и противоречит лицензионной политике .   И вот собственно вопросы. 1. Как перейти от PSOccurrenceThread к PSOccurrence или BOMLine? (Для этого нужно знать, в каком BOMWindow искать). 2. Как найти нужный BOMWindow?   Примечания: 1. Может быть есть штатные функции получения хэндла в БД на основе instance или occurrence в NX? 2. NX создаёт BOMWindow в следующих случаях: при первом открытии сборки. отдельные BOMWindow для подсборок не создаются. Но если сначала открыть подсборку, а потом вышестоящую сборку, то в системе будет создано 2 BOMwindow. 3. NX не закрывает созданные BOMWindow до конца сессии (видимо поэтому и память потребляет как не в себя). Например, если открыть сборку, потом закрыть её и снова открыть, NX создаст 2 BOMWindow.
    • KSVSVK
      При расчете оболочечной конструкции требуется указать толщину. Этот же размер используется при построении стыкуемых с ней элементов. Естественно хочется задавать его только один раз. Использование размера с эскиза - скелетона в сборке оказывается невозможным. Поэтому в сборке задаю глобальную переменную и присваиваю ее размеру. Теперь нужно установить ее в качестве связанного значения толщины оболочки в Simulation. Объединяю несколько оболочек в группу и в ее свойствах пытаюсь поставить значение. В выборе параметров определяю новый и задаю значение глобальной переменной При этом, несмотря на то, что переменная выше определена с размерностью "мм", здесь единица измерения оказывается "N/A" После применения изменений возвращается предыдущее окно с пустым списком, т.е. введенная переменная не отобразилась. Как задать такую связь?
    • Maik812
      Ты просто хамло и с тобой нет разговора. я вопрос задал как печать сложные детали. что касаемо больших и сложных был вопрос кстати!
    • mamomot
      Никто не "подставляется". Процесс создания качественной отливки не столь однозначен. В подавляющем числе случаев это только путь опыта конкретных решений...  
    • Radon
      Самое прямое.  А по рекламе, вуза такого более нет.
    • Killerchik
      Да вот на выходе с принтера - без проблем поверю. А вот через пару месяцев описанной выше эксплуатации получается "не совсем" :) Это я конечно о пластиках, напечатанные металлы ведут себя куда стабильнее.
    • ДОБРЯК
      Это же "Учебное пособие предназначено для выполнения курсового проекта по курсу «Надежность АД и ЭУ» " Какое отношение это учебное пособие имеет к реальному проектированию.:=) Если только реклама «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА» 
×
×
  • Create New...