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

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


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

Так как, решил эту проблему? А то у меня мысли появились как это сделать.

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

Все рисовал в функции OnBufferSwap. Она вызывается событием

SINK_ENTRY_EX(ID_MODELVIEW_EVENTS, __uuidof(DModelViewEvents), swViewBufferSwapNotify, OnBufferSwap)

В другом месте рисование в OpenGL не отображается.

для перерисовки использовал

SINK_ENTRY_EX(ID_MODELVIEW_EVENTS, __uuidof(DModelViewEvents), swViewRepaintNotify, OnRepaint)
TEM

Спасибо на наводку, до ViewRepaintNotify я все таки додумался, но не успел проверить. А то, что OpenGL рисуется только при событии BufferSwapNotify, меня и поставило в некоторый тупик.

Мне не нужно было знать(искать) окна деталей или сборок

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


Цитата

Так как, решил эту проблему? А то у меня мысли появились как это сделать.

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

Вот-вот, я и хотел нечто подобное предложить...

TEM

Спасибо на наводку, до ViewRepaintNotify я все таки додумался, но не успел проверить. А то, что OpenGL рисуется только при событии BufferSwapNotify, меня и поставило в некоторый тупик.

...

Ну и как, получилось? Рисование... или что там ты хотел?

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

Ну и как, получилось? Рисование... или что там ты хотел?

Пока нет. Не совсем еще понятно, как это делать.... Читаю "умные" книжки...
Ссылка на сообщение
Поделиться на других сайтах

Пока нет. Не совсем еще понятно, как это делать.... Читаю "умные" книжки...

Пример не пробовал, который я тебе записал:

swOpenGL\FaceWorks ?

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

Пример не пробовал, который я тебе записал:

swOpenGL\FaceWorks ?

У меня он был, но это не то. Плюс там жуткий тормоз даже на C++. Component-> Body-> Face-> Vertex и рисование линий. Число итераций, даже на простенькой сборке, достигает 50000. Да к тому же весь код в функции на событие BufferSwapNotify, любой чих мышкой и эти 50000 повторяются.....
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Уважаемый TEM!

Ну хоть кусочек кода можешь привести в кач-ве примера, где что-нибудь рисуется в окне SW?

Или что ты там делаешь средствами OpenGL?

Можно ли там выбирать объекты уже имеющиеся, менять, допустим, их представлене: каркас, shaded, прозрачность?

Я-то использовал OpenGL в проге на Delphi, там проще: сначала создаешь окно, получаешь контент, иниц. OpenGL и рисуешь и тд.

Делаешь что хочешь.

Я, вообще, просто поступил: взял готовый пример (с CD к книжке) и дальше его модифицировал его как мне надо.

Вот до меня не дойдет никак : причем здесь функция API SW - "BufferSwapNotify"??? Это же "событие"!

Насколько я понимаю есть два пути реализовать операции OpenGL в окне SW :

- традиционный, те. использовать API SW;

- вообще не использовать API SW, а пользоваться только средствами WinAPI: найти окно, его Hwnd, и дальше OpenGL...

По-второму пункту есть много решений!

Я поинтерсовался в Инете, там ребята в игрушки залезают и делают что хотят. А в игрушках никакого своего API нету!

Т.е. вопрос тут стоит так: "операции OpenGL в окне другого приложения" - и это вполне реализуемо (уже реализовано!).

Но, ИМХО, не стоит, или даже вредно/опасно, использовать эти два подхода вместе!

Так что, если не жалко, покажи хоть кусочек сыра э-э-э, пардон, кусочек КОДА! :-)

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

Насколько я понимаю есть два пути реализовать операции OpenGL в окне SW :

- традиционный, те. использовать API SW;

- вообще не использовать API SW, а пользоваться только средствами WinAPI: найти окно, его Hwnd, и дальше OpenGL...

Если честно не совсем в теме дискуссии, но вот в одной статье на сайте Solidworks.ru, использование OpenGL кратко описывалось так:

post-6363-1215585362_thumb.png

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

Если честно не совсем в теме дискуссии, но вот в одной статье на сайте Solidworks.ru, использование OpenGL кратко описывалось так:

post-6363-1215585362_thumb.png

Да-да, это я уже видел...

