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

Помогите разобраться с API


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

...

Сейчас не получиться. Устраняю пробел в знаниях OpenGL. Для той же самой спецификации.

А то, если большая сборка, головная боль начинается. :)

Ну и как успехи? Подключил? В проекте, я имею ввиду? Справка OpenGL по функциям работает?

Не помню как в СИ, в VB и Delphi набираешь 2-3-4 буквы названия функции, потом жмешь Ctrl + Пробел -

появляются варианты подходящих функций.

"Минимальную" программу с использованием OpenGL написал уже?

Я имею ввиду:

- инициализация OpenGL

- создание окна

- "обнуление" OpenGL

Я начинал с этого.

Ты не забывай: в справке API SW сделай поиск по слову OpenGL.

Там самое "вступление" в OpenGL для SW :

uiModelView_c::InitializeShading()

CClientDC dC(CWnd* parentWindow);

HGLRC hRc = ::wglCreateContext(dC.m_hDC);

::wglMakeCurrent(dC.m_hDC, hRc); (call this before each 'paint' operation)

*****

здесь твои операции с функциями OpenGL

*****

When you are done using OpenGL for this paint'operation, call:

::wglMakeCurrent(NULL, NULL); ' обнуление

When the DLL shuts down or the <noindex>ModelView</noindex> object is destroyed (watch for a <noindex>ModelView DestroyNotify2 event</noindex>), your application must do the following:

::wglDeleteContext(hRc); ' удаление обязательно! иначе окно разрушится! возникнут артефакты...

Ты мою прогу "Cube.exe " запускал? Там в закладке "настройки" есть переключатель стиля отображения:

закрашенное, каркас, точками.

Но по моему, это я делал примеительно ко всем объектам в окне, а вот по отдельности - не помню.

Тут нужен идентификатор объекта. Ну когда сам создаешь объект, его идентификатор вроде без проблем

можно получить. А тебе ведь надо получить идентификатор объекта SW !

Это значит:

- найти это окно SW,

- инициализировать OpenGL,

- сделать нужные операции

- "обнулить" OpenGL

Тут надо еще смотреть API Windows по работе с окнами: события, посылка сообщений, поиск окна...

Да, еще, в Си твоем нашел справку по функциями OpenGL?

Если нет могу переслать ту, которую я нашел в дистрибутиве Delphi - 640 Кб.

Там все функции OpenGL описаны в стиле Си.

Вообщем, есть над чем подумать!

Короче, удачи! :-)

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


Я имею ввиду:

А тебе ведь надо получить идентификатор объекта SW !

Это значит:

- найти это окно SW,

- инициализировать OpenGL,

- сделать нужные операции

- "обнулить" OpenGL

Первая, вторая и четвертая операции сделаны. С третьей пока проблемы. Дальше надо по "умным" книжкам пройтись, чтобы привязаться к SW, извилины напрячь, по клаве постучать, пыль с компа стереть.... На это время некоторое уйдет. О результатах сообщу.

P.S. Давай через личку, а то автору топика не интересно, наверное, про OpenGL.

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

Это сделано. Дальше надо по "умным" книжкам пройтись, чтобы привязаться к SW, извилины напрячь, по клаве постучать, пыль с компа стереть.... На это время некоторое уйдет. О результатах сообщу.

P.S. Давай через личку, а то автору топика не интересно, наверное, про OpenGL.

Да, давай.

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

