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

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


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

Выводом куда? и какая автоматизация нужна??

Вывод в туже папку где и модели, и автоматизация как в SolidWorks Task Scheduler с созданием pdf, файлы указал и начал заниматься другой работой.

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


У меня деталь создает, но потом выдает ошибку:

 

attachicon.gifСнимок.JPG

 

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

 

Стандартные манипуляции (а их там с десяток) заменяются парой кликов. Актуально для людей, которые к примеру конструируют/компонуют верхний уровень насыщенного изделия в свободном полёте мысли. Я для себя и своих подопечных слепил - очень нравится.

 

Чтобы понять, в чём ошибка - надо скрин дебага и версия ПО.

 

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

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

ест ли возможность некой автоматизации вывода DXF развертки

Я для себя написал простенький макрос.

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

 

В шапке есть еще пара макросов на эту тему, так что выбрать есть из чего)

dxf.zip

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

Стандартные манипуляции (а их там с десяток) заменяются парой кликов. Актуально для людей, которые к примеру конструируют/компонуют верхний уровень насыщенного изделия в свободном полёте мысли.

Я постоянно так работаю, когда прорабатывается концепция нового проекта. Десяток действий не припомню: 1. Нажать кнопку "Создать новый компонент", 2. Выбрать плоскость, на которой будет создаваться эскиз (при этом создаётся сопряжение "На месте", которое позиционирует деталь). У меня получается всего два действия.

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

Я постоянно так работаю, когда прорабатывается концепция нового проекта. Десяток действий не припомню: 1. Нажать кнопку "Создать новый компонент", 2. Выбрать плоскость, на которой будет создаваться эскиз (при этом создаётся сопряжение "На месте", которое позиционирует деталь). У меня получается всего два действия.

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

То есть далее:

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

- выбрать пару объектов в дереве

- добавить тип сопряжения, выравнивающий новую деталь по одноименным справочным объектам сборочной единицы

- встать в режим редактирования детали

- раскрыть дерево.

 

До названного последним пункта макрос всё делает автоматически плюс присваивает введенное имя детали и если нужно сохраняет ее в папке со сборкой.

Скриншот во вложении.

Остаётся ткнуть в понравившуюся плоскость и рисовать. Дальше - как пожелает конкретно взятый конструктор.

___________

 

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

post-27242-0-80651500-1477048247.jpg

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

Может кто подскажет,  SW2016 создал модель фланца по ГОСТ 33259, проблема в том что солид не хочет создавать конфигурации для одинаковых диаметров но с разными исполнениями, разные фланцы по диаметру или по давлению создает, а по исполнению (тип шип или паз) создавать не хочет. Модель для пробы прилагаю.

Фланец 01 ГОСТ 33259-2015.rar

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

камрады, вопрос

допустим, есть открытый файл чертежа

в нем один или несколько листов одного или разных форматов

требуется определить каких форматов - какое количество

итоговый результат в  виде, предположим, "А4-3.А2-1.А1-1" - записать в переменную

нужен код в VBA

Ссылка на сообщение
Поделиться на других сайтах
камрады, вопрос допустим, есть открытый файл чертежа
А вопрос то в чём?

В справку не заглядывали?

http://help.solidworks.com/2010/english/api/sldworksapi/set_up_drawing_sheet_example_vb.htm

http://help.solidworks.com/2010/english/api/swdocmgrapi/get_drawing_sheets_properties_example_vbnet.htm

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

нужен код в VBA

