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

Массовые характеристики и уравнения


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

Возможно ли затащить в уравнения массовые характеристики детали? :surrender:

Например - Уравнение " SW-Volume@ Деталь.SLDPRT" Solidworks понимает, но оно не определено.

Кто-нибудь знает?

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


Возможно ли затащить в уравнения массовые характеристики детали? :surrender:

Например - Уравнение " SW-Volume@ Деталь.SLDPRT" Solidworks понимает, но оно не определено.

Кто-нибудь знает?

Это очень старая болячка SolidWorks.

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

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

В уравнениях SW я полный "0" - но может по аналогии с тем же Exсel'ем - создать переменную, присвоить ей значение массы (или чего-то) и затем вставить её куда надо... :unsure:

Так не прокатит???

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

Возможно ли затащить в уравнения массовые характеристики детали?

В уравнениях SW я полный "0" - но может по аналогии с тем же Exсel'ем

Очевидно, имеется в виду возможность автоматического пересчета уравнения в случае изменения массово инерционных характеристик. В теме «Сравнение и выбор» был топик про оптимизацию.

http://fsapr2000.ru/index.php?showtopic=23139

Вот еще заглохшая тема про ТЗ на оптимизатор

http://fsapr2000.ru/index.php?showtopic=24604

Может, что полезное для себя подчерпнете

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

Приими мои поздравления

Спасибо.

может по аналогии с тем же Exсel'ем - создать переменную, присвоить ей значение массы (или чего-то)

Я так уже пытался сделать.

post-17004-1228678294_thumb.jpg

И еще понять не могу, почему массовые характеристики отрицательные выводятся. :dry:

Roman A

Спасибо за ссылки, поизучаю.

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

Не совсем так. Просто пытаюсь через массовые характеристики рассчитать периметр листовой детали для определения трудоемкости резки. В чертежах мне это удалось, но там считать по определенным причинам не устраивает – нужно в модели.

И еще возможно ли производить, расчет где-нибудь еще? Например – в тексте или здесь:

post-17004-1228678307_thumb.jpg

(здесь почему-то особенно хочется)

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

Просто пытаюсь через массовые характеристики рассчитать периметр листовой детали для определения трудоемкости резки

Только вот интересно каким образом?

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

Нужно строить кривую по контуру листа и мерять ее длину.

И еще понять не могу, почему массовые характеристики отрицательные выводятся

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

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

(здесь почему-то особенно хочется)

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

Просто пытаюсь через массовые характеристики рассчитать периметр листовой детали для определения трудоемкости резки

А чем все-таки для расчетов Excel то не устраивает?

И еще цитата из справки:

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

Можно использовать следующие переменные в уравнениях:

Наименования размеров

Глобальные переменные

Имена связанных размеров

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

т.е. о связанных значениях массовых характеристик, в уравнениях речи не может быть.

В документе Solidworks2009_whatsnew есть такой раздел: Свойства файла, настроенные пользователем и заданные по умолчанию, в уравнения:

post-6363-1228718262_thumb.png

Возможно ли затащить в уравнения массовые характеристики детали?

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

Так понимаю, что в SW2009 поставленная задача решается.

Вполне возможно, хотя я в 2009 до этого не дошел.

P.S. надо изучать матчасть...

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

Нужно строить кривую по контуру листа и мерять ее длину

Необязательно - можно воспользоваться справочными размерами и уравнениями и все это свести в свойства

Например так:

Просто в развертке есть странная тонкость - размеры нужно задавать от точки к точке или от точки к прямой.

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

Только вот интересно каким образом?

По формуле – P=(S-2*(V/t))/t; где S-полная поверхность детали; V-объем; t-толщина.

При К=0,5 и если нет окон вырезанных с помощью сплайнов (иначе получается погрешность) получается значение периметра, даже без разворачивания детали.

Если кому интересно, как это реализовано в чертеже могут посмотреть во вложении.

Пр2.rar

Нужно строить кривую по контуру листа и мерять ее длину

Всегда периметр вот так мерял:

post-17004-1228939422_thumb.jpg

А чем все-таки для расчетов Excel то не устраивает?

Хотелось бы формулу в шаблон детали зашить.

А потом данные передать в чертеж и внешний модуль по расчету трудоемкости.

(Толщину, материал, периметр).

Для полного счастья еще бы определить количество замкнутых контуров, для определения кол-ва врезок. Это уже средствами API? :unsure:

Так понимаю, что в SW2009 поставленная задача решается.

Это хорошо, надо будет там попробовать.
Ссылка на сообщение
Поделиться на других сайтах

По формуле – P=(S-2*(V/t))/t;

Ясно, об этом я как то не подумал.

Всегда периметр вот так мерял:

А в уравнении это значение можно использовать?

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

Ясно, об этом я как то не подумал.

А в уравнении это значение можно использовать?

Ясно, об этом я как то не подумал.

А в уравнении это значение можно использовать?

А если так:

вот цитата из Help API SW

(это сначала описание функции, далее пример)

