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

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


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

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

Такого инструмента нет.

Это печально, спасибо за помощь.

Все остальные варианты испробованы. Делал и части укладки массивом и целиком длинный...всё-таки надеялся что есть какое-то решение...

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

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


@Alex_Storm_73 Один эскиз - твоя синусоида, второй эскиз - её "преобразовываешь".  Крайние точки во втором эскизе надо "оттянуть" от краёв. Они получаются незафиксированныеми. Во втором эскизе делаешь датчик на длину дуги синусоиды.  Включаешь Instant 3D. Не заходя в эскизы тянешь за точки и смотришь на датчик

Деталь1.SLDPRT

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

От начала синусоиды до любого другого места? 

Построить точку на заданном расстоянии от нужного конца вдоль кривой.

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

перенести Наименование компонента в свойства чертежа компонента. Нужно для отображения Наименования чертежа в проводнике Винды

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

Макрос записывает значение свойства модели в свойство чертежа этой модели, в чертеже уже должен быть вид с этой моделью, макрос проверен в солиде 2014 и 2021. Берётся (Get4) значение свойства "Description" с общей вкладки (не конфигурации), но в коде можно заменить на своё название свойства из модели. В чертеже наличие свойства необязательно - макрос его создаст. "Description" видно в проводнике винды, независимо от настроек солида

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

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Dim swRefModel As SldWorks.ModelDoc2
Dim swCustProp As CustomPropertyManager
Dim val As String, valout As String
Dim nErr As Long, nWarn As Long
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel.GetType <> swDocDRAWING Then
MsgBox "Откройте чертёж "
Exit Sub
End If
Set swDraw = swModel
Set swRefModel = swDraw.GetFirstView.GetNextView.ReferencedDocument
Set swCustProp = swRefModel.Extension.CustomPropertyManager("")
swCustProp.Get4 "Description", False, val, valout
swModel.Extension.CustomPropertyManager("").Add3 "Description", swCustomInfoText, valout, 1
swModel.Save3 swSaveAsOptions_Silent, nErr, nWarn
End Sub

 

 

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

3.1.6 условие в коде - не проверять разноимённость и разнотипность, если выбрана только 1 модель.  типа для подускорения работы )), ну и может это стабильности подбавит

SaveAsCopyReplace.swp

 

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

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

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

 

Завидую людям, освоившим все эти программирования. Я пробовал - не моё это, мозг просто взрывается.

Ссылка на сообщение
Поделиться на других сайтах
13.05.2021 в 13:55, anser89 сказал:

Один эскиз - твоя синусоида, второй эскиз - её "преобразовываешь".  Крайние точки во втором эскизе надо "оттянуть" от краёв. Они получаются незафиксированныеми. Во втором эскизе делаешь датчик на длину дуги синусоиды.  Включаешь Instant 3D. Не заходя в эскизы тянешь за точки и смотришь на датчик

Интересное решение, которое даже может и всё изменить....поподробнее-бы, не сочтите за наглость...)