Ну там о-очень кратко :-(

Можно сказать совсем кратко!

Мне непонятно: как связаны "событие" в SW и OpenGL?

Мне кажется - это только "зародыш" применения/использования OpenGL в SW на базе API SW.

Причем, ИМХО, не очень удачный...

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

Можно ли там выбирать объекты уже имеющиеся, менять, допустим, их представлене: каркас, shaded, прозрачность?

Вот это меня и заинтересовало сильно. Стандартными средствами API SW это делается, но там есть определенные проблемы. Думаю. что на изучение openGL, уйдет некоторое время, с ходу не получилось....
Ссылка на сообщение
Поделиться на других сайтах

Вот это меня и заинтересовало сильно. Стандартными средствами API SW это делается, но там есть определенные проблемы.

Думаю. что на изучение openGL, уйдет некоторое время, с ходу не получилось....

Посмотри здеь:

<noindex>http://gamedev.gameslife.ru/ogllessons/opengl.html</noindex>

и здесь:

<noindex>http://www.opengl.org/resources/code/samples/redbook/</noindex>

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

ssv22, я показывал код. функция CreateNormal() она вызывается функцией OnBufferSwap по событию swViewBufferSwapNotify

STDMETHODIMP CDocView::OnBufferSwap()

{  

	HRESULT						 hr = S_OK;

	VARIANT_BOOL					bShaded = FALSE;



	// check to make sure that the model is in shaded mode

	hr = modelView->GetDisplayState(swIsViewShaded, &bShaded);



....



	CreateNormal();

	

	return S_OK;

}

Мне непонятно: как связаны "событие" в SW и OpenGL?

я так понимаю. Графика OpenGL с начала рисуется в буфере, а потом выводиться на экран. ЧТобы тормозов не было. а событие swViewBufferSwapNotify вывоит изображение в буфере на экран.

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

ssv22, я показывал код. функция CreateNormal() она вызывается функцией OnBufferSwap по событию swViewBufferSwapNotify

STDMETHODIMP CDocView::OnBufferSwap()

{  

	HRESULT						 hr = S_OK;

	VARIANT_BOOL					bShaded = FALSE;



	// check to make sure that the model is in shaded mode

	hr = modelView->GetDisplayState(swIsViewShaded, &bShaded);



....



	CreateNormal();

	

	return S_OK;

}

Спасибо за код, видимо проглядел...

я так понимаю. Графика OpenGL с начала рисуется в буфере, а потом выводиться на экран.

ЧТобы тормозов не было. а событие swViewBufferSwapNotify вывоит изображение в буфере на экран.

Насчет этого: совершенно согласен! Я тоже так думаю...

А вот как насчет выбора или трансформации(вращение, масштабирования...) примитива в окне SW - тут у меня непонятки пока.

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

А вот как насчет выбора или трансформации(вращение, масштабирования...) примитива в окне SW - тут у меня непонятки пока.

Речь про модель SW или о том, что создается в OpenGL? Например через OpenGL создал кубик и его надо трансформировать, вращать и т.д.

Для детали SW есть функции для трансформации и вращения. IModelView там много, что есть.

Если по конкретней скажите задачу, то по продую описть, что смогу :)

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

Речь про модель SW или о том, что создается в OpenGL? Например через OpenGL создал кубик и его

надо трансформировать, вращать и т.д.

Для детали SW есть функции для трансформации и вращения. IModelView там много, что есть.

Если по конкретней скажите задачу, то по продую описть, что смогу :)

Так это же одно и тоже: что "кубик в OpenGL", что кубик в SW?!

Или я ошибаюсь?

Тут вот Shvg и мучается...

Можешь привести кусок кода, где идет "привязка" OpenGL к окну SW?

А то, похоже Shvg рисует или в буфере(без последующего переключения) или контент окна

SW неправильно инициализоровал или получил, или неправильно инициализоровал сам OpenGL.

Вот в чем корень... :-)

Да мне и самому не очень понятен этот механизм...

А задача-то простая(для начала) : нарисовал в SW кубик, а потом средствами OpenGL его или

повернул или отобразил в виде каркаса и тд.

Именно в таком порядке: рисуешь как обычно в SW, а потом уже используешь средства OpenGL !

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

Так это же одно и тоже: что "кубик в OpenGL", что кубик в SW?!

Да, но только для деталей солида есть некоторые функции для работы :) Для врещения функции есть в апи, для каркаса тоже