Самое интересное началось и ушли в личку :(

найти это окно SW, - это что значит? Найти окно, где отображается деталь? а нафига его искать, проше с деталью работать с его именем файла

я вот столкнулся с проблемой при работе с OpenGL в ModelView. Она заключается в том, что не всегда работают события в SW для вызова функий ModelView при разных вериях солида и одних и тех же библиотек SW для программирование.

писал для SW2005 там на openGL что то рисовалось по событиям. при этом использовал либы от SW2005. Когда стал запускать под SW2006, то события отпрабатывались. когдаже использовал либы от SW2006, то все работало в SW2006, но не работало SW2005

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

Самое интересное началось и ушли в личку :(

найти это окно SW, - это что значит? Найти окно, где отображается деталь? а нафига его искать, проше с деталью работать с его именем файла

я вот столкнулся с проблемой при работе с OpenGL в ModelView. Она заключается в том, что не всегда работают события в SW для вызова функий ModelView при разных вериях солида и одних и тех же библиотек SW для программирование.

писал для SW2005 там на openGL что то рисовалось по событиям. при этом использовал либы от SW2005. Когда стал запускать под SW2006, то события отпрабатывались. когдаже использовал либы от SW2006, то все работало в SW2006, но не работало SW2005

Тогда надо-бы переносить обсуждения (про OpenGL) в другой раздел - программирование или там

новую тему создать.

А можно поинтересоваться что ты делал средствами OpenGL в SW?

Я-то в такой связке не работал, а вот Shvg это заинтересовало.

Да и меня тоже...

Может представишь маахонький кусочек кода? Хотя-бы начало и конец проги.

найти это окно SW, - это что значит? Найти окно, где отображается деталь? а нафига его искать, проше с деталью работать с его именем файла

Как ты программно переключишься в это окно с деталью???

Каждое окно имеет заголовок и hwnd по которым его можно найти, активировать, максимизировать и делать все, что захочешь

А также посылать ему сообщения, "отлавливать" события - ну вообщем см. WinApi Windows:

например:

function FindWindow(ClassName, WindowName: PChar): HWnd;

Находит pодительское окно веpхнего уpовня с совпадающими ClassName и WindowName.

Не осуществляет поиск дочеpних окон.

Если ты пишешь совершенно автономную прогу, не используя API SW, как ты можешь обратиться к окну другого приложения,

когда на текущий момент активно окно твоей проги?

Только найти его через FindWindow, инициализировать OpenGL и в нем работать...

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

ssv22

Shvg

fomenko

Возвращаясь к теме про спецификацию. А чем вам плох путь по которому пошел Rich? Т.е. делать спецификацию путем редактирования внутренней солидовской спецификации. Тогда и считывание сборки и обновление позиций делается средствами самого солида. Я тоже потихоньку пишу свой редактор спецификаций и решил работать именно с солидовской таблицей.

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

А чем вам плох путь по которому пошел Rich?

Никто и не говорил, что этот путь плох. Сейчас, к сожалению, а может и наоборот, меня, по моей работе, солидовская спецификация, в принципе не интересует, да особо уже и не знаком с ней. Так, когда новая версия SW появляется, посмотришь, что новенького, и до следующей.. А когда все это дело затевалось, специя SW, мягко выражаясь, никуда не годилась. Пришлось садиться за API и делать то, что нужно. То есть, то что устраивает тебя полностью. Что написал, то и получил. Никаких претензий, только к себе. А то, что не устраивало, я уже писал вроде. Повторюсь. Раскрытие сборок до определенного уровня вложений, перевод деталей из одного раздела в другой, сортировка, автоматическое определение стандартных изделий, подсчет кол-ва, имеются в виду ситуации, которые я описал несколько выше. Заполнение чертежей с помощью спецификации, печать, да и многое другое. Плюс дополнитнльный функционал, вроде переименования файлов, просмотра BMP-файлов, замена позиций, поиск компонентов в сборке и чертеже, ну и многое другое....
Ссылка на сообщение
Поделиться на других сайтах

ssv22

Shvg

fomenko

Возвращаясь к теме про спецификацию. А чем вам плох путь по которому пошел Rich? Т.е. делать спецификацию путем

редактирования внутренней солидовской спецификации. Тогда и считывание сборки и обновление позиций делается

средствами самого солида. Я тоже потихоньку пишу свой редактор спецификаций и решил работать именно с солидовской

таблицей.

Все было-бы нормально, если бы СП создавалась в сборке а не в чертеже!

Все-таки "центр вселенной" это сборка, а не ее чертеж и тем более, чертеж детали.

В сборке больше возможностей по работе с компонентами, чем в чертеже :

открыть компонент, переименовать, скрыть, погасить, удалить, выбрать, открыть, подсветить ну и тд.

Вообщем нагляднее, можно сборку (угол зрения) повернуть.

Да Вы сравните: наведите курсор мыши на компонент в сборке и в чертеже - посмотрите кол-во пунктов(операций).

Потом, в чертеже некоторые компоненты просто не видны или скрыты.

Что первичнее: документ сборки или документ чертежа? Ответ ясен. Зачем же работать со вторичным документом?

А если я потом вообще захочу удалить этот чертеж и сделать новый - опять делать всю работу по созданию СП.

И еще, очень много вариантов "создателей СП" (я имею в виду программ, а не людей) используют принцип:

наименование компонента = наименованию детали в СП. Или описание компонента используют.

С моей точки зрения, это порочная методика вообще.

В моем случае ничего этого не надо, мне вообще все равно как именуется компонент в дереве сборки: "Уголок01.02" или hgjhgy21

Я создаю таблицу соответствия. В левом списке - имена компонентов как они есть в дереве сборки, в правом - какие

мне нужно и вот эта часть и "уйдет в СП".

Но это сугубо мое мнение. Просто когда я начинал это дело - я придумал такой метод.

И как уже говорил Shvg - когда все это затевалось (по-моему даже в SW99, ну может в 2001) какая там СП ...

немного не в тему: куда-то TEM пропал - закинул удочку про OpenGL и ушел в подполье.

Shvg надо-бы его допросить с пристрастием, что он там творил с OpenGL :-)

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

Shvg надо-бы его допросить с пристрастием, что он там творил с OpenGL :-)

