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

Разработка приложения под Solidworks на языке C++


reaper

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

Еж ли верить ВикиПедро

...

Не-е, это все слишком сложно для меня, до межплатформенного программирования я не дорос! Дай бог для Windows кое-что освоить...
Ссылка на сообщение
Поделиться на других сайтах


Вот уж не знаю что это означает, но посмотрите в интернете программы с допиской portable - это означает, что для использования ее (этой программы) не нужно инсталлировать, она работает сразу без инсталляции. Как еще сказать?

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

Суть dll понимаю. Почему бы и не иметь для каждой программы (хотя-бы для тех, которые пишутся в одиночку, для небольших программ) свои ресурсы, вроде бы сейчас проблем с размером винчестеров нет, возможно, даже это было более актуально для старых компьютеров и MS DOS, но, опять-же, все влезало, никто не жаловался.

Отошли от темы...

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

Думаю, заново нужно объясниться чего я хочу.

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

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

...

Думаю, заново нужно объясниться чего я хочу.

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

Пользователь воткнул флешку, запустил приложение, ввел параметры, которые приложение спросит, после чего эта наша программа строит в солиде деталь.

ИМХО для небольших программ, "оформленных" в виде EXE-шников это можно.

Для серьезных программ, тут два варианта:

или я не знаю как это сделать,

или такое невозможно.

:unsure:

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

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

Если у пользователя нет установленного Solidworks, то ваша программа не поможет. Или же вам нужно "разбирать" Solidworks, делать из него Portable-версию и прикладывать эту версию к своей программе.
Ссылка на сообщение
Поделиться на других сайтах

Если у пользователя нет установленного Solidworks, то ваша программа не поможет. Или же вам нужно "разбирать" Solidworks, делать из него Portable-версию и прикладывать эту версию к своей программе.

Ну конечно же имеется в виду с установленным солидом.

Я был бы признателен, если бы кто-нибудь не поленился выложить свой проект, который можно было бы посмотреть как он устроен, для любого компилятора, не представляющую ценности для воров. Например, которая вытягивала бы прямоугольную бобышку по заданным размерам.

У меня возникли трудности на этапе подключения библиотек *.tlb в Visual Studio 2008 - какие кнопки нажимать, чтобы добавить библиотеки?

reaper обещал рассказать, но что-то молчит. А?

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

Или же вам нужно "разбирать" Solidworks, делать из него Portable-версию...

А было бы очень даже не плохо :rolleyes:
Ссылка на сообщение
Поделиться на других сайтах

У меня возникли трудности на этапе подключения библиотек *.tlb в Visual Studio 2008 - какие кнопки нажимать, чтобы добавить библиотеки?

Если честно, то я что-то не понял, какой VB6 в VS2008? Там только VB.Net. В этом случае вам надо подключить SolidWorks.Interop.sldworks, SolidWorks.Interop.swconst. В Solution Explorer на папке References правая кнопка мыши Add References, в закладке .NET выбрать эти библиотеки. Только надо учесть, что VB.NET очень сильно отличается от VB6. Если вы делаете exe-файл в VB.NET, то для работы программы достаточно взять скомпилированный файл из папки Release и эти библиотеки из той же папки, и скопировать на другой комьютер в любую папку.

Если же вы делаете add-ins (dll) c помощью мастера, который входит в состав API SDK SW, то лучше в той же студии создать Setup проект. Как его создать, описано в справке по API SW.

А файлы *.tlb в VS2008 подключаются при использовании только Unmanaged C++ через директиву #import (обычно в stdafx.h)

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

Если честно, то я что-то не понял, какой VB6 в VS2008? Там только VB.Net. В этом случае вам надо подключить SolidWorks.Interop.sldworks, SolidWorks.Interop.swconst. В Solution Explorer на папке References правая кнопка мыши Add References, в закладке .NET выбрать эти библиотеки. Только надо учесть, что VB.NET очень сильно отличается от VB6. Если вы делаете exe-файл в VB.NET, то для работы программы достаточно взять скомпилированный файл из папки Release и эти библиотеки из той же папки, и скопировать на другой комьютер в любую папку.

Если же вы делаете add-ins (dll) c помощью мастера, который входит в состав API SDK SW, то лучше в той же студии создать Setup проект. Как его создать, описано в справке по API SW.

А файлы *.tlb в VS2008 подключаются при использовании только Unmanaged C++ через директиву #import (обычно в stdafx.h)

