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

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


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

До действия макроса

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

После действия

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

А должно быть

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

:sad:

Использую SW2007

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


А вот переменные для этого типа размеров это вобще тёмный лес и даже искорки не видно.

Зато если научится ими пользоваться будем иметь параметрическую связь с моделью. А не то что сейчас.

Keyno Понятнее не стало.

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

Keyno

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

Хотя все равно глюк, постараюсь исправить.

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

А где меняется разделитель, чё-то сразу не нашёл... По умолчанию стоит точка :sad:

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

А где меняется разделитель, чё-то сразу не нашёл... По умолчанию стоит точка :sad:

В региональных настройках виндов

Тем, кто не задолбался качать новые версии макроса посвящается:

RecordDimM_4.4.rar

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

_Leon_ ты п росто гений, спасибо огромное!!! При изменении в виндовых настройках разделителя в SW2007 SP4 он не меняется. Но после исправления это вроде как и не актуально.

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

Всем привет. Есть вопрос по поводу VBA. Задача следующая-нужно написать прогу или откорректировать макрос,который бы из определенной папки,которую можно задавать, вставлял простые детали в чертеж с определенной ориентацией.. Я записал макрос на 3 детали,пытался что-то изменить,но не получилось,так как в VBA-я полный профан. Вот кстати и сам макрос-

Dim swApp As Object

Dim Part As Object

Dim SelMgr As Object

Dim boolstatus As Boolean

Dim longstatus As Long, longwarnings As Long

Dim Feature As Object

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc

Set SelMgr = Part.SelectionManager

Dim DrawView As Object

Set DrawView = Part.CreateDrawViewFromModelView2("D:\Рабочие документы\Проекты\П2800\Пс3.SLDPRT", "*Снизу", 0.04, 0.25, 0)

boolstatus = Part.Extension.SelectByID2("Чертежный вид38", "DRAWINGVIEW", 0, 0, 0, False, 0, Nothing, 0)

boolstatus = Part.ActivateView("Чертежный вид38")

Set DrawView = Part.CreateDrawViewFromModelView2("D:\Рабочие документы\Проекты\П2800\Пс4.SLDPRT", "*Снизу", 0.07, 0.25, 0)

boolstatus = Part.Extension.SelectByID2("Чертежный вид39", "DRAWINGVIEW", 0, 0, 0, False, 0, Nothing, 0)

boolstatus = Part.ActivateView("Чертежный вид39")

Set DrawView = Part.CreateDrawViewFromModelView2("D:\Рабочие документы\Проекты\П2800\Пс5.SLDPRT", "*Снизу", 0.1, 0.25, 0)

boolstatus = Part.Extension.SelectByID2("Чертежный вид40", "DRAWINGVIEW", 0, 0, 0, False, 0, Nothing, 0)

boolstatus = Part.ActivateView("Чертежный вид40")

Set DrawView = Part.CreateDrawViewFromModelView2("D:\Рабочие документы\Проекты\П2800\Пс6.SLDPRT", "*Снизу", 0.14, 0.25, 0)

boolstatus = Part.Extension.SelectByID2("Чертежный вид41", "DRAWINGVIEW", 0, 0, 0, False, 0, Nothing, 0)

boolstatus = Part.Activa

teView("Чертежный вид41")

End Sub

Буду рад любой помощи.

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

Буду рад любой помощи.

<noindex>http://support.solidworks.ru/forum/index.p...amp;#entry11667</noindex>
Ссылка на сообщение
Поделиться на других сайтах

Leon, нашел в RecordDimM 4.4 замечательный глюк.

1. Не выделяем размеры.

2. Запускаем макрос - пишет "Выберите один размер".

3. Закрываем макрос НАЖАВ НА КРЕСТИК.

4. Выделяем размер и запускаем макрос.

5. Макрос не запускается.

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

Leon, нашел в RecordDimM 4.4 замечательный глюк.

Оказывается он был и в 4.3 Приходится перегружать Солид

Leon сейчас окно макроса фиксировано в углу

При экране 24" это вызывает дискомфорт. Отцепить теперь уже никак?

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

При изменении в виндовых настройках разделителя в SW2007 SP4 он не меняется.

Есть еще про разделитель в Инструменты, Параметры, Настройки пользователя, Общие, Использовать системный разделитель для размеров. У меня там стоит птичка.

Leon, нашел в RecordDimM 4.4 замечательный глюк.

