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

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


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

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

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

можно небольшой пример gif или еще что

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


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

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

что за фильтр

Ссылка на сообщение
Поделиться на других сайтах
В 30.01.2020 в 20:16, don108 сказал:

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

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

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

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

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

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swDoc As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFeat As SldWorks.Feature
Dim swSelData As SldWorks.SelectData
Dim splc As Integer
Dim swSketch As SldWorks.Sketch
Dim vSegs As Variant
Dim vSeg As Variant
Dim swSeg As SldWorks.SketchSegment
 
Sub Main()
Set swApp = Application.SldWorks
Set swDoc = swApp.ActiveDoc
Set swSelMgr = swDoc.SelectionManager
Set swSelData = swSelMgr.CreateSelectData
Set swFeat = swSelMgr.GetSelectedObject6(1, 0)
    If swFeat Is Nothing Then
    MsgBox "Нужно выбрать эскиз в дереве проектирования!"
    Exit Sub
    End If
    Set swSketch = swFeat.GetSpecificFeature2
    swDoc.EditSketch
    splc = 0
    splc = swSketch.GetSplineCount(1)
vSegs = swSketch.GetSketchSegments
For Each vSeg In vSegs
    Set swSeg = vSeg
    If swSeg.GetType = swSketchSPLINE Then
        swSeg.Select True
    End If
Next vSeg
swDoc.EditDelete
swDoc.InsertSketch2 True
MsgBox ("Количество удалённых сплайнов - " & splc & "шт.")
End Sub

 

Чтобы не было кракозябров при копи/пасте кода, предварительно переключиться на русскую раскладку в винде )

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

Макрос удаляет все сплайны в эскизе.

@Kir95 Хороший троллинг!

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

Интересно, сколько по времени макрос отрабатывать будет для 86000 элементов

:biggrin:

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

 

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

Макрос удаляет все сплайны в эскизе.

@Kir95 Хороший троллинг!

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

Интересно, сколько по времени макрос отрабатывать будет для 86000 элементов

 

Чего опять не так-то, всё ж нормально было ) На картинке ниже сплайны удалялись секунды 2, двг файл был, правда, всего 15мб

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

5e3a8dfc93de8_-.png.770d66550298bdeacb6df8407fce0cd1.png

 

5e3a8df80b62f_-.png.f6ff18af51881b0ec20c4849627f5487.png

 

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

На картинке ниже сплайны удалялись секунды 2

Ну чёт как-то сильно сладко. :g:

Дай DWG помацать.

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

Интересно, сколько по времени макрос отрабатывать будет

Добавил таймер и проверку на наличие сплайнов в эскизе в предыдущий макрос для удаления сплайнов 

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

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swDoc As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFeat As SldWorks.Feature
Dim swSelData As SldWorks.SelectData
Dim splc As Integer
Dim swSketch As SldWorks.Sketch
Dim vSegs As Variant
Dim vSeg As Variant
Dim swSeg As SldWorks.SketchSegment
Dim STIME As Long
Dim ETIME As Long
 
Sub Main()
Set swApp = Application.SldWorks
Set swDoc = swApp.ActiveDoc
Set swSelMgr = swDoc.SelectionManager
Set swSelData = swSelMgr.CreateSelectData
Set swFeat = swSelMgr.GetSelectedObject6(1, 0)
    If swFeat Is Nothing Then
    MsgBox "Нужно выбрать эскиз в дереве проектирования!"
    Exit Sub
    End If
    Set swSketch = swFeat.GetSpecificFeature2
    swDoc.EditSketch
    splc = 0
    splc = swSketch.GetSplineCount(1)
    If splc = 0 Then
    MsgBox "В выбранном эскизе нет сплайнов!"
    swDoc.InsertSketch2 True
    Exit Sub
    End If
 STIME = Timer
vSegs = swSketch.GetSketchSegments
For Each vSeg In vSegs
    Set swSeg = vSeg
    If swSeg.GetType = swSketchSPLINE Then
        swSeg.Select True
    End If
Next vSeg
swDoc.EditDelete
swDoc.InsertSketch2 True
 ETIME = Timer
MsgBox ("Количество удалённых сплайнов - " & splc & "шт. за " & Format(ETIME - STIME, "0.0") & " сек")
End Sub

 

 

4 часа назад, Blurp сказал:

Ну чёт как-то сильно сладко. :g:

Дай DWG помацать.

Помацай отсюда )

7 тыщ сплайнов за 70 секунд удаляются, проц I-7 4.2 GHz

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

5e3af9f43dbc5_-.thumb.png.10f943fa319672b82db209b9df8e0579.png

 

5e3afa008e260_-.thumb.png.efd2e761206627efd0f552df3a233d8f.png

 

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

7 тыщ сплайнов за 70 секунд удаляются

Это уже больше похоже на правду.

А то за 2 секунды у него там 2,5К уничтожаются. - Ага! :mail1:

m_ba179a06.jpg

 

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

Это уже больше похоже на правду.

А то за 2 секунды у него там 2,5К уничтожаются. - Ага!

ну не 2, ладно, по таймеру 5 сек. хз почему настолько быстрее, чем 7К у камина

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

5e3b0d21329d6_-5sek.thumb.png.cc3cc2d5eb1785eb02d8a2870506da1e.png

 

5e3a8dfc93de8_-.png.770d66550298bdeacb6df8407fce0cd1.png

 

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

и выбор что удалить сплайны или дуги или то и другое.

[и тут же сохранить чертеж  с закрытием без запроса )) ]

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

Есть алгоритм не удаления, а замены сплайнов на дуги?

Про замену не знаю. Попадался макрос по созданию эскиза с дугами, примерно повторяющими контур существующего сплайна.

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

@Kir95 Твой гуглоскилл хорош безусловно. "Pазгуглил у буржуев, децл поменял-добавил, запостил - хайпанул" - это правильная движуха по макро. Респект! :good:

Тоже в гугле поковырялся, немного покодил. Таймер вот твой перенес поближе к мэйну. :smile:

Замутил себе новый полигон на 20К сплайнов. В итоге на моём калькуляторе твой скрипт эрэйзит их за 295 секунд. Зелёная поделка, работающая из-под внешки - за 146 с. Другая, но работающая из-под SW - за 92 с. Взял с полки пирожок.  :cool:

Зелёный в VBA нихт ферштеен, но, если уж заинтересовался, то приходится прокачиваться.:training1:

В 2/4/2020 в 20:56, Kir95 сказал:

Интересно, сколько по времени макрос отрабатывать будет для 86000 элементов, отпишись, если не сложно )

И всё-таки - не айс. :no_1:

В 2/5/2020 в 16:52, Kir95 сказал:

Чего опять не так-то, всё ж нормально было )

Дело не только во времени исполнения кода. 

 

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

Попадался макрос по созданию эскиза с дугами, примерно повторяющими контур существующего сплайна.

Это скорее offtop :pardon:, но меня как-то очень давно, еще в эпоху AutoCAD, тоже достали эти самые сплайны, с которыми AC тоже не очень дружит, так вот для этой цели (борьба со сплайнами в AutoCAD) где-то до сих пор валяется примочка на LISP для конвертации сплайнов в полилинии.

 

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

где-то до сих пор валяется примочка на LISP для конвертации сплайнов в полилинии.

Уже достаточно давно для этого есть штатная команда

https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/RUS/How-to-convert-splines-to-polylines-in-AutoCAD.html

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

Про замену не знаю. Попадался макрос по созданию эскиза с дугами, примерно повторяющими контур существующего сплайна.

А можно ссылку?

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

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

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

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

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

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

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

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

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

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

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



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