********************

ModelDocExtension::GetMassProperties

See Also

Example

Availability

Description

This method returns the actual mass property of the model at the specified accuracy; that is, of all of the existing bodies

regardless of whether they are hidden or shown.

Syntax (OLE Automation)

retval = ModelDocExtension.GetMassProperties ( Accuracy, status )

Input:

(long) Accuracy

0 = as is

1 = default

2 = maximum

Output:

(long) status

Status of the mass property results as defined in swMassPropertiesStatus_e

Output:

(VARIANT) retval

SafeArray of size 13; the last element is the accuracy at which returned mass properties are calculated

Syntax (COM)

status = ModelDocExtension->IGetMassProperties ( Accuracy, &status, mPropsData )

Input:

(long) Accuracy

0 = as is

1 = default

2 = maximum

Output:

(long) status

Status of the mass property results as defined in swMassPropertiesStatus_e

Output:

(double*) mPropsData

Array of size 13; the last element is the accuracy at which returned mass properties are calculated

Return:

(HRESULT) status

S_OK if successful

Remarks

The return value is a 0-based array of doubles as follows:

[ CenterOfMassX, CenterOfMassY, CenterOfMassZ, Volume, Area, Mass, MomXX, MomYY, MomZZ, MomXY, MomZX, MomYZ, Accuracy ]

You can use SldWorks::GetUserPreferenceDoubleValue to get the density of the SolidWorks part. If the user did not explicitly set the density, then SolidWorks uses a value of 1.0. You can also derive the density of the body by calculating:

Density = ( Mass / Volume )

This method returns metric units unless explicitly specified otherwise.

If this object is...

Then...

An assembly

SolidWorks does not include any suppressed components in the mass property analysis. See Component2::GetSuppression to determine the state of each assembly component.

This method returns the moments of inertia (MOI) about the assembly center-of-gravity coordinate system aligned with the assembly axes.

A part

The calculated origin for the returned values are based on the default coordinate systems of the model document. They are not based on the selected coordinate system.

This method supports multibody parts.

********************

********************

А вот пример:

""

Get Mass Properties of Active Document Example (VB)

This example shows how to retrieve the mass properties from an active document.

Option Explicit

' A list of return status values for the ModelDocExtension::GetMassProperties API

Public Enum swMassPropertiesStatus_e

swMassPropertiesStatus_OK = 0

swMassPropertiesStatus_UnknownError = 1

swMassPropertiesStatus_NoBody = 2

End Enum

Public Enum swUserPreferenceToggle_e

swUpdateMassPropsDuringSave = 30

End Enum

Sub main()

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swModelExt As SldWorks.ModelDocExtension

Dim swAssy As SldWorks.AssemblyDoc

Dim swSelMgr As SldWorks.SelectionMgr

Dim swComp As SldWorks.Component2

Dim nStatus As Long

Dim vMassProp As Variant

Set swApp = CreateObject("SldWorks.Application")

Set swModel = swApp.ActiveDoc

Set swModelExt = swModel.Extension

vMassProp = swModelExt.Getmassproperties(1, nStatus)

Debug.Print "ModelDocExtension::GetMassProperties(" + swModel.GetPathName + ")"

Debug.Print " Status = " & nStatus

Debug.Print ""

If Not IsEmpty(vMassProp) Then

Debug.Print " CenterOfMassX = " & vMassProp(0)

Debug.Print " CenterOfMassY = " & vMassProp(1)

Debug.Print " CenterOfMassZ = " & vMassProp(2)

Debug.Print " Volume = " & vMassProp(3)

Debug.Print " Area = " & vMassProp(4)

Debug.Print " Mass = " & vMassProp(5)

Debug.Print " MomXX = " & vMassProp(6)

Debug.Print " MomYY = " & vMassProp(7)

Debug.Print " MomZZ = " & vMassProp(8)

Debug.Print " MomXY = " & vMassProp(9)

Debug.Print " MomZX = " & vMassProp(10)

Debug.Print " MomYZ = " & vMassProp(11)

End If

Debug.Print "-------------------------------"

End Sub

'--------------------------------------------------------

""

********************

Далее, создаем макрос, куда копируем данный пример, создаем иконку для SW и в коммандной строке пишем: " SolidWorks.exe /M <имя файла макроса> ".

При старте SW данный макрос будет выполнятся автоматом. Или кнопочку сделать...

И предусмотреть куда будут выводиться данные, может в файл или воспользоваться функцией "TableAnnotation::InsertColumn" , которая позволяет вставлять столбцы в BOM.

Вообще, работа с таблицами почти аналогична работе с таблицами в Excel...

PS. да и по получении значения массы в API SW достаточно возможностей... и примеры есть.

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

Ясно, об этом я как то не подумал.

А в уравнении это значение можно использовать?

Ясно, об этом я как то не подумал.

А в уравнении это значение можно использовать?

Ясно, об этом я как то не подумал.

А в уравнении это значение можно использовать?

А если так:

вот цитата из Help API SW

