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

Сделай свою работу в 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 пользователей

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




  • Сообщения

    • Александр1979
      Попробуйте параметр 9927 бит 4 установить 1
    • gudstartup
      Здравствуйте! Может кто подсказать тип интерфейса этих датчиков ? Например для линеек хеденхайн  с цифровым интерфейсом это Fanuc 02 Fanuc 05. знаю  только что там последовательный интерфейс но совместим ли он с интерфейсом линеек или нет?
    • maxx2000
      @vanek77777 Человек задал вопрос как ограничить углы, я ответил что ничего ограничивать не надо, надо правильно построить стратегию обработки и озвучил как это должно выглядеть по моему мнению. Как всегда мои слова носят рекомендательный характер, не претендуют на истину в виду отсутствия возможности в функционале в самой лучшей CAM или отсутствия опыта оператора или понимания что и как и необязательны к применению безоговорочно И не надо спорить, вместо тысячи слов достаточно показать мультик как всё круто у тебя получается.  т.е. ты не знаешь как в 5 осях обработать криволинейный участок поверхности? НО при этом пытаешся критиковать. Забавно.   А судьи кто?   Что касательно того кто в какой CAD\CAM работает, то это не меняет тех фундаментальных принципов по которым происходит проектирование деталей и их обработка. Так сложилось что все программы основаны на одних общий принципах, повернул-обработал или обработал в момент поворота. Вопрос лишь в том насколько хорошо ты знаешь свою самую лучшую систему и можешь экстраполировать увиденное у других в неё. Т.е. твою склонность усваивать информацию, уметь её анализировать и применять, а не быть обезьяной кнопконажимателем. Я всегда об этом говорил и буду придерживаться своего мнения.
    • Александр 36
      Добрый.Подскажите как можно вывести отображение машинного времени?
    • vanek77777
      Балабол) Тебе уже говорили как-то выше по ветке, не давай советы по cad/cam системе в которой видимо даже не работаешь) Человек задал конкретный вопрос, как назначить конкретную обработку. Если ты не можешь показать, а ты не можешь, то пройди мимо. Конкретно по вопросу выше, я помочь не могу, т.к. не было необходимости делать такую обработку. Скилл как правило не определяется знанием всего по чуть чуть (как в твоем случае). Если ты занимаешься всем (судя по твоим постам на форуме), то ты ни чем не занимаешься по сути. На этом я больше тратить время на споры с тобой и флуд не буду. 
    • maxx2000
      пробывал поставить птичку "разрешить привязку"? да забей ты на лайки- шмайки, словами ответь. Пробовал или помогло?
    • maxx2000
      охренел что ли, где я ему про 3+2 говорил?  По твоему 5 осевая стратегия всегда подразумевает непрерывное движение всех 5 осей? Что на 4 осевом станке нельзя использовать 5 осевые стратегии?   а спину вареньем не намазать?   Я ещё раз повторюсь,  создаётся  ЛСК (или как там она у вас называется у NXстрадальцев) обрабатываемого элемента, Z этой ЛСК будет автоматически довернута вдоль оси шпинделя(повернётся стол), а поскольку обрабатываемый элемент не плоский (с подвывертом) обработка будет вестись по всем осям (непрерывная 5 осевая), а наклон инструмента будет минимизирован, в зависимости от того как настроена обработка вдоль Z ЛСК элемента,  по нормали к элементу или будет разрешено резать боком. Либо не выёживаться и использовать инструмент для обработки импеллера. Чё тут непонятного? Ах да, нет картинок волшебных. Ну мои картинки тут не приветствуются, без желания понять суть, они бесполезны.   Алаверды Сделай и выложи сюда проект. Покажи на деле. Посмотрим на твою скилуху.  
    • GHEB
      Добрый день Создал некую модель, всё было хорошо, но после перезапуска программы почему то эскиз перестал привязываться к линиям: Выбираю "Эскиз" https://skr.sh/sPckC4oM2Sf Нажимаю на нужную мне плоскость https://skr.sh/sPc7M6DGRDq Выбираю линию https://skr.sh/sPcnw9t9J9u Пытаюсь начать рисовать от центра окружности https://skr.sh/sPc1Kklf8nM Пытаюсь рисовать от некой точки https://skr.sh/sPcECS6vnwL Как видно курсор не привязывается к точкам, из-за чего попасть точно не представляется возможным Тоже самое если я пытаюсь к эскизу например дорисовать линию https://skr.sh/sPcX7Wyj0e6  В настройках эскиза настроено так, пробовал "перетыкивать" не помогло: https://skr.sh/sPc1CoTvYDS Версия https://skr.sh/sPcH4esnnCK Скрин всего окна и настроек, о которых я вычитал тут:  https://skr.sh/sPcHbYP5iB4 Скрин https://skr.sh/sPcHbYP5iB4 всего окна и настроек, о которых я вычитал тут:      Нашёл "быстрые привязки, но они работают не очень хорошо для окружностей и между ними приходиться переключаться, до этого таокго не было, неудобо https://skr.sh/sPcvE3KzS3u
    • Viktor2004
      Вот этот пример работает безотказно Нажатие на F1 включает кипп-реле К50.0, нажатие F2 его выключает O8001 G240 P3 C0 G243 X2 Y0 A1 B0 (TEST PROGRAM) G240 P6 C0 G243 X7 Y[4 + 1] (SECOND SCREEN) G240 P7 C0 G243 X5 Y26 A1 B0 (K50.1) G243 X5 Y27 A1 B0 (ON) G243 X12 Y26 A1 B0 (K50.1) G243 X12 Y27 A1 B0 (OFF) IF [#8549 EQ 249] THEN G310 K50 Q1 ENDIF IF [#8549 EQ 248] THEN G310 K50 Q0 ENDIF M99  
    • gudstartup
      код клавиши обязан передаться приложению экран которого активен на данный момент времени а у вас получается что он неактивен и какое то другое приложение этот код забирает
×
×
  • Создать...