Для написания программы, которая бы строила бобышку в солидворксе я установил Visual Basic 6.0 , Borland C++ Builder 6.0, Code Gear Rad Studio 2009, Visual Studio 2008. Пытаюсь хоть в чем-то написать. Пока получилось только в VB и в Visual Studio по примеру reaper`a. Но ни в одной ни в другой среде я не умею упаковывать программу так, чтобы она была отдельным exe файлом со встроенными ресурсами, а хочется.

В .Net лезть боюсь, чувствую, он перевернет все мое представление о программировании.

Кстати, ssv22, видите, все-же, возможно упаковать программу так, чтобы она работала на другом компе без инсталляции.

При использовании директивы #import пишет что некоторые классы уже определены, и не подключает библиотеку пока не примет вид:

#import "sldworks.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids, rename("PropertySheet", "ShowPropertySheet"),rename("GetOpenFileName", "SWGetOpenFileName")  //the SolidWorks type library



#import "swconst.tlb"  raw_interfaces_only, raw_native_types, no_namespace, named_guids  //the SolidWorks constant type library

Я правильно понимаю, что эти два класса переименовываются и дальше их использование происходит через новое имя?

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

Для написания программы, которая бы строила бобышку в солидворксе я установил Visual Basic 6.0 , Borland C++ Builder 6.0, Code Gear Rad Studio 2009, Visual Studio 2008. Пытаюсь хоть в чем-то написать. Пока получилось только в VB и в Visual Studio по примеру reaper`a. Но ни в одной ни в другой среде я не умею упаковывать программу так, чтобы она была отдельным exe файлом со встроенными ресурсами, а хочется.

В .Net лезть боюсь, чувствую, он перевернет все мое представление о программировании.

...

Ну вот, опять "упаковка"!

Это здесь совсем ни причем. Надо просто создать/построить приложение. ЕХЕ-шник сам сделается в папке текущего проекта "..\bin\Release\", который можно просто копировать на другой ПК(об этом писал выше Shvg)

В VB.Net я тоже не лезу...

...

Кстати, ssv22, видите, все-же, возможно упаковать программу так, чтобы она работала на другом компе без инсталляции.

...

Вижу, вижу... Просто как-то не приходилось сталкиваться с этим делом. Я кое-что почитал по этой теме и :

1) мне показалось, что эта технология применяется для небольших утилит;

2) создание дистрибутива в VB6.0 у меня занимает 1-3 мин, инсталяция на другом компе - секунды, все на "полуавтомате". А чтобы создать Portable-приложение такого времени ИМХО никак не хватит, столько там всего проделать надо...

3) инсталяция требуется только один раз, потом можно просто копировать измененные файлы(откомпилированные на исходном ПК)

4) у меня вот возник вопрос: эта технология оффициальная, т.е. оффициально производятся и распространяются такие Portable-версии или это на уровне "самоделок"?

5) чем-то мне это напоминает работу с образами дисков...

...

При использовании директивы #import пишет что некоторые классы уже определены, и не подключает библиотеку пока не примет вид:

#import "sldworks.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids, rename("PropertySheet", "ShowPropertySheet"),rename("GetOpenFileName", "SWGetOpenFileName")  //the SolidWorks type library



#import "swconst.tlb"  raw_interfaces_only, raw_native_types, no_namespace, named_guids  //the SolidWorks constant type library

Я правильно понимаю, что эти два класса переименовываются и дальше их использование происходит через новое имя?

Тут я не знаю, сам разбираюсь сейчас...

Кстати, почему именно на С++, вроде `C#` попроще будет.

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

Вижу, вижу... Просто как-то не приходилось сталкиваться с этим делом. Я кое-что почитал по этой теме и :

1) мне показалось, что эта технология применяется для небольших утилит;

2) создание дистрибутива в VB6.0 у меня занимает 1-3 мин, инсталяция на другом компе - секунды, все на "полуавтомате". А чтобы создать Portable-приложение такого времени ИМХО никак не хватит, столько там всего проделать надо...

3) инсталяция требуется только один раз, потом можно просто копировать измененные файлы(откомпилированные на исходном ПК)

4) у меня вот возник вопрос: эта технология оффициальная, т.е. оффициально производятся и распространяются такие Portable-версии или это на уровне "самоделок"?

5) чем-то мне это напоминает работу с образами дисков...

Кстати, почему именно на С++, вроде `C#` попроще будет.