...жаль не могу файл прикрепленный открыть....у меня 2016 версия....(((((

И ещё поясню, может некорректно описал задачу: Как-бы так сделать, чтобы синусоида не увеличивалась в "высоту" и не изменялась частота, а была возможность при этом, увеличивать ее длину в эскизе, как-бы "продолжать" и при этом знать "он-лайн" ее длину.....?

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

3.1.7 

- очередная доработка сохранения списка путей и удаления дубликатов,

- корректное завершение макроса при отказе высветить выбранную погашенную модель,

- попытка поправить редкостное, но противное неотрабатывание макроса с выбранной сварной деталью в 2020 солиде (может в 2014 тоже исправится?).

SaveAsCopyReplace.swp

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

Как-бы так сделать, чтобы синусоида не увеличивалась в "высоту" и не изменялась частота, а была возможность при этом, увеличивать ее длину в эскизе, как-бы "продолжать" и при этом знать "он-лайн" ее длину.....?

Насчет продолжать не уверен, но уменьшать максимально построенную можно:

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

splin.gif

 

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

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

Он и так после записи свойства чертёж сохраняет - это предпоследняя строчка кода "swModel.Save3 swSaveAsOptions_Silent, nErr, nWarn"

Про внедрение в пдф интересно, нужно поискать, может и можно. Правда, в проводнике винды я свойств из пдф файла не увидел, только через контекстное меню. А в "программированиях" тоже не шарю, кстати. Но слепить из готовых макросов из интернета или из справки солида по апи иногда что-то получается )

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

3.1.8

SaveAsCopyReplace.swp

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

 

увы мне :k0503: столько правок уже делал и не заметил- если уже попользовались и наделали копий - в них вручную придётся удалить пустые свойства "Конструктор" с вкладок конфигураций.

 

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

в 2014 солиде этот кусочек мешает. видимо, чуть позже сделаю вилку на версионность солида в этом месте. изображение.png. у меня на виртуальной машине без него работает, у кого-то на деталях начинает работать, но на подсборках перестаёт.  пока не знаю...

 

 

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

Макрос записывает значение свойства модели в свойство чертежа этой модели

Здравствуй. Как думаешь, можно ли сделать наоборот, чтобы свойства с чертежа копировались в свойства модели? Скорее даже свойства листа. Ты, мб даже знаешь для чего это мне, чтобы вывести спецификацию с таким столбцом как допустим "формат" и проверить наличие всех чертежей в сборке. 
Осложняет работу то, что у деталей есть много конфигураций и также в файле чертежа имеется много листов с конфигурациями. Т.е. необходимо, чтобы "формат" копировался с конкретного листа чертежа на конкретную конфигурацию модели, чертежный вид которой находится на этом листе. 
Я пытаюсь написать хоть какой-то макрос, но вообще в этом не шарю. Для меня сейчас любые подсказки и советы будут полезными.

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

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

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

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

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

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

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

Макрос для добавления имени листа в свойство "Формат" конфигурации выбранного в чертеже вида с компонентом. Если свойства "Формат" не было, оно создастся макросом автоматически. Имя свойства в коде можно заменить и вместо Format = swSheet.GetName, вписать Format = "Что нибудь своё" - тогда это значение и будет в свойстве )

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

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim swSheet As SldWorks.Sheet
Dim swRefModel As SldWorks.ModelDoc2
Dim swCustProp As CustomPropertyManager
Dim swConfig As SldWorks.Configuration
Dim viewConfigName As String
Dim swSelMgr As SldWorks.SelectionMgr
Dim bool As Boolean
Dim Format As String
Dim nErr As Long, nWarn As Long
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
On Error GoTo Message
Set swSelMgr = swModel.SelectionManager
Set swDraw = swModel
       Set swSheet = swDraw.GetCurrentSheet
       Format = swSheet.GetName
Set swView = swSelMgr.GetSelectedObject6(1, -1)
Set swRefModel = swView.ReferencedDocument
Set swConfig = swRefModel.GetConfigurationByName(viewConfigName)
        viewConfigName = swView.ReferencedConfiguration
Set swCustProp = swRefModel.Extension.CustomPropertyManager(viewConfigName)
    bool = swCustProp.Add3("Формат", swCustomInfoText, Format, 2)
swModel.Save3 swSaveAsOptions_Silent, nErr, nWarn
Exit Sub
Message:
MsgBox "Откройте чертёж и выберите вид с компонентом "
End Sub

 

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

@Kir95 Благодарю, сегодня попробую этот макрос. 
Я нашел ещё один твой макрос, который мне может помочь

Вчера пытался подредактировать, чтобы удалять конкретное свойство в активной конфигурации, но у меня ничего не вышло. Ты мог бы его так подредактировать? Смысл в том, чтобы при создании новой конфигурации сразу же удалить у неё нежелательное свойство. 

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

3.1.9 SaveAsCopyReplace

в 2014 не проверял (снёс виртуальную машину, чтоб поставит  виндовс 7 и в нём искомый, но пока не сделал этого)

- исправил внесение свойств со вкладок, если поля пустые (не вносились изменения);

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

- И!!  вроде решил не отрабатывание макроса - не происходила очистка массивов после закрытия макроса,

 

подозреваю, что это из-затого, что для завершения макроса я не использую и всячески обхожу Exit Sub, чтобы не выскакивала ошибка после выполнения макроса с панели инструментов CustomToolbar старой версии без ключа (от А.Татуревича программа). вот ..  битва была лютой )) начинал с разборки-проверки циклов заполнения свойств. потом проверял массивы. но не понимал, почему с одними деталями работает с другими нет, вышел, на отработку с одной конфигой, а если более - не работало, потом, что с опред. количеством работает, а с другим нет. уф. да и с толку сбивало, что ошибка-то раньше проявлялась, до заполнения свойств и снималась простой активацией активной модели или же вставкой месседжбокса или правкой кода, и если код не закрыт или не перезапустил солид - макрос работал. а при следующей сессией - уже нет.

вставил Erase Массивов в конце макроса и в начальной загрузке и вроде заработало?  :gun_guns:

 

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

 

SaveAsCopyReplace.swp

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

разобрался, всё заработало. Но всё равно спасибо за исходник

В "исходнике" макрос удаляет сами свойства во всех конфигах, а тебе, судя по всему, нужно просто очистить значение свойства в активной конфигурации - что получилось?

 

2 часа назад, tompsongun сказал:

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

подозреваю, что это из-затого, что для завершения макроса я не использую и всячески обхожу Exit Sub

On Error Resume Next - и никаких ошибок )

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

Макрос для добавления имени листа в свойство "Формат" конфигурации выбранного в чертеже вида с компонентом. Если свойства "Формат" не было, оно создастся макросом автоматически. Имя свойства в коде можно заменить и вместо Format = swSheet.GetName, вписать Format = "Что нибудь своё" - тогда это значение и будет в свойстве )

А как в свойство формат загнать не имя листа, а сам Формат чертежа? Не находил такое в АПИ?

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

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

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

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

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

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

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

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

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

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

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




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