Rich

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

4,626 posts in this topic
Pinned posts

Тема создана для обмена, создания и поиска различных прикладных программ, макросов, аддонов к программе Solidworks. 

(обсуждение других вопросов, не по тематике топика, прошу вести в соответствующих темах или создавать свои. С ув. streamdown)

 

 

Приветствую всех.

Для чего сделана эта тема я думаю уже многим объяснять не надо. Обновляю шапку (спасибо Plumber, а так же Kelny)
 
 

 
  • Конвертация и печать PDF - PDF_Batch
  • Простановка знака одинаковых отверстий - SameACircle
  • Установка страницы для печати (горизонтальная, вертикальная) - Pagesetup
  • Сжатие файлов SW - Defrag
  • Заполнение свойств файла - propMgr
  • Форматирование внутренней спецификации SW (не Excel) - EditCpecV2
  • База материала и штриховок - GOST_Материалы_18.04.05.rar
  • Пружина (модель с подбором в Excel) - Пружина
  • Печать на разные принтеры разных форматов - PrintSWDrawing
  • Изменение свойств файла (буржуйская) - PropertyEditorSpec
  • Сохранение чертежей в формате tiff - Auto_Tiff
  • Блоки со значками шероховатости с точкой привязки в углу чертежа - Znak_v_uglu_cherteja
  • Программа для простановки неуказанной шероховатости - НШ_SW
  • Пакетная запись чертежей в PDF из выбранной папки - SWpdfProjcts
  • Заполнение массы в конфигурациях, удаление какого-либо свойства сразу во всех конфигурациях детали - Get Set Mass Property
  • Макрос для чтение максимального размера по оси X, Y и Z. И последующей записи в свойство файла - GetMaxBoxSize
  • Плагин сортировки для SWR спецификации - Sort_2.2
  • Макрос служит для изменения шрифта в документе на новый - SetFontsTNR
  • Макрос служит для перезагрузки форматки основной надписи на активном листе - RefreshTemplate
  • Solidworks совершая некоторые дейтвия может заблокироваться, программа позволит разблокировать Solidworks и продолжить работу - UnlockSolidworks
  • Делает вырез и гибку на плоскости - Flexible v2.0.0.0
  • Редактор свойств в комплекте с генератором форматок - Prop 3.2
  • Добавление и редактирование ТТ - Tehni4eskie_trebovania_Beta_2.4
  • Заполнение основной надписи - Оснвная надпись Beta v.2.4 SW2007
  • Многострочное заполнение свойств файла - Change_property_V2.0
  • Макрос для генерации форматок - Master_2.1
  • Макрос для открытия выделенного компонента или подсборки из сборки, по одному клику по кнопке - OpenPart
  • Макрос для открытия чертежей с похожими именами отличными от названий открытых документов деталей и сборок - OpenDrawing
  • Макрос для обновления всех конфигураций, в модели детали или сборки - RefreshConfigurations
  • Сохранение в формате PDF - SaveAsPDF
  • Добавление новой конфигурации - AddConfig
  • Макрос переименовывает и добавляет конфигурации - RenameAddConfig_1_1
  • Позволяет автоматоматом получать dxf из всех конфигураций модели - Techfun
  • Добавление записей в размер (2отв.,3фаски и т.д) - RecordDimM_5.0
  • Данная программа предназначена для заполнения свойств пользователя и конфигураций - SWrama 4.3.1
  • RebuildProperties
  • Программа для создания иллюстрированных каталогов деталей в MS Word - SWtoWordExport
  • Прога для массового изменения свойств файлов Sw - SWproperMassEffect
  • Материалы и штриховки для Solidworks - SW_Hatch
  • Макрос изменения шрифтов - SetFontsTNR
  • Печать чертежей - PrintSWDrawing2
  • Макрос для заполнения свойства "Формат" - AddCustomFormat
  • Авто создание dxf (похоже дублирует предыдущий макрос на эту тему) DFX
  • Макрос для изменение масштаба листа - Масштаб
  • Таблица контроля сварных швов - Скачать в этом посте
  • Программа поиска файлов по указанным путям и просмотра найденных файлов - ArhivSearch3(eDrawings2009)
  • Программа поиска файлов по указанным путям и просмотра найденных файлов - ArhivSearch3(eDrawings2007)
  • Как записать сортамент материала в Базу материалов Solidworks - Смотреть тут
  • Пакет макросов [/font] SWPlus от Leon Тема тут
  • Макрос для вставки условных обозначений отверстий HoleSymbol
  • Генератор обозначения сортамента ГеОС
  • Как добавить кнопку макроса на запуск EXE ТУТ