есть код на vb.net:

 ''' <summary>Форматы листов в порядке возростания</summary>
  Public lst_SortEtalon As New List(Of String) From {"А4", "А4х3", "А4х4", "А4х5", "А4х6", "А4х7", "А4х8", "А4х9",
"А3", "А3х3", "А3х4", "А3х5", "А3х6", "А3х7",
"А2", "А2х3", "А2х4", "А2х5",
"А1", "А1х3", "А1х4",
"А0", "А0х3"}



Sub ОпределитьФорматЛистовЧертежа(oDraw As IDrawingDoc)


If спецификацияНайдена = True And спецификацияНаПервомЛисте = False Then
cbo_FormatDraw.Text = "А4"
Exit Sub
End If


Dim LF0 As New List(Of Tuple(Of String, Integer, Integer)) ' список основных форматов
With LF0
.Add(Tuple.Create("А0", 841, 1189))
.Add(Tuple.Create("А0", 1189, 841))
.Add(Tuple.Create("А1", 594, 841))
.Add(Tuple.Create("А1", 841, 594))
.Add(Tuple.Create("А2", 420, 594))
.Add(Tuple.Create("А2", 594, 420))
.Add(Tuple.Create("А3", 297, 420))
.Add(Tuple.Create("А3", 420, 297))
.Add(Tuple.Create("А4", 210, 297))
End With
Dim LF1 As New List(Of Tuple(Of String, Integer, Integer)) ' список дополнительных форматов
With LF1
.Add(Tuple.Create("А0х2", 1682, 1189))
.Add(Tuple.Create("А0х3", 2523, 1189))
.Add(Tuple.Create("А1х3", 1783, 841))
.Add(Tuple.Create("А1х4", 2378, 841))
.Add(Tuple.Create("А2х3", 1261, 594))
.Add(Tuple.Create("А2х4", 1682, 594))
.Add(Tuple.Create("А2х5", 2102, 594))
.Add(Tuple.Create("А3х3", 891, 420))
.Add(Tuple.Create("А3х4", 1189, 420))
.Add(Tuple.Create("А3х5", 1486, 420))
.Add(Tuple.Create("А3х6", 1783, 420))
.Add(Tuple.Create("А3х7", 2080, 420))
.Add(Tuple.Create("А4х3", 630, 297))
.Add(Tuple.Create("А4х4", 841, 297))
.Add(Tuple.Create("А4х5", 1051, 297))
.Add(Tuple.Create("А4х6", 1261, 297))
.Add(Tuple.Create("А4х7", 1471, 297))
.Add(Tuple.Create("А4х8", 1682, 297))
.Add(Tuple.Create("А4х9", 1892, 297))
End With
'PaperSize =   swSheet.GetProperties(0) - размер листа 
'TemplateIn =  swSheet.GetProperties(1) - номер индекса (при использовании стандартного шаблона)
'Scale1 =      swSheet.GetProperties(2) - числитель масштаба листа
'scale2 =      swSheet.GetProperties(3) - знаменатель масштаба листа
'FirstAngle =  swSheet.GetProperties(4) - тип проекции (см. "свойства листа")
'Width =       swSheet.GetProperties(5) - ширина листа (бумаги)
'Height =      swSheet.GetProperties(6) - высота листа (бумаги)
Dim lst_FormatsSheets As New List(Of String) ' список содерит форматы листов чертежа
Dim lst_AddedFormat As New List(Of String) ' список содерит ДОПОЛНИТЕЛЬНЫЕ форматы листов чертежа
Dim oCount As Integer = UBound(oDraw.GetSheetNames)
Dim ex_write As Boolean ' True - нужно заполнить поле "Примечание" для формата т.к. в чертеже либо есть листы имеющие дополнительный формат, либо имеются листы с разными форматами, либо и то и другое одновременно, False - поле "Примечание" заполнять не нужно.


For i As Short = 0 To oCount ' перебираем все листы чертежа
swSheet = oDraw.Sheet(oDraw.GetSheetNames(i)) ' получаем лист чертежа по имени
If swSheet.GetName.Contains("DRW") Or swSheet.GetName.Contains("Лист") Then
Dim wDrw As Integer = swSheet.GetProperties(5) * 1000 ' ширина листа
Dim hDrw As Integer = swSheet.GetProperties(6) * 1000 ' высота листа 


For j As Integer = 0 To LF1.Count - 1 ' перебираем дополнительные форматы
If wDrw = LF1.Item(j).Item2 And hDrw = LF1.Item(j).Item3 Then
lst_AddedFormat.Add(LF1.Item(j).Item1)
End If
Next


If lst_AddedFormat.Count > 0 Then ' если в чертеже есть листы с дополнительным форматом
ex_write = True ' нужно заполнить поле "Примечание" для формата
End If


For j As Integer = 0 To LF0.Count - 1 ' перебираем основные форматы
If wDrw = LF0.Item(j).Item2 And hDrw = LF0.Item(j).Item3 Then
lst_FormatsSheets.Add(LF0.Item(j).Item1)
End If
Next
End If
Next


lst_FormatsSheets.AddRange(lst_AddedFormat) ' добавляем список найденых дополнительных форматов в список всех форматов


lst_FormatsSheets = lst_FormatsSheets.OrderBy(Function(i) lst_SortEtalon.IndexOf(i)).ToList()


For m As Integer = 0 To lst_FormatsSheets.Count - 1
For n As Integer = 0 To lst_FormatsSheets.Count - 1
If lst_FormatsSheets(m) = lst_FormatsSheets(n) And m <> n Then ' если найдено два разных элемента списка с одинаковыми именами формата листа чертежа
lst_FormatsSheets(n) = ""
End If
Next n
Next m


lst_AddedFormat.Clear()
lst_AddedFormat.AddRange(lst_FormatsSheets) ' перебрасываем найденые форматы листов в уже не нужный список для последующей обработки
lst_FormatsSheets.Clear()


For Each _Item As String In lst_AddedFormat ' избавляемся от пустых элементов
If _Item <> "" Then
lst_FormatsSheets.Add(_Item)
End If
Next


If lst_FormatsSheets.Count > 1 Then ' если в чертеже несколько листов
If ex_write = False Then ' если в чертеже нет листов имеющих дополнительные форматы
For m As Integer = 0 To lst_FormatsSheets.Count - 1
For n As Integer = 0 To lst_FormatsSheets.Count - 1
If lst_FormatsSheets(n) <> lst_FormatsSheets(m) Then ' если в списке есть разные значения т.е. в чертеже есть листы разного формата
ex_write = True ' нужно заполнить поле "Примечание" для формата
Exit For ' выходим из цикла
End If
Next
If ex_write Then ' если нужно заполнить поле "Примечание" для формата
Exit For ' выходим из цикла
End If
Next
End If
Else
cbo_FormatDraw.Text = lst_FormatsSheets(0)
txt_Note.Text = ""
End If


If ex_write Then ' если нужно заполнить поле "Примечание" для формата
cbo_FormatDraw.Text = "*)"
txt_Note.Text = ""
txt_Note.Text = "*)"
For i As Integer = 0 To lst_FormatsSheets.Count - 1
If lst_FormatsSheets(i) <> "" Then
If i = lst_FormatsSheets.Count - 1 Then ' если элемент последний
txt_Note.Text &= String.Format(" {0}", lst_FormatsSheets(i))
Else
txt_Note.Text &= String.Format(" {0},", lst_FormatsSheets(i))
End If
End If
Next
End If

End Sub

здесь:
 cbo_FormatDraw.Text - это просто список форматов
 txt_Note.Text       - текст из этого TextBox потом передаётся в свойство модели "Примечание"

 

З.Ы.

за сортировку спасибо streamdown  :worthy: 

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

Исправил ошибки в макросе для создания новой детали "NewPart2Asm".

Кому он показался интересным - пристёгиваю:

NewPart2Asm_v1.rar

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

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

 

Ваше право, как работать. Я просто хотел бы понять, чем так мешает

 

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

 

Если на чертеже вид спереди не соответствует тому, что ожидается, просто переориентируем вид модели на нужный. Дело пары кликов.

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

Доброго времени суток!

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

Если убрать галку "Использовать инструмент масштабирования", она пропадает.

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

Пробовал записать макросом снятие галки "Использовать инструмент масштабирования", но солид никак это не отображает в VBA.

В общем никак не разберусь как от нее избавится с использованием макроса.

Заранее спасибо

Вот код вставки рисунка.

            Set SkPicture = Part.SketchManager.InsertSketchPicture("D:\test.png")
            SkPicture.SetOrigin 0.0619, 0.03
            SkPicture.SetSize 0.0107, 0.0048, 1
            SkPicture.SetTransparency 1, 1, 0, 0
            Part.ClearSelection

-GToDuEWZns.jpg

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

странно, тоже пользуюсь таким способом, но линий нету.

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

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

камрады, подскажите код вызова окна сохранения файла, причем, в строке должно быть определенное, заданное имя файла

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

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

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Ганс В
      Доброе времени суток знатоки NX12CAM У меня такой вопрос. Мне нужен немного увеличить стрелку при построения размеров,  на фоне когда ставиться размер размер стрелки мелкий.  И посоветуйте пожалуйста ведоуроки по NX12  Спасибо заранее 
    • Bot
      Оригинал: Roopinder Tara. Watch this space: Here come manufacturable generative designs Такие кронштейны демонстрируют облегчение конструкции с помощью топологии. У этого кронштейна острые края и гладкие поверхности, это означает, что деталь еще можно подвергнуть машинной обработке, чтобы сделать ее максимально легкой Мы уже знакомы с Майклом Богомольным — мы встречались с ним на его предыдущем предприятии ParaMatters, которое было продано Carbon, компании по производству 3D-принтеров, в августе 2022 года. После этого он собрал свою команду ParaMatters (шестеро из них имеют докторскую степень) и получил инвестиции в размере 2,5 млн долларов для запуска InfinitForm. Эта компания вполне может создать первое генеративное программное обеспечение, которое проектирует подходящие для использования и производства детали. Крупные поставщики САПР могут заявить, что их программное обеспечение для генеративного проектирования имеет возможности для создания [...] View the full article
    • lux59
      построить дугами барашку я пробовал, не то слегка, он в списке выдаст количество сегментов, да норм сделаю покажу, что вышло, правда пришлось делать сборкой не единой деталью, в общем я понял как это работает, Спасибо за помощь!
    • lem_on
      Ага, особенно некоторых бестолочей со своим пониманием реальности.  По типу, я скачал программу, я так вижу, я пишу книгу. 
    • malvi.dp
      Так в чем проблема создать кривую и протянуть профиль? Единственная трудность это кривую сделать из дуг и отрезков, а не сплайном. Если же не использовать инструментарий сварных конструкций, то можно и сплайн использовать в качестве направляющей.  
    • Alexey0336
      Добрый день. Как то фигурировал тут вопрос с точкой в названии файла. У меня проблема, не могу захватить модель, пишет, что с этим символом нельзя. Обойти никак нельзя получается?
    • malvi.dp
      У вас там скорее всего скрыты размеры. Перетяните их дальше от штриховки, чтоб не пересекали.
    • Snake 60
      @Бестолковый С названием топика не ошиблись? Человек спрашивает: ' VBA ' 1. Open a document in SOLIDWORKS. ' 2. Run the macro below to set inch units with '     a fractional base of 16 and no rounding. Dim swApp As SldWorks.SldWorks Dim Part As SldWorks.ModelDoc2 Option Explicit Sub main()    Set swApp = Application.SldWorks    Set Part = swApp.ActiveDoc    Part.SetUnits swINCHES, swFRACTION, 16, 0, False End Sub   Код взят отсюда: https://help.solidworks.com/2019/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~setunits.html Вот еще описание всех методов: https://help.solidworks.com/2021/English/api/swconst/DP_Units.htm Ну и на вкусное, статья от Артема (см. через ВПН) https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://www.codestack.net/solidworks-api/options/document/set-units/&ved=2ahUKEwjgpL-apN6GAxU7HxAIHYO0D2IQFnoECBAQAQ&usg=AOvVaw15xq49gocoVQ5BzEA31qGf
    • Shvg
      IModelDocExtension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitSystem, swUserPreferenceOption_e.swDetailingNoOptionSpecified, swUnitSystem_e.<Value>), где swUnitSystem_e.<Value> перечисление swUnitSystem_CGS           1 = Centimeter, gram, second  swUnitSystem_Custom        4 = Lets you set length units, density units, and force  swUnitSystem_IPS           3 = Inch, pound, second  swUnitSystem_MKS           2 = Meter, kilogram, second  swUnitSystem_MMGS          5 = Millimeter, gram, second   
    • Ветерок
      Вопрос про "включение RGK". Если в модели какие-то функции сделаны с использованием RGK, эта модель будет работоспособной на другом компе, где RGK "не включен"? И вообще не понятно, получается система использует два разных ядра одновременно? Или включая RGK, автоматически выключается Прасолид? А обратно переключиться можно? Если можно итак, и так, и туда, и обратно, тогда не понятно зачем вообще это включение-выключение.
×
×
  • Создать...