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

Спецификация для SW по ГОСТ


Ваш опыт использования пакета макросов SWPlus  

630 пользователей проголосовало

  1. 1. Вы используете макросы из пакета SWPlus?

    • Да, постоянно на основной работе.
      460
    • Да, но не на основной работе.
      91
    • Нет
      81
  2. 2. Каие макросы из пакета Вы используете?

    • SpecEditor - для создания спецификаций и ВП
      519
    • MProp - для заполнения свойств моделей
      498
    • DProp - для управления листами чертежа
      346
    • SProp - для заполнения свойств моделей из разделов Стандартные изделия, Прочие изделия и Материалы
      328
    • SaveDRW - для "правильного" сохранения чертежа
      144
    • SaveAsPDF - для сохранения чертежа в формате PDF
      220
    • Master - для создания шаблонов основных надписей
      301
  3. 3. Были ли у Вас проблемы с освоением (изучением) макросов?

    • Нет, мне все интуитивно понятно
      164
    • Да, но я разобрался с помощью форума и описания
      313
    • Да, я до сих пор не могу разобраться как с этим работать
      100
    • Я не стал разбираться, глянул и стер все нафиг
      7
    • Я не пользовался этими макросами
      48
  4. 4. Были ли у Вас проблемы (глюки) с установкой и настройкой макросов?

    • Нет, все установилось нормально
      143
    • Да, но они решились
      282
    • Да, и я до сих пор не могу заставить макросы работать, но хочу это сделать
      154
    • Да, поэтому я и не стал с ними связываться
      7
    • Я не пользовался этими макросами
      46
  5. 5. Устраивает ли Вас подход к автоматизации оформления КД, заложенный в данных макросах?

    • Да
      284
    • Да, хотя кое-что я бы изменил
      261
    • Нет
      23
    • Не знаю
      64


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

  • 3 года спустя...


UnPinned posts

Открыл проект из 1050 деталей и солид вылетает при работе макроса. Вставляет таблицу задумывается и солид выгружается.

Может какие-то ограничения есть.

Макрос выгружается или солид?

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

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

Выгружается солид

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

Leon

Строчку выкинул.

Сборка в 296 деталей зачиталась. Все сработало. Но туго, чего-то задумывался, но пошел.

Сборка из 1050 деталей, таблица ручками вставляется.

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

объяснений. Может много конфигураций(крепеж) , 34 сборки трубопроводов, 30 сборочных ну и детали.

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

Crab

Тогда не знаю... Больше ограничений я не вижу

Попробуйте в том месте где была удаленная строчка "end" вместо

If n = 999 Then



End If

вставить

If n = 200 Then

		swDraw.ForceRebuild3 (True)

		n = 0

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

Leon

Сделал изменения. Не помогло.

На работе сделанной в версии 2009 из 256 деталей работает.

А сборка из 1050 деталей созданная в 2007 и преобразованная в 2009 , работать отказывается

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

Сборка решена и не в режиме "большой сборки" , таблица вручную вставляется.

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

листов спецификации и все.

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

Crab

К сожалению не знаю как вам помочь. Поскольку вылетает сам солид, то очень трудно понять, в чем здесь проблема. У меня нет таких больших сборок и мне не проверить. Могу только посоветовать попробовать на других больших сборках и на разных машинах.

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

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

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

Так же бы рекомендовал бы, где по вашему возникает "вылет" поставить "точки остановки" выполнения макроса и отследить точное место сбоя. Выяснив на чём именно "валится" Solidworks, попробовать закомментировать эту строку и проверить работоспособность.

А там уж искать альтернативы "плохой" функции API-интерфейса.

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

Leon

Сделал изменения. Не помогло.

На работе сделанной в версии 2009 из 256 деталей" работает....

А сборка из 1050 деталей созданная в 2007 и преобразованная в 2009 , работать отказывается

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

Сборка решена и не в режиме "большой сборки" , таблица вручную вставляется.

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

листов спецификации и все.

1) На работе сделанной в версии 2009 из 1050 деталей работает?

Если да, мне кажется проблема в конвертации из 2007 в 2009-й SW;

Это если в режиме отладки ошибка не отслеживается и SW сразу вылетает;

Но по идее должен создаваться что-то типа LОG-файл или обычно выскакиавает окошко с ообщением об ошибке;

2) Можно еще посмотреть в "Просмотре событий" - есть ли там что...;

3) Еще запусить макрос в режиме отладки, еслм там ошибка, то отладчик на ней и остановится;

4) Думаю, что сортировка 1050 элементов не может быть причиной ошибки! Маловато.