8 people like this

Share this post


Link to post
Share on other sites


UnPinned posts

Пробовал этот макрос (OsnavnayNadpis_V1.0_Release) с вложенной функцией простановки неуказаной шероховатости, ничего не получается, матерится SW2008.

Как решить проблему кто знает?

Установить версию для SW2007 и, вероятно, выше: http://fsapr2000.ru/index.php?showtopic=6...st&p=151563</a>'>http://fsapr2000.ru/index.php?showtopic=6...p;lt;/a>

Share this post


Link to post
Share on other sites

Может кто-нибудь знает...

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

И почему размеры пропадают, когда проставляются другие?

Share this post


Link to post
Share on other sites

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

Цикл по всем размерам (вот есть макрос пересчёта всех размеров в середину допуска в качестве примера: http://fsapr2000.ru/index.php?s=&show...st&p=145308 ) и проврка имени ( Name = Dimension.Name (VB Get property) или Name = Dimension.FullName (VB Get property) )

И почему размеры пропадают, когда проставляются другие?

1. Возможно проблема с видеокартой или драйверами на неё.

2. Возможно, вы пытаетесь вставить размер при активном скрытом слое, размер вставляется, но в скрытый слой.

3. Возможно, глюк программы, возможно поможет установка сервиспаков.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

И иногда бывает, что все объекты отрисовались и размеры проставились, а иногда бывает што размер проставляется, изменяется, а дальше пропадает, а обращаясь к следующему размеру, получается обращаюсь к несуществующему...

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

Для того, чтобы отобразить все размеры модели: правой кнопкой мыши в дереве на Примечания-Отобразить размеры элемента и Отобразить примечания

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

У меня бывает нечто подобное: тут надо следить за формой курсора мышки - приобретает ли он вид, характерный для работы с р-рами?

Если да, то проблема скорее всего с видео.

У меня бывает как: проставил р-р, а его и не видно! Но если "поводить" курсором мышки в той зоне, где вроде д.б. находиться р-р, то курсор мышки приобретает вид "размерного" и в такой ситуации - 2-й клик и высвечивается окошко изменения р-ров.

Сам не могу еще разобраться, надо видеодрайвепа подбирать...

PS. какая версия SW , SP ???

У меня SW2007 SP0.0

Share this post


Link to post
Share on other sites

SW 2008 SP0.0

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

Share this post


Link to post
Share on other sites

Это может быть, когда размер ставится в НЕактивном слое - ну может чего рисовали (например разные вспомогательные линии) в каком-нибудь слое...

Затем отлючили этот слой (что бы не мешал), но сменить его забыли - вот размеры и ставятся на него и сразу отключаются...

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

Включите панель "Слой" - что бы видно было...

Share this post


Link to post
Share on other sites

Это не совсем так. У меня все на одном слое. А проблемы когда проставляю размеры программно с помощью api. И там все в одном эскизе и на одном слое.

Share this post


Link to post
Share on other sites

Я просто не пойму могут ли размеры как то удалятся сами...

При ошибочных действиях в вашей программе или изменение ориентации модели в виде на чертеже. Возможно вы что-то удаляете не сняв выделение с размера и удаляете лишнее.

И там все в одном эскизе и на одном слое.

В меню Вид->Отобразить/Скрыть примечания и проверить нет ли скрытых размеров.

Share this post


Link to post
Share on other sites

При ошибочных действиях в вашей программе или изменение ориентации модели в виде на чертеже. Возможно вы что-то удаляете не сняв выделение с размера и удаляете лишнее.

лишнего не удаляю

В меню Вид->Отобразить/Скрыть примечания и проверить нет ли скрытых размеров.

и скрытых размеров нет. даже не знаю с чем связано

Share this post


Link to post
Share on other sites

и скрытых размеров нет. даже не знаю с чем связано

Это по всей видимости видеокарта. У меня такое было. Подбор драйверов к ней, не обязательно новых, думаю проблему решит. Во всяком случае,у меня решило, правда было это года 3 назад.

Share this post


Link to post
Share on other sites

lena_

ИМХО это не видеокарта. При глюке видеокарты ничего бесследно не исчезает. Так, на время. Думается что это глюк API. Я пару раз сталкивался с подобными вещами, когда функция правильная и все должно работать, но не работает. Хотя в другом месте работало. Такое ощущение что комп не успевает отрабатывать операции макроса. В таком случае меняю последовательность операций (если возможно) или вставляю перестраивание (ForceRebuild3).

Share this post


Link to post
Share on other sites

При глюке видеокарты ничего бесследно не исчезает. Так, на время. Думается что это глюк API.

То же ИМХО. DisplayDimension или Dimension в API тоже бесследно исчезнуть не могут, если они существуют. Сколько с ними не работал, ничего не исчезало.

Share this post


Link to post
Share on other sites

lena_

ИМХО это не видеокарта. При глюке видеокарты ничего бесследно не исчезает. Так, на время. Думается что это глюк API. Я пару раз сталкивался с подобными вещами, когда функция правильная и все должно работать, но не работает. Хотя в другом месте работало. Такое ощущение что комп не успевает отрабатывать операции макроса. В таком случае меняю последовательность операций (если возможно) или вставляю перестраивание (ForceRebuild3).

Вот как раз при глюке видео и происходит "бесследное исчезновение"! Взять хотя бы НЕ переключение между буферами видеовывода: объект нарисован, но он находится в неактивном буфере!

Если только явно не применялась функция удаления объекта.

Да и что тут спорить: есть готовый файл, сканирующий ВСЕ размеры детали. Запустить его в режиме отладки и посмотреть есть ли там объект или нет...

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

Вот надо сразу после создания объекта(в данном случае размера) записать этот ID ("Persistent Reference IDs") в файл (или посмотреть в Отладке): нет ID - нет объекта!

И наоборот.

Если это так, значит глюк API или скорее самого SW - надо переустанавливать.

Share this post


Link to post
Share on other sites

Буду разбираться, может и правда что-то с видеокартой, а может и с самим SW.

Share this post


Link to post
Share on other sites

Буду разбираться, может и правда что-то с видеокартой, а может и с самим SW.

А как дела на других ПК с аналогичной конфигурацией?

И вообще с видео: avi, mov и др. показывает нормально?

PS. совет: никогда не ставьте самые последние драйвера для видеокарты

Share this post


Link to post
Share on other sites

Вообще с видео нормально. А на других ПК не пробывала даже, тестировала только на своем пока.

Share this post


Link to post
Share on other sites

%20target="_blank">http://fsapr2000.ru/index.php?showtopic=6...ost&p=92322</a>"] НШ_SW [/url][/b] НШ_SW Программа для простановки неуказанной шероховатости

Не пашет: выдаёт Runtime Error 53.

SW2007SP5.0 чертёж октрыт.

Share this post


Link to post
Share on other sites

Не пашет: выдаёт Runtime Error 53.

SW2007SP5.0 чертёж октрыт.

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

НШ-SW.exe

НШ-SW.swp

Или же отказаться от использования макроса и добавить ссылку на исполняемый файл, например, в панель быстрого запуска операционной системы Windows или куда-нибудь в Пуск операционной системы Windows.

Share this post


Link to post
Share on other sites

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

НШ-SW.exe

НШ-SW.swp

Или же отказаться от использования макроса и добавить ссылку на исполняемый файл, например, в панель быстрого запуска операционной системы Windows или куда-нибудь в Пуск операционной системы Windows.

Уже лучше - окошко загрузилось, но перед этим ошибка "чертёж не загружен" (хотя мой чертёж открыт), потом Run-Time Error 91: "Object Variable or With block variable not set" - жму ОК - окошко закрывается.

Share this post


Link to post
Share on other sites

Уже лучше - окошко загрузилось, но перед этим ошибка "чертёж не загружен" (хотя мой чертёж открыт), потом Run-Time Error 91: "Object Variable or With block variable not set" - жму ОК - окошко закрывается.

Вероятно загружено несколько сессий программы Solidworks. Откройте Диспетчер задач Windows (комбинация клавиш Ctrl+Shift+Esc или Ctrl+Alt+Del) и завершите процессы SLDWORKS.exe.

Share this post


Link to post
Share on other sites

Вероятно загружено несколько сессий программы Solidworks. Откройте Диспетчер задач Windows (комбинация клавиш Ctrl+Shift+Esc или Ctrl+Alt+Del) и завершите процессы SLDWORKS.exe.

Возможно.

Щас заработало :clap_1:

Share this post


Link to post
Share on other sites

Помогите пожалуйста перевести с VB на Delphi

Debug.Assert Not swDim Is Nothing

из макроса:

Option Explicit

Sub main()

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swDim As SldWorks.Dimension

Dim vConfigNames As Variant

Dim vValue As Variant

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swDim = swModel.Parameter("D1@Extrude1")

Debug.Assert Not swDim Is Nothing

Debug.Print "File = " & swModel.GetPathName

Debug.Print " FullName = " & swDim.FullName

Debug.Print " Name = " & swDim.Name

vConfigNames = swModel.GetConfigurationNames

vValue = swDim.GetSystemValue3(swThisConfiguration, (vConfigNames))

Debug.Print " SystemValue = " & vValue(0) * 1000#; "" & " mm"

End Sub

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Извиняюсь, просто в вопросе слишком много избыточной информации и главное в обзор взгляда не вошло. По второй ссылке, пример, перевода кода из VB в Delphi.

А разве в Delphi это не будет иметь следующую структуру:

procedure Foo(Count: Cardinal);

	begin

		Assert(Count < SizeOf(Word));

	end;
Если выражение окажется ложным, появится сообщение об ошибке
Источник: <noindex>http://www.xserver.ru/computer/sredaprogr/bd/1/25.shtml</noindex>

Share this post


Link to post
Share on other sites

Извиняюсь, просто в вопросе слишком много избыточной информации и главное в обзор взгляда не вошло. По второй ссылке, пример, перевода кода из VB в Delphi.

Информации может и много, но спрашивала я про Debug.Assert Not swDim Is Nothing, потому что не пойму как тип данных object из vb перевести в delphi. Мне нужно сделать проверку, что такой объект(размер) существует. Может можно как то проще...

Источник: <noindex>http://www.xserver.ru/computer/sredaprogr/bd/1/25.shtml</noindex>

Спасибо за ссылочку, пригодится :)