Да, крестик обрабатывается не корректно. Лучше им не пользоваться, а нажимать Отмена. Но я посмотрю что можно сделать.

Leon сейчас окно макроса фиксировано в углу

При экране 24" это вызывает дискомфорт. Отцепить теперь уже никак?

Как вы из начальства такие мониторы вынимаете? Я еще с 19'' телевизором сижу. И с Радеоном 9600.

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

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

"Фиксировано" - я неверно выразился. Имелся ввиду запуск в левый верхний угол

Может ошибаюсь но вроде старые версии открывали окно в центре (придется привыкать)

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

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

Да, крестик обрабатывается не корректно. Лучше им не пользоваться, а нажимать Отмена. Но я посмотрю что можно сделать.

Поскольку работа программы, это запуск класса, то выгрузка формы не приводит к остановки программы. Если необходимо остановить программу, в текст кода формы нужно дописать:
Private Sub UserForm_Terminate()

Unload Me

End

End Sub
Если выгрузка программы всё же не требуется то, там же в UserForm_Terminate, переменной "m" задать значение отличное от единицы. Хотя это не логично ОТМЕНА выгружать, а крестиком оставлять, на мой взгляд более логичное название этой кнопки, ЗАКРЫТЬ или ВЫХОД, а если это всё же ОТМЕНА то будет логичнее перезачитать параметры размера. Так же привычным названием кнопки сохраниения действий считаю: ПРИМЕНИТЬ (Apply).

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

В данном случае, можно просто создать несколько строк параметров для необходимых изменений и выделить эти строками комментами, возможно написать в комментах подробные инструкции по изменению, всё таки текст программы может прочитать каждым! Файлы настроек и/или реестр, это на мой вгляд необходимо для программ с закрытым кодом.

Может ошибаюсь но вроде старые версии открывали окно в центре (придется привыкать)

Чтобы окно открывалось в центре экрана можно найти в коде класса: "Private Sub ShowFrm()" и добавить строку: "FrmRecordDimM.StartUpPosition = 2", получится следующее:
Private Sub ShowFrm() ' Отображение формы

Debug.Print "Отображение формы"

FrmRecordDimM.StartUpPosition = 2

If m1 = 1 Then

	FrmRecordDimM.Left = FormLeft

	FrmRecordDimM.Top = FormTop

End If

If m = 1 Then

	FrmRecordDimM.UserForm_Activate

Else

	FrmRecordDimM.Show

End If

m = 1

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

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

Код

Private Sub UserForm_Terminate()

Unload Me

End

End Sub

Спасибо, Kelny, за советы ))). Все так и есть. На самом деле в тексте макроса уже есть этот код, но он не активен. Желающие могут найти его и убрать ' в начале строк. Я добавил его, но потом почему-то выключил когда боролся с каким-то глюком.

Про названия кнопок подумаю.

В данном случае, можно просто создать несколько строк параметров для необходимых изменений и выделить эти строками комментами, возможно написать в комментах подробные инструкции по изменению, всё таки текст программы может прочитать каждым! Файлы настроек и/или реестр, это на мой вгляд необходимо для программ с закрытым кодом.

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

Чтобы окно открывалось в центре экрана можно найти в коде класса: "Private Sub ShowFrm()" и добавить строку: "FrmRecordDimM.StartUpPosition = 2", получится следующее:

Либо изменить свойство StartUpPosition в свойствах формы.
Ссылка на сообщение
Поделиться на других сайтах

Может кто-нибудь подскажет, возможно ли создавая спецификацию в файле Exel и затем сохраняя ее, связать ее с исходной сборкой и при каждом изменении деталей автоматом и менялась спецификация?

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

Попробовать то можно, но к сожалению в нём не всё настраивается: C:\Program Files\SolidWorks\lang\russian\calloutformat.txt (есть ещё calloutformat_2.txt, вроде не используется).

А вот с количеством проблемы, количество ставится в формате: #X, например 2X (вроде можно выбрать, большим или маленьким будет Х, в настройках документа). А вот переменные для этого типа размеров это вобще тёмный лес и даже искорки не видно.

Хочу доложить широкой общественности о своих изысканиях в области простановки размеров через "Условное обозначение отверстия". Вот два примера:

post-2822-1188407238_thumb.pngpost-2822-1188407255_thumb.png

