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

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


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

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

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

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

    • SpecEditor - для создания спецификаций и ВП
      517
    • MProp - для заполнения свойств моделей
      496
    • DProp - для управления листами чертежа
      344
    • SProp - для заполнения свойств моделей из разделов Стандартные изделия, Прочие изделия и Материалы
      326
    • SaveDRW - для "правильного" сохранения чертежа
      143
    • SaveAsPDF - для сохранения чертежа в формате PDF
      219
    • Master - для создания шаблонов основных надписей
      299
  3. 3. Были ли у Вас проблемы с освоением (изучением) макросов?

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

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

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


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

  • 7 лет спустя...


UnPinned posts

Я себе вообще логотип поставил в шаблоны.

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

И как привязать логотип чтобы он не слетал при изменении формата?

Есть файлик ...\SWPlus\Master\Master_Template_Sheet1.SLDDRW

Я туда засунул блок (нарисовал логотип в SW) в режиме редактирования осн. надписи. Картинку не пробовал ставить.

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

Доброго времени суток. Подскажите, возможно ли как то отсортировать спецификацию вручную? То есть интересует следующий вопрос: необходимо переместить шпильку перед контргайкой (или после ее), в общем как переместить объекты в стандартных изделиях.

Спасибо.

post-29842-1359100450_thumb.jpg

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

ГОСТ не читаем?

Правильно сортировать не умеем!!!

Всё-таки вопрос не по ЕСКД был задан. Хотелось бы прочитать ответ. Еще добавлю дополнение к вопросу: что делать, если надо строку (строки) перенести на другой лист?

PS На некоторых предприятиях принято сначала размещать в спецификации весь крепеж, а потом все остальное. Так же встречаются традиции вначале размещать оригинальные в данной сборке детали, а потом - заимствованные. И пофиг тогда сортировка в соответствии с ЕСКД.

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

To GriSt

Читаем и умеем.

Было бы не плохо что бы Вы отвечали на вопрос, если знаете, а не писали бессмысленные высказывания... Не нужно рассматривать вопрос буквально. Я же не спрашивал как должна сортироваться спецификация, а спросил возможна ли ручная сортировка с сохранением связи со сборкой...?

To bnickl

Поддерживаю.

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

SolidWorks 2012 sp5, макросы последние из темы.

Макрос SaveAsPDF при сохранении добавляет дату. Но в ней пропадают первые нули. Т.е. вместо 01.01.12 дата будет выглядеть как 1.1.12.

Это можно как-то исправить?

Формат в вин7 стоит такой как надо.

В форматке есть в месте даты невидимая заметка, в которую дата и вписывается. Так вот как макрос ее распознает? Наверно по id элемента.

А как этот самый id узнать?

Возможно ли без правки кода, как-то сделать, чтобы также заполнялась дата проверяющего?

Из справки "При сохранении измененного чертежа старый вариант копируется в папку Revisions (имя настраивается)."

Как это в настройках включить? Не понятно.

Так же не ясно, как заполнить № докум. изменения через макросы. Может кто подскажет?

Спасибо.

П.С.

Также из справки

"SaveAsPDF_main - основной режим работы. При сохранении чертежа в основной надписи обновляется дата.

SaveAsPDF _main_wd - режим аналогичен первому с одним исключением - дата не обновляются."

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

Так и задумано?

post-3926-1359103716.png

post-3926-1359103721.png

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

Тогда объясните смысл приведенной картинки и данного действия для стандартных изделий!!!

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

Читайте что написал bnickl.

Вопрос остается прежним.

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

... а для стандартных изделий - кому какая разница, где записана Шпилька???

Обычно нормоконтролерам :wallbash:

что делать, если надо строку (строки) перенести на другой лист?

Тут несколько вариантов:

-Раставляете позиции на чертеже.

-Нажимаете левой кнопкой мыши на позицию и справа в окне (FutureManager) в блоке "Настройка позиции" нажмите нижний выпадающий список.

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

Для лучшего понимания см. картинку ниже:

Скрытый текст: Перенос строк на другой лист
post-32272-1359120789_thumb.jpg
Также можно:

-Нажать правой кнопкой на спецификации, выбрать пункт "Слить таблицы". Если листов несколько и надо слить их все, то команду "Слить таблицы" надо повторить несколько раз.

-Перетаскиваем строки как нужно.

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

-Теперь мы имеем две таблицы, берем ту, которая должна быть на следующем листе и перетаскиваем на ярлычок нужного листа, тоесть вот сюдаpost-32272-1359121203.jpg