1. Вы так пишете, будто никогда не писали небольших программ или утилит, сразу со школьной скамьи начали писать что-то большое.

2. Ну, может быть, это и имеет смысл, просто не очень красивое решение, и вообще, ИМХО.

3.

4. Я так понимаю, на уровне "самоделок", производители коммерческих программ не заинтересованы в том, чтобы их софт можно было с легкостью скопировать, перенести на другой комп, т.к. за каждое рабочее место нужно заплатить, а свободное размножение и перенос с одной машины на другую - это воровство.

5. Не знаю чем.

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

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

1. Вы так пишете, будто никогда не писали небольших программ или утилит, сразу со школьной скамьи начали писать что-то большое.

2. Ну, может быть, это и имеет смысл, просто не очень красивое решение, и вообще, ИМХО.

3.

4. Я так понимаю, на уровне "самоделок", производители коммерческих программ не заинтересованы в том, чтобы их софт можно было с легкостью скопировать, перенести на другой комп, т.к. за каждое рабочее место нужно заплатить, а свободное размножение и перенос с одной машины на другую - это воровство.

5. Не знаю чем.

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

1. конечно с небольших я и начинал, но никогда у меня не возникало вопроса о создании portable-приложения.

По-моему этот вопрос мало имеет отношения к программированию - просто проводится ряд операций с уже готовым приложением.

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

2. а языки программирования - красивое решение или как? Создание дистрибутивов - составная часть программирования. Это же не моя какая-то прихоть... Это история программирования.

Просто в моем понимании - создание дистрибутивов - это всеми признанный способ распространения/переносимости приложений. А вот Portable - мне непонятно какую нишу занимает...

Я вот и хочу узнать: это новый метод распространения/переносимости приложений или "изобретения самоделкиных"?

4. я посмотрел список программ, которые предлагаются в portable-версиях - так там все больше разного рода утилиты - просмотрщики, браузеры, плееры и т.д. Не на шел я там что-то более серьезного...

А эти утилитки могут быть и бесплатными. Что-то мне кажется весьма сомнительным, чтобы производители серьезного ПО вот так продавали свой продукт в виде одного exe-шника. Как его защитишь-то?

5. работа с образми дисков - создание образов компакт-диска, раздела HDD... А в Portable - похоже создается образ отдельного приложения.

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

У меня вот такой вопрос

в функции выдаёт ошибки :

error LNK2028: unresolved token (0A000130) "void __cdecl GetXFormComponent(struct IComponent2 *,double *)" (?GetXFormComponent@@$$FYAXPAUIComponent2@@PAN@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)

error LNK2019: unresolved external symbol "void __cdecl GetXFormComponent(struct IComponent2 *,double *)" (?GetXFormComponent@@$$FYAXPAUIComponent2@@PAN@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)

void GetXFormComponent(IComponent2 *pComponent[50], double *dData)

{

int j;

HRESULT hres;

IMathTransform *swXForm =NULL ;

hres = pComponent[j]->get_Transform2(&swXForm);

VARIANT vArrayData[50];

hres = swXForm->get_ArrayData(&vArrayData[j]);

SAFEARRAY *pSA = V_ARRAY(&vArrayData[j]);

double value;

SafeArrayLock(pSA);

for(long i = 0; i < 16; i++)

{

SafeArrayGetElement(pSA, &i, (VOID*)(&value));

dData = value;

}

SafeArrayUnlock(pSA);

SafeArrayUnaccessData(pSA);

SafeArrayDestroy(pSA);

}

Что делать ?

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

4. я посмотрел список программ, которые предлагаются в portable-версиях - так там все больше разного рода утилиты - просмотрщики, браузеры, плееры и т.д. Не на шел я там что-то более серьезного...

А эти утилитки могут быть и бесплатными. Что-то мне кажется весьма сомнительным, чтобы производители серьезного ПО вот так продавали свой продукт в виде одного exe-шника. Как его защитишь-то?

На одном известном форуме выложены Компас 9,10,11 portable... Ссылку привести не могу.. Варез ;-S...

А уж офис, корел и фотошоп валяются в инете на каждом углу..

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

Многие программы с открытым кодом, вообще, сразу выкладывают в версиях с инсталятором и без..

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

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

Solidworks portable имеется, только запрос в поиске набрать: http://yandex.ru/yandsearch?text=solidwork...k1%2Ftc19%2Fnc1
Ссылка на сообщение
Поделиться на других сайтах

И как я не догадался??? :'-( ... давно поискть надо было..