Share this post


Link to post
Share on other sites

Помогите кто нибудь. Как все таки правильно перевести строчку Debug.Assert Not swDim Is Nothing.

Share this post


Link to post
Share on other sites

Помогите кто нибудь. Как все таки правильно перевести строчку Debug.Assert Not swDim Is Nothing.

Вероятно так:

Assert(TVarData(swDim).VDispatch <> nil);
Источник: <noindex>http://forum.sources.ru/index.php?showtopic=101213</noindex>

или <noindex>http://www.relib.com/forums/Topic873629-8-1.aspx#bm873724</noindex>

Share this post


Link to post
Share on other sites

Помогите кто нибудь. Как все таки правильно перевести строчку Debug.Assert Not swDim Is Nothing.

А зачем ее переводить? Это функции отладки. В рабочем коде просто введите проверку на существование объекта типа Dimension.

Мне нужно сделать проверку, что такой объект(размер) существует. Может можно как то проще...

Ну например VB

If swDim Is Nothing Then

   Exit Sub

End If

C++

if(swDim == NULL)

  retutn;
P.S. С Delphi не знаком...

Share this post


Link to post
Share on other sites

Всем спасибо за ответы. Помогло.

Правильно было

Assert(TVarData(swDim).VDispatch <> nil);

Share this post