-Имеем два корявых листа спецификации, запускаем макрос SpecEditor и выбираем команду "Форматировать". После этого таблицы выравнюются. При необходимости применяем команду "Расставить позиции".

Если нужно поменять строки в пределах листа:

-Подводим мышь к левому краю спецификации.

-Появляется слева листа дополнительный столбик с номером строк (столбик синего цвета).

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

-Нажимаем левую кнопку мыши и, держа ее, перетягиваем строку.

-Запускаем макрос SpecEditor и выполняем команду "Расставить позиции".

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

Обычно нормоконтролерам :wallbash:

Тут несколько вариантов:

-Раставляете позиции на чертеже.

-Нажимаете левой кнопкой мыши на позицию и справа в окне (FutureManager) в блоке "Настройка позиции" нажмите нижний выпадающий список.

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

Для лучшего понимания см. картинку ниже:

Скрытый текст: Перенос строк на другой лист
post-32272-1359120789_thumb.jpg
Также можно:

-Нажать правой кнопкой на спецификации, выбрать пункт "Слить таблицы". Если листов несколько и надо слить их все, то команду "Слить таблицы" надо повторить несколько раз.

-Перетаскиваем строки как нужно.

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

-Теперь мы имеем две таблицы, берем ту, которая должна быть на следующем листе и перетаскиваем на ярлычок нужного листа, тоесть вот сюдаpost-32272-1359121203.jpg

-Имеем два корявых листа спецификации, запускаем макрос SpecEditor и выбираем команду "Форматировать". После этого таблицы выравнюются. При необходимости применяем команду "Расставить позиции".

Если нужно поменять строки в пределах листа:

-Подводим мышь к левому краю спецификации.

-Появляется слева листа дополнительный столбик с номером строк (столбик синего цвета).

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

-Нажимаем левую кнопку мыши и, держа ее, перетягиваем строку.

-Запускаем макрос SpecEditor и выполняем команду "Расставить позиции".

Спасибо. Теперь на одну проблему связанную с нормоконтролем стало меньше)))

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

Макросы от _Leon_ работают в 2013 версии солида? в 2012 работают... только оценил возможности этих макросов! крутая вещь) у меня в 2013 от макросов работает только ТТ, остальные не запускаются. если долго и упорно нажимать на них выскакивает окошко. может кто сталкивался с этим и решил проблему?

post-22745-1359178074_thumb.jpg

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

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

Вероятно заменить (x32): Declare Function ...

на (x64):

Declare PtrSafe Function ...

В вашей функции больше ни чего менять не надо, а в некоторых других функциях надо также подменять As Long на As LongPtr, но не везде:

Which Longs should become LongPtr?

It's actually pretty easy to determine what requires LongPtr and what can stay as Long. The only things that require LongPtr are function arguments or return values that represent addresses in memory. This is because a 64-bit OS has a memory space that is too large to hold in a Long data type variable. Arguments or return values that represent data will still be declared Long even in 64-bit.

The SendMessage API is a good example because it uses both types:

32-bit:

Public Declare Function SendMessageA Lib "user32" (ByVal hWnd As Long, ByVal wMsg As Long, _

ByVal wParam As Long, lParam As Any) As Long

64 bit:

Public Declare PtrSafe Function SendMessageA Lib "user32" (ByVal hWnd As LongPtr, ByVal wMsg As Long, _

ByVal wParam As Long, lParam As Any) As LongPtr

The first argument -hWnd- is a window handle, which is an address in memory. The return value is a pointer to a function, which is also an address in memory. Both of these must be declared LongPtr in 64-bit VBA. The arguments wMsg and wParam are used to pass data, so they can be Long in both 32-bit and 64-bit.

How to determine what is a memory address and what is data? You just have to read the MSDN documentation for the API functions (the C++ version) and it will tell you. Anything called a handle, pointer, brush or any other object type will require a LongPtr in 64-bit. Anything that is strictly data can stay as Long.

Источник: <noindex>http://www.jkp-ads.com/articles/apideclarations.asp</noindex>

Если хочется макрос универсальный сделать для x32 и x64, то надо ещё и проверку на то в какой системе запущен макрос, навроде этого:

Public Function Is64bit() As Boolean

	Dim handle As Long, bolFunc As Boolean



	' Assume initially that this is not a Wow64 process

	bolFunc = False



	' Now check to see if IsWow64Process function exists

	handle = GetProcAddress(GetModuleHandle("kernel32"), _

				 "IsWow64Process")



	If handle > 0 Then ' IsWow64Process function exists

		' Now use the function to determine if

		' we are running under Wow64

		IsWow64Process GetCurrentProcess(), bolFunc

	End If



	Is64bit = bolFunc