сегодня же добавлю ссылки на скачку в USD...

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

У меня вот такой вопрос

в функции выдаёт ошибки :

..........

Что делать ?

Странная какая то у вас функция:

void GetXFormComponent(IComponent2 *pComponent[50], double *dData) // зачем передавать массив из пятидесяти указателей на IComponent2, если он не будет использоваться в функции? Мне не совсем понятно. Да и почему именно 50?

{

	int j; // переменная обявлена. но не проинициализирована в дальненйшем. Значение может быть любым, даже отрицательным. А вы его используете для доступа к членам массива

	HRESULT hres;

 	IMathTransform *swXForm =NULL;

	hres = pComponent[j]->get_Transform2(&swXForm); // например здесь



	VARIANT vArrayData[50];

	hres = swXForm->get_ArrayData(&vArrayData[j]); // и здесь тоже



	SAFEARRAY *pSA = V_ARRAY(&vArrayData[j]); //  и тут

	double value;

	SafeArrayLock(pSA);

	for(long i = 0; i < 16; i++)

	{

		SafeArrayGetElement(pSA, &i, (VOID*)(&value));

		dData[i] = value;

	}

	SafeArrayUnlock(pSA);

	SafeArrayUnaccessData(pSA);

	SafeArrayDestroy(pSA);

}
Если она была взята из моего примера, что я вам высылал, то там передавался в функцию только один указатель на IComponent2 и заполнялась dData только для одного компонента.

P.S. Честно говоря, не совсем понял, что вы хотите сделать.

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

Странная какая то у вас функция:

void GetXFormComponent(IComponent2 *pComponent[50], double *dData) // зачем передавать массив из пятидесяти указателей на IComponent2, если он не будет использоваться в функции? Мне не совсем понятно. Да и почему именно 50?

{

	int j; // переменная обявлена. но не проинициализирована в дальненйшем. Значение может быть любым, даже отрицательным. А вы его используете для доступа к членам массива

	HRESULT hres;

 	IMathTransform *swXForm =NULL;

	hres = pComponent[j]->get_Transform2(&swXForm); // например здесь



	VARIANT vArrayData[50];

	hres = swXForm->get_ArrayData(&vArrayData[j]); // и здесь тоже



	SAFEARRAY *pSA = V_ARRAY(&vArrayData[j]); //  и тут

	double value;

	SafeArrayLock(pSA);

	for(long i = 0; i < 16; i++)

	{

		SafeArrayGetElement(pSA, &i, (VOID*)(&value));

		dData[i] = value;

	}

	SafeArrayUnlock(pSA);

	SafeArrayUnaccessData(pSA);

	SafeArrayDestroy(pSA);

}
Если она была взята из моего примера, что я вам высылал, то там передавался в функцию только один указатель на IComponent2 и заполнялась dData только для одного компонента.

P.S. Честно говоря, не совсем понял, что вы хотите сделать.

Да это функция из вашего примера . но я хотел сделать чтобы она раюотала для одной dData и для i-го элемента массива указателей IComponent2
Ссылка на сообщение
Поделиться на других сайтах

Да это функция из вашего примера . но я хотел сделать чтобы она раюотала для одной dData и для i-го элемента массива указателей IComponent2

Так объявите этот массив в области динамического обмена

double *dData = new double[16];

..............

// не забудьте удалить этот массив, когда закончите с ним работать

delete[] dData;
и передавайте его в функцию, с указателем на IComponent2. В ней он и будет заполнятся значениями этого компонента.
Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

Такой вопрос: есть библиотека материалов в SolidWorks можно назначить материал детали: сталь, медь или ещё что-то. Как можно ли задать материал из приложения на С++ ? C помощью макроса ничего не понятно SelectByID2("Неизвестный",BROWSERITEM......)

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

Такой вопрос: есть библиотека материалов в SolidWorks можно назначить материал детали: сталь, медь или ещё что-то. Как можно ли задать

материал из приложения на С++ ? C помощью макроса ничего не понятно SelectByID2("Неизвестный",BROWSERITEM......)

У меня макрос записался так:

...

boolstatus = Part.Extension.SelectByID2("Неизвестный", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)

Part.ClearSelection2 True

Part.SetMaterialPropertyName2 "По умолчанию", "C:/Program Files/SolidWorks Corp/SolidWorks/lang/russian/sldmaterials/solidworks materials.sldmat", "Латунь"

...

Похоже строка:

"boolstatus = Part.Extension.SelectByID2("Неизвестный", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)" - это просто запись нажатия прав.Кн.Мыши

и

boolstatus = False

и, видимо, смысла в ней нет.

Я ее закомментировал и без нее работает...

А само присвоение материала тут:

"Part.SetMaterialPropertyName2 "По умолчанию", "C:/Program Files/SolidWorks Corp/SolidWorks/lang/russian/sldmaterials/solidworks materials.sldmat", "Латунь""

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Jesse
      посмотрел. По дефолту нормировка DFT идёт на 1/sqrt(N), где N - число отсчётов. Сделал нормировку на 1/N Получил амплитуду теперь меньше единицы....
    • AlexKaz
      Стр. 89-90 https://elib.pstu.ru/docview/6701
    • Борман
      Если так то да. Я про статически-эквивалентный метод говорил там выше.
    • gudstartup
      @gudi продублировали ответы по теме а зачем неясно....
    • ANT0N1DZE
      Упрощенный план действий: Начните со стр. 155 https://www.utgt73.ru/uploads/biblioteka/fizika 10.pdf Если будет вращаться быстро и не в вакууме, то надо будет учесть "парус" этого тела, там сопротивление газа зависит от скорости движения. Это уже примерно 1 курс университета (тоже гуглится спокойно). 
    • MagicNight
      Заметил такую особенность, что в PowerMill v6 (возможно и в других тоже) происходит следующее... Создаю NC-файл и туда сбрасываю траектории (около 10-15 на разные фрезы), на выходе некоторые траектории не прописывает вкл охлаждения. То есть в графе Охлаждение на одну из 10-15 траекторий пишет НЕТ, на всех остальных -Стандартное (то есть да) Получается, что из, условно десяти траекторий, одна или две прописываются без включения СОЖ. Но что интересно по отдельности программы выходят с включенной СОЖ, всегда! Не могу понять зависимость с этим. Кто-нибудь сталкивался с этим?
    • ЮрЮрыч
      Вам нужно просто общее количество или оптимальную раскладку для резки наподобии нестинга?
    • Jesse
      да. Забыл добавить. Я там в тестовом примере ещё сверху шум накинул небольшой амплитуды, в 10 раз меньше чем основной сигнал. Если шум убрать, то получится что амплитуда дискретного фурье спектра растёт примерно в sqrt(N2/N1) раз, где N2 - число отсчётов для правого графика, а N1 - для левого. Но не суть.. Мой главный вопрос как получить "рабочую", правильную амплитуду DFT, которую можно было бы вбить в прогу?   не, у меня более простой второй вариант) вот когда скажут заморочиться с ансамблем и случайными процессами, тогда и будуда и комиссии если что-то подобное пробубнить, то мне точно прилетит..   Harmonic Response. На резонанс проверить.   вот сейчас только в голову пришло! Там ведь поправочные коэффы в DFT используются! Типа 1/sqrt(2*Pi) чё т такое. Пойду курить вольфрам
    • Orchestra2603
      Я, честно скажу, не знаю как на практике это проходит, что в нормах пишут и т.д. Стоит задача провести вероятностный анализ (вероятност ьпревышения пределеа текучести, например), или надо просто посчитать динамику на одну вот эту вот историю ускорений, и все? Второй вариант проще, но по-правильному, наверное надо, как в первом варианте.   а какой анализ вы хотите делать?   Если больше отсчетов по частоте, то повышается разрешение в частотной области, и просто пик становится более резким. В предельном случае будет просто одно значение в районе частоты действия силы, а вокруг него везде нули. Но, когда разрешение падает, то амплитуда с пика "сползает" и "растекается" на соседние частоты. Но сама сумма в силу равенства Парсеваля, как вы правильно сказали,  должна быть такой же.   Это очень странно. Впечатление такое, что как будто где-то какой-то косяк с БПФ. Если в начале во времени был синус с амплитудой 1, то на спектр еможет быть 1 (если однсторонний спектр), либо 1/2, если двухстронний спектр. Может, оконная функция какая-то странная? Надо разбираться...  Так а если он задаст на уровне земли как кинематическое возбуждение опорного контура? Вроде же норм... Или речб о том, чтобы убрать из модели опорную конструкцию, на которой держится оборудовнаие?
    • Борман
      и не только. При отсутствии отраслевого ГОСТа, пользуйтесь СП 14.13330.2018. Там найдете нужные коэффициенты.
×
×
  • Создать...