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

Сделай свою работу в Solidworks эффективнее


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

9 часов назад, Snake 60 сказал:

Попробуйте открыть STP в компасе, а из компаса сохранить в формат X_T (это формат ядра парасолид, более близкий к Солиду. если можно так сказать) и уже X_T открывайте в SolidWorks. О результатах отпишитесь, помогло или нет :) меня в некоторых случаях такой подход выручал.

Пробовала, Так быстрее конечно. Но хотелось бы step открывать, так как он сохраняет название деталей, сборок, цвета, те всё в первозданном виде, а xt что то всегда теряет

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


9 часов назад, Kir95 сказал:

Пробуй новую версию - на 21 солиде всё работает)

У меня 16 - выскакивает окошко

Скрытый текст

изображение_2020-12-09_083504.png

Голубым цветом подсвечивает строку "MyMassProp As SldWorks.MassProperty2"

После нажатия "ОК" ничего не происходит.

9 часов назад, Kir95 сказал:

Не знал, что массу можно вручную менять

Век живи - век учись! ))

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, malvi.dp сказал:

Голубым цветом подсвечивает строку "MyMassProp As SldWorks.MassProperty2"

В вашей версии надо использовать SldWorks.MassProperty (без двойки).

Для начала можно попробовать убрать 2, но скорее всего немного потребуется подправить код касающейся данной процедуры/функции.

Пример для MassProperty:

http://help.solidworks.com/2021/english/api/sldworksapi/Get_Mass_Properties_of_Multibody_Assembly_Component_Example_VB.htm

http://help.solidworks.com/2021/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IMassProperty.html

Пример для MassProperty2

http://help.solidworks.com/2021/english/api/sldworksapi/Get_Mass_Properties_using_MassProperty_Object_Example_VB.htm

http://help.solidworks.com/2021/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IMassProperty2.html

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

 скорее всего немного потребуется подправить код касающейся данной процедуры/функции.

Вы правы, просто убрать 2 не помогло.

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, malvi.dp сказал:

Вы правы, просто убрать 2 не помогло.

Дальше немного подправить, некоторые строки закомментить (одинарная кавычка в начале строки) или удалить, например:

Цитата

...

val = InputBox("Ввести значение массы, кг", "Окно ввода значения", "100")

...

    Set MyMassProp = swModel.Extension.CreateMassProperty
    'Set OvProp = MyMassProp.GetOverrideOptions
    'OvProp.OverrideMass = True
    'OvProp.SetOverrideMassValue (val)
    
'        Debug.Print "Mass properties before override"
'    massval = MyMassProp.Mass
'    Debug.Print "Mass: " & massval

    '    MyMassProp.SetOverrideOptions OvProp, swThisConfiguration, Empty
    Dim vCofG                   As Variant
    vCofG = MyMassProp.CenterOfMass
    Debug.Print MyMassProp.SetAssignedMassProp(val, vCofG(0), vCofG(1), vCofG(2), swAllConfiguration, "")

    'MyMassProp.Recalculate

'    Debug.Print ""
'    Debug.Print "Mass properties after override"
'    massval = MyMassProp.Mass
'    Debug.Print "Mass: " & massval
...

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

@Kelny , спасибо за помощь!

После замены SldWorks.MassProperty2 на SldWorks.MassProperty выскакивает тоже окошко но на следующей строке "Dim OvProp As SldWorks.MassPropertyOverrideOptions" 

его тоже нужно чем-то заменить.

 

Ссылка на сообщение
Поделиться на других сайтах
18 минут назад, malvi.dp сказал:

выскакивает тоже окошко но на следующей строке "Dim OvProp As SldWorks.MassPropertyOverrideOptions" 

его тоже нужно чем-то заменить.

 

42 минуты назад, Kelny сказал:

строки закомментить (одинарная кавычка в начале строки) или удалить

 

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

@Kelny , если закомментировать, то отрабатывает без ошибок.

Но, вставленный файл не сопряжен (не зафиксирован) и масса не соответствует введенной в окошке (она остается изначальной).

Осталось совсем малость ))

Еще заметил, если чсло в окошке вводить в английской раскладке, то выскакивает окно

Скрытый текст

изображение_2020-12-09_144013.pngHM3.JPG

При вводе в русской раскладке все без ошибок

Изменено пользователем malvi.dp
Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, malvi.dp сказал:

Но, вставленный файл не сопряжен (не зафиксирован)

Если вставляется правильно, то не надо с него снимать фиксацию, закомментировать строку (и дальше тогда можно закомментить добавление сопряжения):

Цитата

'swModel.UnfixComponent

 

17 минут назад, malvi.dp сказал:

масса не соответствует введенной в окошке (она остается изначальной).

Если надо менять массу вставляемого компонента, а не всей сборки  (в приведённом макросе меняется масса всей сборки), то массу надо менять в добавляемой детальке сразу после её открытия перед вставкой в сборку:

Цитата

...

Set tmpObj = swApp.OpenDoc6("D:\Work\H.SLDPRT", 1, 32, "", errors, longwarnings)

val = InputBox("Ввести значение массы, кг", "Окно ввода значения", "100")

Set MyMassProp = tmpObj.Extension.CreateMassProperty

    Dim vCofG                   As Variant
    vCofG = MyMassProp.CenterOfMass
    Debug.Print MyMassProp.SetAssignedMassProp(val, vCofG(0), vCofG(1), vCofG(2), swAllConfiguration, "")

Set swModel = swApp.ActivateDoc3(AssemblyTitle, True, 0, errors)

...

 

Соответственно эти строки строки удалить дальше.

30 минут назад, malvi.dp сказал:

При вводе в русской раскладке все без ошибок

Вероятно связано с тем что вы вводите в качестве разделителя ТОЧКА или ЗАПЯТАЯ, что бы устранить эти вопросы можно заменять на нужный знак, например, точку на запятую:

val = Replace( InputBox("Ввести значение массы, кг", "Окно ввода значения", "100"), ".", ",")

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

@Kelny , спасибо все получилось!

Осталось только разобраться с фиксацией компонента или сопряжения по исх. точке.

Закомментировать "'swModel.UnfixComponent" не помогает.

Изменено пользователем malvi.dp
Ссылка на сообщение
Поделиться на других сайтах
33 минуты назад, malvi.dp сказал:

Закомментировать "'swModel.UnfixComponent" не помогает.

Оно вроде вообще ни на что не должно влиять в данном макросе.

 

Если компонент вставляется куда надо, то вероятно можно зафиксировать строкой:

Цитата

...

Set swInsertedComponent = swModel.AddComponent5("D:\Work\H.SLDPRT", 0, "", False, "", 0, 0, 0)

swInsertedComponent.IsFixed True

...

 

33 минуты назад, malvi.dp сказал:

или сопряжения по исх. точке.

Вероятно тут надо учитывать локализацию и задавать то что написано в дереве проектирования (а может и в другом проблема), например:

Цитата

'        ' Create the name of the mate and the names of the points to use for the mate
    FirstSelection = "Point1@Исходная точка@" + strCompName & "@" + AssemblyName
    SecondSelection = "Point1@Исходная точка" '+ AssemblyTitle 'AssemblyName

 

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

swInsertedComponent.IsFixed True

Что-то не хочет

Скрытый текст

изображение_2020-12-09_160133.png

 

22 минуты назад, Kelny сказал:

'        ' Create the name of the mate and the names of the points to use for the mate
    FirstSelection = "Point1@Исходная точка@" + strCompName & "@" + AssemblyName
    SecondSelection = "Point1@Исходная точка" '+ AssemblyTitle 'AssemblyName

Это тоже не работает

Ссылка на сообщение
Поделиться на других сайтах
20 минут назад, malvi.dp сказал:
42 минуты назад, Kelny сказал:

swInsertedComponent.IsFixed True

Что-то не хочет

Вероятно не доглядел и эта функция ни чего не меняет, а только сообщает - был не прав.

 

Тогда всё же вернуться  к имеющимся строкам (то есть по имени выбирается компонент и на этот раз фиксируется, а не наоборот):

Цитата

    longstatus = swModel.Extension.SelectByID2(strCompName, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
    swModel.FixComponent

 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, malvi.dp сказал:

вставленный файл не сопряжен (не зафиксирован) и масса не соответствует введенной в окошке (она остается изначальной).

Осталось совсем малость ))

@malvi.dp Можешь записать макросом освобождение/фиксацию компонента в 2016 солиде? Пробовал под 2014 солид и тоже, почему-то не освобождается и не фиксируется после вставки.

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