Да бы, а то второй вечер в тупике... А так хочется сделать красиво...:)
Ссылка на сообщение
Поделиться на других сайтах

Так а в чем у тебя тупик?

А ничего пока не рисуется в SW.... Контекст получаю, hendl тоже, а на экране что было, то и остается, никаких изменений.... Пилите, Шура, пилите... ("Золотой теленок")
Ссылка на сообщение
Поделиться на других сайтах

А ничего пока не рисуется в SW.... Контекст получаю, hendl тоже, а на экране что было, то и остается, никаких изменений.... Пилите, Шура, пилите... ("Золотой теленок")

А ты пробовал создавать собственное окно и там что-нибудь нарисовать?

Код большой по размеру? В одном модуле?

А то пришли пришли кусочек с того места, где инициализация OpenGL начинается, и операции рисования - посмотрю.

И где "Контекст получаю, hendl" тоже.

Может что и вспомню/соображу.

Или целиком...

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

А ты пробовал создавать собственное окно и там что-нибудь нарисовать?

Код большой по размеру? В одном модуле?

А то пришли пришли кусочек с того места, где инициализация OpenGL начинается, и операции рисования - посмотрю.

И где "Контекст получаю, hendl" тоже.

Может что и вспомню/соображу.

Или целиком...

Отдельное окно это не то. В нем получается. Мне нужно в окне SW. Скачал пример по работе с OpenGL при обработке BufferSwapNotify, там чего-то должно рисоваться. Пробую на C#.
Ссылка на сообщение
Поделиться на других сайтах

Отдельное окно это не то. В нем получается. Мне нужно в окне SW. Скачал пример по работе с OpenGL при обработке BufferSwapNotify, там чего-то должно рисоваться. Пробую на C#.

Так покажи участок кода где ты пытаешься что-то рисовать...
Ссылка на сообщение
Поделиться на других сайтах

Shvg

ssv22

Спасибо за подробный ответ. Понятно, что в 99-м о нормальной спецификации речи не было. Помню. Но сейчас она очень даже ничего. Я решил основываться на ней, потому что исповедую тот принцип, что продукт работы макроса или программы (будь то значок шероховатости в углу, или запись ТТ или спецификация) должен поддаваться редактированию на компе где этого макроса может и не быть. Лучше максимально задействовать средства самого солида чем делать альтернативу.

То что спецификация попадает в чертеж, а не в модель кажется мне вполне естественным. Конечно, сборка это "центр вселенной" и она первична. Но ведь спецификация это только отражение ее структуры и свойств компонентов сборки. Своего рода отчет. В идеале спецификация должна создваться одним нажатием кнопки и не требовать ручной правки. А вся информация безусловно берется из сборки. Спецификация как и сборочный чертеж является производным от сборки-модели и вместе с тем сборочный чертеж и спецификация связаны простановкой позиций. Спецификация так или иначе оформляется на форматке. Логично использовать для этого формат чертежа и помещать ее на дополнительных листах сборочного чертежа. Создавать эту форматку в отдельном файле со своим расширением как сделано в SWR-спецификации кажется мне затеей, обусловленной исключительно комерческой выгодой. Пользоваться для ее вывода вордом или екселем можно, но при этом также теряется прямая связь с позициями на сборочном чертеже. Но совсем не понятно какой смысл создавать ее в сборке?