(это сначала описание функции, далее пример)

********************

ModelDocExtension::GetMassProperties See Also

Example

Availability

Description

This method returns the actual mass property of the model at the specified accuracy; that is, of all of the existing bodies

regardless of whether they are hidden or shown.

Syntax (OLE Automation)

retval = ModelDocExtension.GetMassProperties ( Accuracy, status )

Input:

(long) Accuracy

0 = as is

1 = default

2 = maximum

Output:

(long) status

Status of the mass property results as defined in swMassPropertiesStatus_e

Output:

(VARIANT) retval

SafeArray of size 13; the last element is the accuracy at which returned mass properties are calculated

Syntax (COM)

status = ModelDocExtension->IGetMassProperties ( Accuracy, &status, mPropsData )

Input:

(long) Accuracy

0 = as is

1 = default

2 = maximum

Output:

(long) status

Status of the mass property results as defined in swMassPropertiesStatus_e

Output:

(double*) mPropsData

Array of size 13; the last element is the accuracy at which returned mass properties are calculated

Return:

(HRESULT) status

S_OK if successful

Remarks

The return value is a 0-based array of doubles as follows:

[ CenterOfMassX, CenterOfMassY, CenterOfMassZ, Volume, Area, Mass, MomXX, MomYY, MomZZ, MomXY, MomZX, MomYZ, Accuracy ]

You can use SldWorks::GetUserPreferenceDoubleValue to get the density of the SolidWorks part. If the user did not explicitly set the density, then SolidWorks uses a value of 1.0. You can also derive the density of the body by calculating:

Density = ( Mass / Volume )

This method returns metric units unless explicitly specified otherwise.

If this object is...

Then...

An assembly

SolidWorks does not include any suppressed components in the mass property analysis. See Component2::GetSuppression to determine the state of each assembly component.

This method returns the moments of inertia (MOI) about the assembly center-of-gravity coordinate system aligned with the assembly axes.

A part

The calculated origin for the returned values are based on the default coordinate systems of the model document. They are not based on the selected coordinate system.

This method supports multibody parts.

********************

********************

А вот пример:

""

Get Mass Properties of Active Document Example (VB)

This example shows how to retrieve the mass properties from an active document.

Option Explicit

' A list of return status values for the ModelDocExtension::GetMassProperties API

Public Enum swMassPropertiesStatus_e

swMassPropertiesStatus_OK = 0

swMassPropertiesStatus_UnknownError = 1

swMassPropertiesStatus_NoBody = 2

End Enum

Public Enum swUserPreferenceToggle_e

swUpdateMassPropsDuringSave = 30

End Enum

Sub main()

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swModelExt As SldWorks.ModelDocExtension

Dim swAssy As SldWorks.AssemblyDoc

Dim swSelMgr As SldWorks.SelectionMgr

Dim swComp As SldWorks.Component2

Dim nStatus As Long

Dim vMassProp As Variant

Set swApp = CreateObject("SldWorks.Application")

Set swModel = swApp.ActiveDoc

Set swModelExt = swModel.Extension

vMassProp = swModelExt.Getmassproperties(1, nStatus)

Debug.Print "ModelDocExtension::GetMassProperties(" + swModel.GetPathName + ")"

Debug.Print " Status = " & nStatus

Debug.Print ""

If Not IsEmpty(vMassProp) Then

Debug.Print " CenterOfMassX = " & vMassProp(0)

Debug.Print " CenterOfMassY = " & vMassProp(1)

Debug.Print " CenterOfMassZ = " & vMassProp(2)

Debug.Print " Volume = " & vMassProp(3)

Debug.Print " Area = " & vMassProp(4)

Debug.Print " Mass = " & vMassProp(5)

Debug.Print " MomXX = " & vMassProp(6)

Debug.Print " MomYY = " & vMassProp(7)

Debug.Print " MomZZ = " & vMassProp(8)

Debug.Print " MomXY = " & vMassProp(9)

Debug.Print " MomZX = " & vMassProp(10)

Debug.Print " MomYZ = " & vMassProp(11)

End If

Debug.Print "-------------------------------"

End Sub

'--------------------------------------------------------

""

********************

Далее, создаем макрос, куда копируем данный пример, создаем иконку для SW и в коммандной строке пишем: " SolidWorks.exe /M <имя файла макроса> ".

При старте SW данный макрос будет выполнятся автоматом. Или кнопочку сделать...

И предусмотреть куда будут выводиться данные, может в файл или воспользоваться функцией "TableAnnotation::InsertColumn" , которая позволяет вставлять столбцы в BOM.

Вообще, работа с таблицами почти аналогична работе с таблицами в Excel...

PS. да и по получении значения массы в API SW достаточно возможностей... и примеры есть.

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

Автору: возьми СВ2009, в окне создания уравнения в правом нижнем углу есть кнопка в виде двойной стрелки вниз, под ней все пользовательские свойства модели. Картинку лень делать и тащить сюда (к компу с и-нетом).

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...