End Function
или тут ещё вариант есть: <noindex>http://www.sql.ru/forum/actualthread.aspx?tid=668385</noindex>
Ссылка на сообщение
Поделиться на других сайтах

un_wn, большое спасибо!

Ещё хочу добавить (проверил): Если в SpecEditor нажать кнопку "Создать", то все сделанные раньше манипуляции пропадут. Т.е. SpecEditor расставит узлы, детали, стандартные, прочие и т.д. так, как ему приказал _Leon_ или мы где-то сделали неосознанно какие-то признаки для сортировки, и надо будет снова перерасставить. Но это небольшой труд.

Спасибо, _Leon_!

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

Kelny спасибо! ты настоящий друг! :) почти разобрался... не подскажешь как с этим быть? Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

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

не подскажешь как с этим быть?

А что изменилось по сравнению с первым вопросом? Всё так же:
#If Win64 Then

  Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As LongPtr)

#Else

  Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

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

А что изменилось по сравнению с первым вопросом? Всё так же:

#If Win64 Then

  Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As LongPtr)

#Else

  Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

#End If
Бесполезно...
Скрытый текст: тут ошибка
Option Explicit

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swDraw As SldWorks.DrawingDoc

Dim swDraw1 As SldWorks.DrawingDoc

Dim swModExt As SldWorks.ModelDocExtension

Dim swSheet As SldWorks.Sheet

Dim swView As SldWorks.View

Dim swSelMgr As SldWorks.SelectionMgr

Dim swNote As SldWorks.Note

Dim swAnn As SldWorks.Annotation

Dim swTextFormat As SldWorks.TextFormat

Dim swModelDocExt As SldWorks.ModelDocExtension

Dim swExpPDFData As SldWorks.ExportPdfData

Dim ps As SldWorks.PageSetup

Dim fs As Object

Dim fs1 As Object

Dim fs2 As Object

' PDFCreator

Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As LongPtr)

Private WithEvents PDFCreator1 As PDFCreator.clsPDFCreator

Private ReadyState As Boolean, DefaultPrinter As String

' ----------

Dim sPathName As String

Ругается на sub/ Или я не правильно делаю
Ссылка на сообщение
Поделиться на других сайтах

Ругается на sub/ Или я не правильно делаю

Вероятно ни чего не делаете, почувствуйте разницу.

У вас:

Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As LongPtr)

Предложенный вариант:

Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As LongPtr)

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

спасибо! точно я криворукий) разобрался. Там еще в настройках preference надо галочку поставить на PDFcreator. Только он сохраняет в формате тиф каждый лист отдельным файлом! Если я еще не надоел можно еще вопрос?)))) При нажатии SaveDRW ничего не происходит. захожу редактировать макрос там ошибок нет (точнее не выделяется ничего красным). Если не трудно может подскажешь где что поменять?

а обязательно надо чтобы автокад был установлен?

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

[spoiler="saveDRW_run(Code)"]

Спойлер на этом форуме не позволяет таких вольностей только одно слово в квадратных скобках spoiler - открыть и /spoiler - закрыть

При нажатии SaveDRW ничего не происходит. захожу редактировать макрос там ошибок нет (точнее не выделяется ничего красным). Если не трудно может подскажешь где что поменять?

Судя по названию макроса он сохраняет чертёж, возможно даже ни чего спрашивать не должен. А что-то должно происходить? Или документ не сохраняется после выполнения макроса? Что в нём не так и что должно быть так не знаю.

а обязательно надо чтобы автокад был установлен?

Если программа имеет свои механизмы сохранения в формат, то установки дополнительных программ для экспорта обычно не требуется.
Ссылка на сообщение
Поделиться на других сайтах

Спойлер на этом форуме не позволяет таких вольностей только одно слово в квадратных скобках spoiler - открыть и /spoiler - закрыть

Судя по названию макроса он сохраняет чертёж, возможно даже ни чего спрашивать не должен. А что-то должно происходить? Или документ не сохраняется после выполнения макроса? Что в нём не так и что должно быть так не знаю.

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

спасибо тебе человеческое большое спасибо! выручил! :smile:

Есть еще вопросы может кто поможет? Как можно сделать так, чтобы высота строк всегда был 8мм. Как я понимаю, она автоматически меняется из-за того что шрифт не влезает(если шрифт не поменять размер строки меньше не становится). Или как шрифт поменять в макросе спецификации?

post-22745-1359540569_thumb.png

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

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

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

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

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

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

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

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

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

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

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




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