Хотя надо посмотреть сам механизм реализации сортировки - нет ли там рекурсивного вызова какой-либо функции!. При недостатке памяти это может послужить причиной. Да и при большом объеме памяти тоже - там же затраты ресурсов возрастают в экспоненциальной зависимости от кол-ва элементов;

Блин, пока пишу мысли так и возникают:

5) Еще бы сравнил эти сборки на предмет количества уникальных и НЕ уникальных деталей.

6) И в чем, собственно, заключается сортировка?

7) Можно даже "вытащить" список файлов или данных, входящих в эти сборки, передать их в Excel и там отсортировать в разных режимах.

8) Переделать этот макрос в EXE или DLL-файл, а лучше И в EXE И в DLL и сравнить/испытать.

Не, ну так я до утра буду писать, пока все, хватит...

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

Kelny

ssv22

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

Если бы кто-нибудь мог потестить и что-нибудь предложить, буду признателен. Сортировка в макросе это просто набор условий.

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

Kelny

ssv22

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

Если бы кто-нибудь мог потестить и что-нибудь предложить, буду признателен. Сортировка в макросе это просто набор условий.

Да уж, со временем сейчас напряг и у меня тоже :-(
Ссылка на сообщение
Поделиться на других сайтах

Попробовал воспользоваться вашей разработкой.

Версия 1.3 при клике на кнопочку макроса выдает вот такое

<noindex>Изображение</noindex>

Версия 1.0 выдает табличку с выбором типа чертежа. После нажатия там ОК, открывается вот такое

<noindex>Изображение</noindex>

SW2008 office premium SP0. WinXP prof x64 SP2.

Что не так?

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

Gnork

После возникновения ошибки зайдите в редактирование макроса (Debug) и проверьте библиотеки Tools-References.

Достаточно этого:

Visual Basic for Applications

SoidWorks Extensibility Type Library

OLE Automation

Microsoft Forms 2.0 Object Library

SolidWorks 2008 Constant type library

SldWorks Type Library

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

Leon

В режиме редактирования и пошаговое выполнение: первые 4 строчки строчки окрашены в желтый цвет и на

последней желтой выскакивает ошибка 91 .

Private Sub UserForm_Activate()

MSort = 0

If mRunPref = 0 Then

	sSource = swApp.GetCurrentMacroPathName			 ' Get macro path+filename

	sSource1 = Left$(sSource, Len(sSource) - 4) & "_sp.sldbomtbt"	' Шаблон таблицы

	sSource2 = Left$(sSource, Len(sSource) - 14) & "SP-1.slddrt"	' Шаблон 1-го листа

	sSource3 = Left$(sSource, Len(sSource) - 14) & "SP-2.slddrt"	' Шаблон 2-го листа

	sSource4 = Left$(sSource, Len(sSource) - 3) & "ini"	' ini-файл

	sSource5 = Left$(sSource, Len(sSource) - 4) & "_Doc.txt"	' Документация
Изменено пользователем Crab
Ссылка на сообщение
Поделиться на других сайтах

Gnork

После возникновения ошибки зайдите в редактирование макроса (Debug) и проверьте библиотеки Tools-References.

Достаточно этого:

Visual Basic for Applications

SoidWorks Extensibility Type Library

OLE Automation

Microsoft Forms 2.0 Object Library

SolidWorks 2008 Constant type library

SldWorks Type Library

Как раз эти 6 штук там с галочками и есть.

post-22565-1242629224_thumb.jpg

post-22565-1242629395_thumb.jpg

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

Leon

на 266 макрос работает

Компоненты 266

Детали: 248

уникальные документы детали 72

уникальные детали 60

Узлы сборки: 18

уникальные узлы сборки 8

уникальные документы узлов сборки 8

Количество тел 296

Компоненты 1045

Детали: 993

уникальные документы детали 269

уникальные детали 210

Узлы сборки: 52

уникальные узлы сборки 43

уникальные документы узлов сборки 43

Количество тел 1315

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

Crab

В режиме редактирования и пошаговое выполнение: первые 4 строчки строчки окрашены в желтый цвет и на

последней желтой выскакивает ошибка 91 .

Если вы хотите запустить макрос в режиме редактирования то надо начинать с кода модуля SpecEditor_run.

Gnork

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

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

Leon

SpecEditor_run все вроде нормально . не останавливается ,в результате появляется окно макроса.

А затем перехожу в код модуля FrmSpecEditop и выскакивает ошибка указ. выше.

Может не так что-то делаю.

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

Может не так что-то делаю.

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

1. Tools-Macros... появится окно с заголовком Macros

2. Выберите макрос в выпадающем списке Macros In, если открыто несколько макросов

3. Выберите Macro Name main

4. Нажмите в форме кнопку Run

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

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

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

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

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

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

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

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

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

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

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



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