Link to post
Share on other sites

Уважаемый Leon. В Вашем макросе RecordDimM на мой взгляд не хватает записи "N углов" (3 угла). Я буду благодарен, если Вы внесёте это дополнение в макрос.

Share this post


Link to post
Share on other sites

Кто нибудь может подсказать как с помощью api по координатам точки получить ее имя?

Share this post


Link to post
Share on other sites

Superbizon_1980

Может быть достаточно написать 3 места? Очень не хочется ничего там доделывать. Надо все вспоминать, у меня таких случаев с углами не встречается. Кроме того там есть ручной режим (простой размер).

Share this post


Link to post
Share on other sites

Кто нибудь может подсказать как с помощью api по координатам точки получить ее имя?

Что Вы понимаете под словом "точка"? Они разные бывают: точка в эскизе, точка в сплайне...

Для начала посмотрите это (справке SW API):

ModelDocExtension::SelectByID2

Share this post


Link to post
Share on other sites

Может быть достаточно написать 3 места?

Обычно так и делается ... "места" - термин покрывающий множество частных случаев

Share this post


Link to post
Share on other sites

Что Вы понимаете под словом "точка"? Они разные бывают: точка в эскизе, точка в сплайне...

Для начала посмотрите это (справке SW API):

ModelDocExtension::SelectByID2