Вопрос про то, что использовать в качестве Обозначения и Наименования здесь не так и важен. Об этом уже много здесь спорили. На мой взгляд дополнительная таблица соотвествия все только усложняет и обозачение должно соотвествовать имени файла. Но это ИМХО.

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

Shvg

ssv22

Спасибо за подробный ответ. Понятно, что в 99

...

Дело в том, что когда я создаю СП в сборке, иногда возникает желание посмотреть что это за компонент(`Isolate`),

может открыть его для "подредактирования", переименовать его (причем можно не только его, но все его вхождения),

и д.п. Вот я нахожусь в окне создания СП и хочу посмотреть что это за деталь такая "Уголок454874". Я в этом-же окне выделяю

соответствующую строку и жму рядом расположенную кнопку "показать/подстветить". Теперь я могу перевести курсор в

графическую зону окна SW, повращать сборку посмотреть и тд.

Т.е. сделать операции, которые недоступны в чертеже.

Ну и как я уже выше говорил: "авария с чертежом" или его удаление не сильно мне повредит, т.к. вся инфо об СП хранится

отдельно от него.

Я вообще могу создать СП, не имея чертежа - иногда бывало ПДО запросит данные, допустим, о крепеже и тп.

а чертежа у меня еще и нет!

После проверки, я могу жать на кнопочку "выводить в Word" могу не жать.

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

Для чертежа сборки жму кнопочку "проставить позиции" и "заполнить основную надпись". (Это тоже можно совместить)

Для чертежа детали - только "заполнить основную надпись".

Хотя и эти операции можно выполнять автоматом при открытии докумета.

Если я собрался печатать, то вывожу СП в WORD и печатаю ее и чертежи.

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

Почему в Word? Там можно и подредактировать и распечатать даже не имея SW под рукой.