Солид с русским интерфейсом?

1 час назад, Kelny сказал:

Если надо менять массу вставляемого компонента, а не всей сборки  (в приведённом макросе меняется масса всей сборки), то массу надо менять в добавляемой детальке сразу после её открытия перед вставкой в сборку

Меняется масса нормально, уже у выбранной виртуальной детали

Set swComp = swModel.GetComponentByName(strCompName)

Set swRefDoc = swComp.GetModelDoc2
    Set MyMassProp = swRefDoc.Extension.CreateMassProperty2

Ссылка на сообщение
Поделиться на других сайтах
30 минут назад, Kir95 сказал:

Можешь записать макросом освобождение/фиксацию компонента в 2016 солиде? 

Скрытый текст

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
boolstatus = Part.Extension.SelectByID2("_Äåòàëü 164711-1@8_30061.3.2.12_Óñòðîéñòâî ïðèæèìíîå", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FixComponent
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("_Äåòàëü 164711-1@8_30061.3.2.12_Óñòðîéñòâî ïðèæèìíîå", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("_Äåòàëü 164711-1@8_30061.3.2.12_Óñòðîéñòâî ïðèæèìíîå", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FixComponent
Part.ClearSelection2 True
End Sub

 

30 минут назад, Kir95 сказал:

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

Солид с русским интерфейсом?

Да, я так понял, что масса меняется до виртуализации.

Да

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

Изменено пользователем malvi.dp
Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, malvi.dp сказал:

Чтобы делался виртуальным и массу менял у детали, получилось сделать

Это был не вопрос - для 2014 солида я сделал уже )

Ещё с сопряжением по исходной точке поэкспериментировать нужно. При вставке совмещаются 0 точка сборки и центр масс детали, а нужно по 0 точке детали?

Ссылка на сообщение
Поделиться на других сайтах
Только что, Kir95 сказал:

При вставке совмещаются 0 точка сборки и центр масс детали, а нужно по 0 точке детали?

Без разницы, в идеале по исходным точкам сб и де

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

@malvi.dp Сделал, чтобы деталь выравнивалась по исходным точкам, проверил на 2014 и 2021, посмотри, как отработает в 2016. Чтобы в тексте не было кракозябров, перед копированием переключись на русскую раскладку. Может, если покажет ошибку, нужно будет закомментировать/раскомментировать строки с точками для выбора (в тексте посмотри ENGLISH/RUSSIAN)

 Инфа для тех, кто только пришёл) - макрос добавляет в сборку деталь, выравнивает её по исходным точкам, делает эту деталь виртуальной, меняет её массу на значение, введённое в окошке (путь к детали можно переписать в тексте и закомментировать строки с массой, если не нужно менять).

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

Скрытый текст

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDocExt As ModelDocExtension
Dim swAssy As AssemblyDoc
Dim swComp As Component2
Dim swRefDoc As SldWorks.ModelDoc2
Dim swRefDocName As String
Dim AssemblyTitle As String
Dim AssemblyName As String
Dim boolstat As Boolean
Dim strings As Variant
Dim matefeature As SldWorks.Mate2 'Feature
Dim FirstSelection As String
Dim SecondSelection As String
Dim strCompName As String
Dim selCompName As String
Dim mateError As Long
Dim MyMassProp As SldWorks.MassProperty
Dim val As String
Dim massval As Double
Dim longstatus As Boolean, longwarnings As Long

Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

If swModel.GetType <> swDocASSEMBLY Then
MsgBox "Open Assy"
Exit Sub
End If

AssemblyTitle = swModel.GetTitle
strings = Split(AssemblyTitle, ".")
AssemblyName = strings(0)

Dim tmpObj As ModelDoc2
Dim errors As Long
Set tmpObj = swApp.OpenDoc6("D:\Work\H.SLDPRT", 1, 32, "", errors, longwarnings)
Set swModel = swApp.ActivateDoc3(AssemblyTitle, True, 2, errors) '0
Dim swInsertedComponent As Component2
Set swInsertedComponent = swModel.AddComponent5("D:\Work\H.SLDPRT", 0, "", False, "", 0, 0, 0)
    Debug.Print "swInsertedComponent.Name: " + swInsertedComponent.Name2
    
    ' Make the component virtual
    longstatus = swInsertedComponent.MakeVirtual '(True)
 
    ' Get the name of the component for the mate
    strCompName = swInsertedComponent.Name2
    Debug.Print "strCompName: " + strCompName
    
    selCompName = swInsertedComponent.Name2 + "@" + AssemblyName
    Set swAssy = swModel
    longstatus = swModel.Extension.SelectByID2(selCompName, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
    swAssy.UnfixComponent
'        swAssy.FixComponent
'        Stop

swModel.ClearSelection2 True
swApp.CloseDoc "D:\Work\H.SLDPRT"

val = Replace(InputBox("Ввести значение массы, кг", "Окно ввода значения", "100"), ".", ",")
Set swComp = swModel.GetComponentByName(strCompName)
Set swRefDoc = swComp.GetModelDoc2
Set MyMassProp = swRefDoc.Extension.CreateMassProperty
    Debug.Print "OverrideMass property is set to " & MyMassProp.OverrideMass
    Debug.Print "Mass is overridden? " & MyMassProp.SetOverrideMassValue(val, swThisConfiguration, Nothing)
    Debug.Print "Mass properties after override"
    massval = MyMassProp.Mass
    Debug.Print "Mass: " & massval
    
    swModel.ClearSelection2 (True)
    
    Set swModel = swApp.ActivateDoc3(AssemblyTitle, True, 0, errors)
    Set swDocExt = swModel.Extension
    
'   ENGLISH Create the name of the mate and the names of the points to use for the mate
    FirstSelection = "Point1@Origin@" + strCompName & "@" + AssemblyName
    SecondSelection = "Point1@Origin" '+ AssemblyTitle 'AssemblyName
    
'   RUSSIAN Create the name of the mate and the names of the points to use for the mate
'    FirstSelection = "Точка1@Origin@" + strCompName & "@" + AssemblyName '+ AssemblyTitle '
'    SecondSelection = "Точка1@Origin" '+ AssemblyTitle '+ AssemblyTitle

    ' Select the points to mate
    boolstat = swDocExt.SelectByID2(FirstSelection, "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
    boolstat = swDocExt.SelectByID2(SecondSelection, "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)

    Debug.Print " name1 - " & FirstSelection
    Debug.Print " name2 - " & SecondSelection

    ' Add the mate sw2014 сопрягает по исх. точкам и НЕ выравнивает по осям
'    Set matefeature = swAssy.AddMate4(swMateCOINCIDENT, swMateAlignALIGNED, False, 0, 0, 0, 0, 0, 0, 0, 0, False, False, mateError) 'swMateCOORDINATE
    
    ' Add the mate sw2016 сопрягает по исх. точкам и выравнивает по осям
    Set matefeature = swAssy.AddMate4(swMateCOORDINATE, swMateAlignALIGNED, False, 0, 0, 0, 0, 0, 0, 0, 0, False, False, mateError) 'swMateCOORDINATE

    ' Add the mate sw2016-2021 сопрягает по исх. точкам и выравнивает по осям
'    Set matefeature = swAssy.AddMate5(swMateCOORDINATE, swMateAlignALIGNED, False, 0, 0, 0, 0, 0, 0, 0, 0, False, True, 0, mateError)
    Debug.Print "Mate added: " & matefeature.Name

    swModel.ViewZoomtofit2
    swModel.EditRebuild3

End Sub

 

 

7 часов назад, Kelny сказал:
8 часов назад, malvi.dp сказал:

При вводе в русской раскладке все без ошибок

Вероятно связано с тем что вы вводите в качестве разделителя ТОЧКА или ЗАПЯТАЯ, что бы устранить эти вопросы можно заменять на нужный знак, например, точку на запятую:

val = Replace( InputBox("Ввести значение массы, кг", "Окно ввода значения", "100"), ".", ",")

Подмена точки на запятую работает )

 

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

посмотри, как отработает в 2016.

Спасибо! Заметил такую особенность: если запустить макрос в пустой сборке - он отрабатывает без ошибок! НО, если в сборке находятся уже какие-то детали, то компонент вставляется с нужной массой, делается виртуальным, но не сопрягается + выскакивает ошибка

Скрытый текст

HM1.JPGHM7.JPG

 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, malvi.dp сказал:

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

Создал сборку с тремя деталями - макрос отработал без ошибок, но в старой сборке так с ошибкой и отрабатывает (может в самой сборке что-то не так, непонятно).

Вобщем, макрос получился рабочий!

@Kir95 , @Kelny - Спасибо за помощь!

 

PS; Макрос отрабатывает с ошибкой, если в сборке есть подсборка!

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

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

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

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

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

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

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

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

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

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

    • Евген64



  • Сообщения

    • Горыныч
      Только Вы решаете. Я Вам из собственного опыта привел рекомендации. Если страшно, то не берите, только и всего. Сломать можно все что угодно. 
    • Orchestra2603
      Ладно. Я примерно понял, что вы имеете в виду. В теории, даже чтобы выделить n-ный базис нужно зафиксировать какие-то значения n раз. Только надо так их задавать, чтобы каждый раз получались линейно-независимые вектора. Я бы не называл это "закреплением", потому что возникает ложная кажущаяся параллель со статическим решением, где мы ищем единственное решение и для этого фиксируем какие-то компоненты, хотя здесь цель расчета принципиально иная. Это, как по мне, приводит к путанице, но если вам нравится это так называть, то - пожалуйста. Кто я такой, чтобы вам запрещать)   Я не могу сказать, что решать нужно всегда. В моем понимании в определенных итерационных схемах собственные вектора получаются полседовательными приближениями сами по себе. Применяя всякие манипуляции к матрицам (сдвиги и т.д.) можно контролировать сходимость к наибольшему, наименьшему, i-му и т.д. собственному вектору. Я не прав?   Что касается факторизаций, то для любых квадратных матриц существует разложение Шура, где ортогональными преобразованиями матрица приводится к треугольной форме. В частности, для обобщенной задачи, вот выдержка из статьи. Алгоритм получаения такого разложения для обобщенной задачи называется QZ алгоритм. Он вовсю используется в Матлабею Я не вижу никаких препятствий принципиальных, чтобы получить такую факторизацию матриц.     Т.е. похоже, что, да, все же приходится решать СЛАУ, в общем случае для треугольной матрицы A-lambda*B. И покуда lambda будет собственным значением, вся матрица A-lambda*B будет вырождена. В частности, для нулевых СЗ A-lambda*B = A, и А, сама собой, вырождена.   Но.. не могу пока сказать точно, но вроде как если A и B - симметричны, то QAZ и QBZ из треугольных превращаются в диагональные, и тогда столбцы Q становятся автоматически собственными векторами (разложение Шура переходит в спектральное), т.е. и решать ничего не приходится. Но где-то пишут, что нужна положительная определенность, где-то пишут, что только симметрии достаточно... не могу пока точно сказать.  
    • ДОБРЯК
      Я вижу, что вы не поняли. А говорили, что это знали еще в детском саду... https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%93%D0%B0%D1%83%D1%81%D1%81%D0%B0 Читайте внимательно. :=)   Ме́тод Га́усса — классический метод решения системы линейных алгебраических уравнений (СЛАУ). Назван в честь немецкого математика Карла Фридриха Гаусса. Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе треугольного вида, из которой последовательно, начиная с последних (по номеру), находятся все переменные системы.  
    • Shura762
      (дисклеймер ) не взлетит... особенно учитывая его отношение, как человека колбасит, и почему в ТФ "узел" а не точка... перепутано местами "ты" , "на" и пропустили слово "пошёл" ... можно сказать я работаю в таком коллективе, и ЧЁ, плевали на ТФ с высокой колокольни, если молодежь можно еще как-то замотивировать, показать как надо работать, то старшее поколение делает на "отвали моя черешня" чертежи выдали тяп-ляп и что тебе надо то еще .... (дальше идиоматические выражения в рамках законодательства) p.s. я догадываюсь почему "узел" и считаю что правильное название дали.
    • lem_on
      Термообработка намного эффективнее, но из за размеров можно использовать локальное воздействие на сварочные швы вибрацией либо "проковкой" 
    • maxx2000
    • lem_on
    • Павлуха
      Да повесть на команду S и не париться.
    • gudstartup
      та и ломают не от ума! так их не ремонтируют а просто новые устанавливают
    • lem_on
      Та хз, мне ехать а не шашечки. Жалоб нет , значить всех все устраивает.    С дуру можно много чего сломать, а по цене ремонта направляющие качения нам ного больше стоят чем скольжения. 
×
×
  • Создать...