Точка в эскизе. А функцией что вы написали можно выбрать точку, но не получить ее имя.

Share this post


Link to post
Share on other sites

А можно ли сделать макрос, в котором бы конфигурации деталей назывались бы по габаритным размерам, скажем Деталь_2000х1200х400, где 2000, 1200, и 400 соответственно длина ширина и высота детали. Ну как вариант что бы макрос выводил в таблицу габариты всех деталей. Спасибо.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • Anat2015
      Из своего опыта перевода разными компьютерными переводчиками могу сказать, что результат при переводе технической документации получается достаточно плачевный. Все таки технический язык и разговорный - это две разных вещи, значения одних и тех же слов могут кардинально отличаться, особенно, в связке с другими словами. Если описание аппаратной части с грехом пополам понимается, то программирование - это уже абракадабра. Технический перевод - это не перевод в общепринятом понимании, это пересказ с одного технического языка на другой, причем, переводчик должен прекрасно разбираться в теме, т.е. быть спецом в этой области знаний. Почитайте желтые фануковские книжки на русском языке и сименсовские переводы - с первого раза не всегда понимаешь, о чем речь идет, привыкать надо, возможно потому, что переводили иностранцы, в совершенстве знающие русский язык, но не владеющие нюансами советско-российского технического языка.
    • Андрей67
      Установил после удаления. Пока работает.
    • Alex1986
      аналогично. Ни разу подобным не занимался. Не знаю. и вот почему: И это не говоря о том, что Вы сами можете не заметить каких-то накладок из-за Вашей же рисованой 2D геометрии... Видимо, Вы меня не поняли, про этику поведения на форуме, когда люди Вам помогают, или пытаются помочь.
    • fantom.ul
      Это относится к респондентам на нашем сайте?  И я отнюдь не про вес...  
    • fantom.ul
        Как вариант, на комп Файн Ридер + Промт. Переводил я так на древний испанский эрозионник.   А где там хамство? Вам человек дело говорил. Как понимаю, мануалы в формате дежавю? Да пусть даже джипег. Переводчик на телефоне вполне справляется. А уж файн ридер - тем более. А вот вы, не владея информацией и софтом - хамите...
    • fantom.ul
      Немножко не понятно. То есть на производстве нет оборудования, способного изготовить деталь по вашему чертежу? Но вы встали в позу стороннего беспристрастного наблюдателя и говорите, что меня это не волнует? И как же в итоге детали изготавливаются?
    • David123
      @chatjokey ! Во первых, парень не хами. А во вторых, коль не разобрался в моём замечании это говорит о твоей квалификации кнопкодава.   
    • vladugan102
      Здравствуйте. Нужно вырезать центральную (синюю) деталь по контуру эскиза рельсы, чтобы в сборке контакт между деталями был без зазоров и интерференции. Когда вставляю эскиз рельсы в центральную деталь, то он почему то неопределенный и без проставленных размеров. Подскажите, как правильно это сделать
    • Kelny
      Оно может и проще, но от дальнейших косяках может не уберечь, т.к. кто-нибудь посмотрит модельку и решит что там всё нормально и что-то изменит, а потом при сборке окажется, что смотревший не обратил внимание на ваш быстрый эскиз в чертеже который подразумевает некую занятость места.   При обилии сегментов эскиза (не всегда большого количества в купе со взаимосвязями) в чертеже программа бывает становится нерасторопна, а при таком же  количестве кромок модели вполне себе комфортно работает. И всё ж таки справедливости ради программа действительно позиционируется как 3Д проектирование, а не 2Д рисовалка, хотя и может в какой-то степени быть 2Д рисовалкой за большие деньги, если речь о честном приобретении. Для 2Д рисования есть более легковесные программы, да и более дешёвые или вовсе бесплатные.      
    • chatjokey
      а в телефон поставить гугл переводчик религия не позволяет?  или другой, который по фото переводит?