Я так пологаю необходимо совместить оси Солида с Осью OpenGL? Чтобы рисование было в нужных координатах

Я не работал с контекстом окна. Все делал в OnBufferSwap(). Там я вычислял все мне нужные координаты и закидывал их в функцию построения нормали. И у меня все рисовалось. Координаты получал от детали, а также оси.

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

Да, но только для деталей солида есть некоторые функции для работы :) Для врещения функции есть в апи, для каркаса тоже

Я так пологаю необходимо совместить оси Солида с Осью OpenGL? Чтобы рисование было в нужных координатах

Я не работал с контекстом окна. Все делал в OnBufferSwap(). Там я вычислял все мне нужные координаты и закидывал их в функцию построения нормали. И у меня все рисовалось. Координаты получал от детали, а также оси.

Понятно, спасибо!

Надо мне немного еще подумать...

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

Помогите в дереве конструировании через API узнать количество папок и их имена

А каких? Там ведь разные папки Annotation, Body, Surface, Comment и т.д., плюс еще можно свои создавать. Так что вопрос не совсем понятен...
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Turgenev
      Спасибо, сейчас буду проверять. Но возникла проблема при экспорте модели. Начертил дроссель. При черчении надо было создать вспомогательную геометрию: Сегмент тороида поверх основного тороида. Он успешно экспортировался в степ модель, что мне совсем не нужно. Скрыл его в солиде и выбрал в параметрам экспорта Сборки->В активном режиме большой сборки->Не показывать скрытые компоненты. Не помогло, наверное, потому что не активировался режим большой сборки. Понизить порог включения большой сборки можно но есть ли еще варианты?
    • Viktor2004
      Разве ваш вопрос был в этом? Вы кажется инструмент привязывать хотели от приспособления
    • Sivolap36
      Нет ли у Fanuc диагностики, где было бы видно, что сейчас  ждёт привод?
    • mamomot
      Сегодня знакомимся с первым Параграфом Раздела 3 Токарная обработка Главы 8 Механическая обработка. ***** Оправка для расточки 8_3_1 Оправка для расточки.pdf
    • gudstartup
      это называется i2t перегрузка которая включает в себя 2 составляющие ток и температуру за единицу времени. не факт что ваш модуль кипит но предположительно если воздействие фактора перегрузки продолжиться то это может случиться и привод отрубается
    • Alexey8107
      Тут ключевое, "привод в сборе". Я же писал что запитывал голую плату  Ну и трактовать английский можно ну очень широко, а если уж писали японцы, да еще на англицком, то вообще трактовка становится безграничной  А если серьезно, то как по мне здесь имеется ввиду перегрузка, вычисленная по температурному датчику на большом радиаторе, ибо сейчас мы точно знаем какая авария возникает именно при токовой перегрузке "1." И кстати. Где то там еще прописано, что "1" это варнинг, а "1." это авария... Вобщем в этом руководстве можно мозг выломать пока поймешь что имеется ввиду 
    • fenics555
      на нормальных гидравлических пинолях стоят регулируемые датчики положения, и при вдавливании они выдадут ошибку, типа "патрон не разжат/зажат" или "пиноль не зажата/разжата". станок не вьедет в пиноль. На сервоприводе просто нагрузка упадет в 0 и все.  Но стойка ничего не выдаст. В авторежиме можно нашинковать много материала зря.
    • Sivolap36
      Обнаружил то, что если ввести G0 g53 A50, то едет. В рабочих не едет, а в машинных едет 
    • gudstartup
      @Alexey8107 изначально написано про перегрузку   у фанука читайте между строк этой ошибки не должно быть если привод в сборе
    • Alexey8107
      Так у меня тоже самое. Просто вы уже полезли в причины и способы устранения "Cause and troubleshooting", а я привел общее описание, что она обозначает "Meaning". А означает она именно перегрев большого радиатора, остальное это причины и способы устранения, например смахнуть пыль  Вот если они глючат, тогда будет большой БАРАБАХ. У меня такое было, сразу замена платы, ибо ну его нафиг всю обвязку перетряхивать. Плата управления, там да, далеко все не очевидно, но очевидно большую часть платы занимает импульсный источник питания на кучу напряжений, остальная часть боюсь что вообще бесполезно разбираться, ибо там на одном большом контроллере стоит страшная надпись "FANUC". Можно сушить весла...
×
×
  • Создать...