Оба размера полностью параметрические, в том числе и количество (5 отв.). Стрелки можно убрать и вывернуть внутрь, тогда будет почти полное соотвествие ГОСТ 2.318.

ИМХО Мастер Kelny немного преувеличил, говоря про темный лес и про отсутствие искорки. Структура файла calloutformat.txt достаточно понятна, а в конце его описаны все используемые в нем переменные. Размер на рисунке слева получен мной после замены в файле текста

TAP-BLIND(ctcsns)=<MOD-DIAM> <hw-tapdrldia> <HOLE-DEPTH> <hw-tapdrldepth>;\

<hw-threaddesc> - 6H <HOLE-DEPTH> <hw-threaddepth>;\

<HOLE-SINK><MOD-DIAM> <hw-nscsdia> X <hw-nscsang>, <hw-msgnearside>

на текст

TAP-BLIND(ctcsns)=M<hw-threaddia>-6Hx<hw-threaddepth>-<hw-tapdrldepth>/<MOD-DIAM><hw-nscsdia>x<hw-nscsang>

Так что, если потратить время и настроить записи для всех видов размеров, перечисленных в файле, то будем иметь обозначения размера по ГОСТ изменяющееся при изменениях в модели. Но только если отверстие одно! Если отверстий несколько, то автоматом перед обозначением выскакивает количество отверстий в совершенно не гостовском виде #x. Здесь "x" это просто буква, ее можно стереть, а количество задается переменной <NUM_INST>. Ее можно перенести куда угодно в тексте. Вообще текст с переменными позволяет себя редактировать как угодно, их можно переставлять местами, добавлять новые, дописывать свой текст. Дальше при изменениях модели его структура не меняется. Но как избавится от автоматического #x пока не понятно.

Чтобы добится двустрочного отображения размера (как на правом рисунке) нужно использовать <stack>, открытый Великим tigb. Однако использование <stack> в данном типе размера не столь безоблачно как в обычном размере. Пришлось повозиться, пока удалось подобрать нужное заклинание. Вообще использование <stack> в тексте размера, вернее то, что он там работает, скорее баг а не фича. В любой новой версии или даже сервиспаке это может перестать работать или будет работать по другому.

Итак, какие выводы:

1. Получить с помощью "Условного обозначения отверстия" оформленный по ГОСТ параметрический размер можно.

2. Простановка таких размеров не очень удобна, поскольку прихлодится редактировать текст размера в случае нескольких отверстий и для получения двустрочной записи.

В 2005 версии для таких размеров нет часто используемых. Изменилась ли ситуация в следующих версиях не знаю, посмотрите. Если часто используемые появились, то можно воспользоваться ими. Тогда все просто.

Либо, второй путь, писать макрос, наподобие RecordDim.

В любом случае с "Условным обозначением отверстия" не так уж все запущено. Интересно, SWR, предлагает своим пользователям переделанный по ГОСТ файл calloutformat.txt?

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

ИМХО Мастер Kelny немного преувеличил, говоря про темный лес и про отсутствие искорки.

Я не совсем корректно выразился, может я и ошибаюсь, но имелл ввиду, что нет возможности сопоставить эти переменные реальным цифрам получаемым из них (в плане использования в API):

Как работать с CalloutHole и как получить полный текст в исходном виде с переменными так и не понял.

Есть файлик с переменными использующимися в CalloutHole (Excel2002):...

Источник: <noindex>http://fsapr2000.ru/index.php?s=&show...st&p=155173</noindex>

А по поводу calloutformat.txt я знаю, что там всё понятно, даже файлик с расшифровкой переменных приводил (как раз по ссылке). И вроде говорил, что мне проще так поправить, чем лазить в этот файлик...

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

даже файлик с расшифровкой переменных приводил

Да, извини, Kelny, я тот твой пост пропустил. Я с API для CalloutHole еще не разбирался. Но в принципе если есть возможность с помощью API менять текст размера, то больше ничего и не нужно.
Ссылка на сообщение
Поделиться на других сайтах

Копирую в поле найти в теме:

31 SaveAsPDF

и получаю следующие:

Одно или все введенные вами ключевые слова для поиска имеет менее 3 символов, или же вы ввели в качестве ключевого слова недопустимые к поиску слова, такие как 'html', 'img' и т.д. Вернитесь назад и увеличьте количество символов в ключевом слове, либо измените его.

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

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

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

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

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

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

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

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

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

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

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

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




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