Но с Word`ом я конечно ошибся - последнее время переделываю для вывода в Excel.

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

информация об имени компонента в сборке, имени этого же компонента в СП, полный путь к файлу, кол-во и др.

Причем вся эта инфо считывается без моего участия на этапе сканирования сборки.

Это на 2-м листе Excel, а на 1-м листе, используя форматку СП, заполняется собственно СП. Тоже без всякого моего участия,

можно идти и кофе попить :-)

Еще надо автоматизировать процесс распечатки...

Вообщем, работы много еще.

Повторюсь еще раз: это мой взгляд на данный вопрос. Другие мнения не запрещены.

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

ssv22

Ваш подход понятен, хотя повторюсь, для внутренней солидовской спецификации вся информация тоже берется из моделей. Поэтому сгенерить спецификацию или ведомость покупных тоже можно не имея сборочного чертежа. Достаточно вставить один вид в чертеж.

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

Главный же недостаток вашего подхода вижу в отстутствии прямой связи между спецификацией и свойствами моделей и позициями на чертеже. Все обновляется только через ваш софт. Никакой параметризации.

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

ssv22

..

Главный же недостаток вашего подхода вижу в отстутствии прямой связи между спецификацией и свойствами моделей и

позициями на чертеже. Все обновляется только через ваш софт. Никакой параметризации.

C чего это Вы взяли, что нет связи? И какую именно связь Вы имеете ввиду?

При чем здесь свойства модели и позиции на чертеже? Где это написано, что такая связь должна существовать?

Ну масса - это понятно, ну а позиции тут при чем?

Насколько я знаю SW, в свойствах модели, те которые по умолчанию, нет такого св-ва как позиция...

И, пардон, это не мой софт, это API SW :-)

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

_Leon_. Каждый для себя решает сам, что ему лучше использовать. Выше желание, максимально использовать возможности SW в этом вопросе, довольно похвально и желаю удачи в решении этой проблемы. Но мне не совсем понятно, что вы имеете ввиду под фразой:

Никакой параметризации.

Если под параметризацией понимается синхронизации позиции на сборочном чертеже и в спецификации, то это не та проблема, которая вызывает головную боль. Кроме нее существуют и такие, я уже писал, как вложенность сборки, корректные сортировка и подсчет количества, переброс деталей из одного раздела в другой, резервирование позиций, запись форматов чертежа, запись зоны для больших форматов, повторные позиции, исполнения и т.д и т.п. Стандартная специя SW, насколько я знаю, таких возможностей не имеет. А то что было принято решение использовать промежуточную, назовем ее "таблица" или файл, я нисколько не жалею. Большая благодарность за это ssv22, хотя наши взгляды дальше разошлись. Зато уже лет 6-7 никаких особых проблем. Если вспомнить запись вручную в Word, то аж в дрож бросает. (С тех пор полное отвращение к Word-у, да простят меня его создатели:) ) Используя, этот промежуточный файл, начальный модуль спецификации, постепенно превращается в этакий SPExplorer.

P.S. Никому не навязываю свои взгляды, а вам _Leon_ еще раз желаю удачи в решении ваших проблем.

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

ssv22

Shvg

Надо обдумать, то что вы написали, ваш подход. Под параметризацией я понимал автоматически обновляемые связи между записями основной надписи спецификации и свойствами модели-сборки, а также между содержимым спецификации и свойствами модели-сборки и моделей деталей и подсборкок, которые в нее входят.

При чем здесь свойства модели и позиции на чертеже? Где это написано, что такая связь должна существовать?

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

Shvg Спасибо за добрые пожелания :smile: . На самом деле у меня задуман целый комплекс программ, в развитие моего редактора свойств и редактора основных надписей. Спецификация будет одной из частей этого комплекса. Постараюсь учесть и ваш опыт. Только фиг знает когда до всего этого руки дойдут.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Snake 60
      @eljer0n  Откройте макрос SaveDRW.swp редактором VBA Найдите вот эти строки: Поменяйте выделенную цифру на нужную вам 3 или 4 - это количество символов которое останется от имени конфигурации. PS При сохранении в PDF тоже ругается на неправильное название чертежа, т.к. тоже обрезает название конфигурации до двух знаков, там тоже надо править при желании...
    • eljer0n
      @malvi.dp в общем порядок следующий (на каждое исполнение свой чертеж и позиция в спецификации):   Для исполнения с 2мя знаками. 1. Есть деталь с именем формата ХХ-01.01-01 (последнее -01 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации (как у вас на картинке). Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с корректным именем. 5. В спецификации сборки все отображается корректно.     Для исполнения с 3мя знаками. 1. Есть деталь с именем формата ХХ-01.01-011 (последнее -011 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации. Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с некорректным именем, а именно - с обрезанным до двух знаков исполнением (-01). 5. В спецификации сборки шифр отображается (внезапно! может какой глюк был: у солида или у меня ) корректно, как и у вас на рисунке.     Выходит, загвоздка все-таки только в сохранялке чертежа.
    • gudstartup
      да информация о решенной проблеме очень важна так что будем ждать хороших новостей!
    • mrVladimir
      @gudstartup Спасибо Вам за помощь. Теперь дело в приобретении платы. Как что-то получится (сперва приобрести, потом поставить) обязательно отпишусь.
    • gudstartup
      а как вы taxid фирмы нашли?
    • gudstartup
      все что я написал в цитате выше по теме полная фигня в связи с вновь приобретённой информацией. можно менять любые компоненты в пределах серии чпу если только не меняете по или записываете oprminf но  всегда могут быть нюансы  @mrVladimir все должно получиться извините за то что выдал непроверенную информацию за мнение типа знающего эксперта оказывается я 
    • malvi.dp
      Какое у детали имя файла и как формируете Обозначение и Наименование? Вы каждое исполнение сохраняете в новый чертеж? Или это групповой чертеж? Если групповой-то имя конфигурации в нем быть не должно. Стоит ли галочка "Исполнение" "Из конфигурации"? На сколько мне не изменяет память макрос сохраняет файл чертежа с тем же именем что и файл модели в папке модели. В спецификации все правильно отображается, даже если знаков исполнений больше трех  
    • gudstartup
      и главная деталь чтобы на системе была remote option system а именно файл oprminf.000 c сертификатами и были ли проблемы с ними после замены компонентов.
    • boomeeeer
      с него родимого
    • Grundick
×
×
  • Создать...