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

Создание Обозначения с помощью уравнения в СВ 2022.


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

В СВ 2022 в свойствах файла появилась возможность писать уравнения. Решил попробовать с их помощью сформировать Обозначения для деталей с конфигурациями, чтобы при конфигурации 00 в Обозначение заносилось только имя файла (у меня имя файла=обозначение), при любой другой конфигурации, соответственно, имя файла-имя конфигурации. Внес формулу: if ( $PRP:"SW-Configuration Name" = 00 , $PRP:"SW-File Name" , $PRP:"SW-File Name" - $PRP:"SW-Configuration Name" ) и что-то ничего не выходит. При типе Уравнение - пишет ошибку, при типе Текст - пишет см. скрин. Кто-то занимался этим вопросом, как побороть, если возможно?

 

image.png

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


UnPinned posts

Открываю секрет. Там (внутри уравнений) даже можно писать макросы с использованием VBA!

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

 

16 минут назад, kkk сказал:

как он поможет приблизится к решению проблемы?

Также как и при подобной ошибке в случае с использованием VBA - искать и исправлять ошибку в синтаксисе. 

Цикл if-else должен заканчиваться оператором end насколько мне известно. 

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

Там нет ошибки в синтаксисе, насколько я понимаю. Нижняя строчка в свойствах это косвенно подтверждает (там в скобках все правильно считается). Да и если в данной формуле убрать свойства и внести обычные цифры, то все будет работать исправно. 

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

В вашем синтаксисе есть логика, которая не совпадает с разработчиковской. Но даже последняя тупИт, потому что по ходу только с числами рабоатет.

 

 

SLDWORKS_ND7gYUWvSB.png

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

Открываю секрет. Там (внутри уравнений) даже можно писать макросы с использованием VBA!

этот баг уже давно пофиксили

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, streamdown сказал:

Но даже последняя тупИт, потому что по ходу только с числами рабоатет.

Вот и я смотрю, уравнения ввели, а работать с ними не ввели.

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

Тоже бьюсь над подобной задачей - организовать свойства "Обозначение" и "Наименование" через имя файла (название файла - "Обозначение - Наименование.<расширение>"). Имею сборку - шаблон готового изделия, у которого в зависимости от изменения габаритов задаются индивидуальные обозначения (по формату AA.BBBB.CCCC), плюс в процессе разработки могут измениться и названия деталей. Сохраняя эту сборку через Pack&Go, меняю у всех файлов разом обозначения, и хотелось бы, чтобы при открытии чертежа на любую деталь этой сборки, она имела актуально заполненный штамп.

Я пытался организовать динамическую смену свойств через костыль - таблицу параметров, созданную в каждой детали/подсборке, ведь это так удобно - в ячейке A1 всегда есть название файла, и из него через формулы Excel можно получить отдельно Наименование и Обозначение при помощи функций поиска, подмен и т.д. Только по завершению создания сборки-шаблона я обнаружил, что проделал пустую работу, ведь значение в ячейке А1 остается неизменным, задается при создании таблицы параметров и не изменяется при сохранении файла под другим названием.

Хорошо хоть есть возможность добавить свойство файла $PRP:"SW-File Name" и извлекать нужные мне свойства через него. Хотел было уже исправлять все таблицы параметров деталей, но вспомнил про недавно добавленные уравнения в свойства файла. 

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

UPD

Нашел статью (EN), в которой показан пример работы уравнений в свойствах. Видимо да, работает только в качестве "калькулятора", высчитывая величины из других свойств. Список операторов из справки, ни о каких if и речи нет. Очень жаль, придется возиться с таблицами параметров.

Изменено пользователем RedCuc
Ссылка на сообщение
Поделиться на других сайтах
29.10.2022 в 17:43, kkk сказал:

Внес формулу: if ( ...

Я бы еще попробовал написать не if, а iif

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, RedCuc сказал:

Тоже бьюсь над подобной задачей - организовать свойства "Обозначение" и "Наименование" через имя файла (название файла - "Обозначение - Наименование.<расширение>"). Имею сборку - шаблон готового изделия, у которого в зависимости от изменения габаритов задаются индивидуальные обозначения (по формату AA.BBBB.CCCC), плюс в процессе разработки могут измениться и названия деталей. Сохраняя эту сборку через Pack&Go, меняю у всех файлов разом обозначения, и хотелось бы, чтобы при открытии чертежа на любую деталь этой сборки, она имела актуально заполненный штамп.

Я пытался организовать динамическую смену свойств через костыль - таблицу параметров, созданную в каждой детали/подсборке, ведь это так удобно - в ячейке A1 всегда есть название файла, и из него через формулы Excel можно получить отдельно Наименование и Обозначение при помощи функций поиска, подмен и т.д. Только по завершению создания сборки-шаблона я обнаружил, что проделал пустую работу, ведь значение в ячейке А1 остается неизменным, задается при создании таблицы параметров и не изменяется при сохранении файла под другим названием.

Хорошо хоть есть возможность добавить свойство файла $PRP:"SW-File Name" и извлекать нужные мне свойства через него. Хотел было уже исправлять все таблицы параметров деталей, но вспомнил про недавно добавленные уравнения в свойства файла. 

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

UPD

Нашел статью (EN), в которой показан пример работы уравнений в свойствах. Видимо да, работает только в качестве "калькулятора", высчитывая величины из других свойств. Список операторов из справки, ни о каких if и речи нет. Очень жаль, придется возиться с таблицами параметров.

Почему вас не устроила таблица параметров? Вполне себе годная штука. Не понял смысл вашей задачи в "у которого в зависимости от изменения габаритов задаются индивидуальные обозначения (по формату AA.BBBB.CCCC". Это как? Приведите пример

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, brigval сказал:

Я бы еще попробовал написать не if, а iif

Те же яйца, только с боку - так же работает только с числами.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, pps270391 сказал:

Почему вас не устроила таблица параметров? Вполне себе годная штука. Не понял смысл вашей задачи в "у которого в зависимости от изменения габаритов задаются индивидуальные обозначения (по формату AA.BBBB.CCCC". Это как? Приведите пример

Таблица параметров устраивает во всём, и я часто ей пользуюсь, но конкретно в этом случае она не помогает. Нужно в каждую деталь и сборку добавить таблицу, Затем добавить свойство для каждой конфигурации $PRP:"SW-File Name" (у меня не получилось сослаться на свойство из вкладки Настройки, которое общее для всего файла). И самое главное, что меня остановило от этой затеи - после копирования проекта с новым именем, необходимо будет в каждом элементе сборки заново открыть таблицу параметров, чтобы обновить данные.

Касаемо смысла задачи - есть шкафы. У каждого свои габариты и обозначение согласно внутреннему классификатору. Но конструктивно они одинаковые, поэтому я решил сделать шаблон одного шкафа с внешним файлом параметров (уравнения). Как я себе это вижу - у меня есть последняя актуальная версия шаблона со всеми изменениями и доработками. Когда мне нужен новый шкаф, я задаю размеры через файл параметров, копирую проект через Pack and Gо, через замену имен присваиваю новое обозначение и имею настроенную сборку, со связями в деталях, с чертежами, в которых нужно только передвинуть размеры если они съехали. 

До последнего был уверен, что в таблице параметров в ячейке A1 всегда пишется актуальное имя файла, хотя это надо было проверить в первую очередь. Уравнениями в свойствах выяснил, что тоже не получится. Остается вариант только через макросы, и я нашел такой от ув. @Snake 60 , называется FromFilenameToProperties. Перейти на вариант названий файлов "Обозначение_Наименование" не проблема (через тот же Pack and Go), как и один раз запустить макрос после создания новой копии. 

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

@RedCuc Есть расширенная версия этого макроса, пишите в личку...

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, RedCuc сказал:

Таблица параметров устраивает во всём, и я часто ей пользуюсь, но конкретно в этом случае она не помогает. Нужно в каждую деталь и сборку добавить таблицу, Затем добавить свойство для каждой конфигурации $PRP:"SW-File Name" (у меня не получилось сослаться на свойство из вкладки Настройки, которое общее для всего файла). И самое главное, что меня остановило от этой затеи - после копирования проекта с новым именем, необходимо будет в каждом элементе сборки заново открыть таблицу параметров, чтобы обновить данные.

Касаемо смысла задачи - есть шкафы. У каждого свои габариты и обозначение согласно внутреннему классификатору. Но конструктивно они одинаковые, поэтому я решил сделать шаблон одного шкафа с внешним файлом параметров (уравнения). Как я себе это вижу - у меня есть последняя актуальная версия шаблона со всеми изменениями и доработками. Когда мне нужен новый шкаф, я задаю размеры через файл параметров, копирую проект через Pack and Gо, через замену имен присваиваю новое обозначение и имею настроенную сборку, со связями в деталях, с чертежами, в которых нужно только передвинуть размеры если они съехали. 

До последнего был уверен, что в таблице параметров в ячейке A1 всегда пишется актуальное имя файла, хотя это надо было проверить в первую очередь. Уравнениями в свойствах выяснил, что тоже не получится. Остается вариант только через макросы, и я нашел такой от ув. @Snake 60 , называется FromFilenameToProperties. Перейти на вариант названий файлов "Обозначение_Наименование" не проблема (через тот же Pack and Go), как и один раз запустить макрос после создания новой копии. 

Итак. Как я понимаю: У вас есть шкаф. Но этих шкафов у вас множество. Так почему бы не сделать так, как я описывал вот тут: https://cccp3d.ru/topic/113850-новый-взгляд-на-автоматизацию-solidworks/. Тем более у вас шкафы. Забудьте раз и навсегда про ваши труднозапоминаемые обозначения. У вас будет только один чертеж и одно обозначение - С.ШФ.001-В-Ш-Г, где В, Ш, Г - габариты вашего шкафа. Например боковые стенки будут иметь обозначение Д.СТ.001-В-Г, задняя Д.СТ.002-В-Ш, верхняя и нижняя Д.СТ.003-Ш-Г, а дверь - Д.ДВ.001-В-Ш. Всего 5 чертежей + СП перекрывают все возможные шкафы этой конфигурации. Шкаф С.ШФ.002 - будет с полками, шкаф С.ШФ.003 - будет с определенными петлями и т.д. Можно кучу всяких новых параметров внедрить, вплоть до количества перегородок в шкафу, и все будет автоматически расставлено в зависимости от размеров самого шкафа

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, RedCuc сказал:

У каждого свои габариты и обозначение согласно внутреннему классификатору

Если версия старая Солида  то в свойства файла можно легко проставлять габариты  исполнения по умолчанию что.

Для СВ 2015 и выше нужен другой плагин по работе свойств.

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

1 час назад, RedCuc сказал:

Когда мне нужен новый шкаф, я задаю размеры через файл параметров, копирую проект через Pack and Gо, через замену имен присваиваю новое обозначение и имею настроенную сборку, со связями в деталях, с чертежами, в которых нужно только передвинуть размеры если они съехали. 

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

Было много подобных метало конструкции и они в одной сборки общей шли. И Конфигурации нужны были для сохранения чертежей с разными по сути видами и дальнейшими небольшими изменнеиями если вводятся.

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

Менять приходилось только в спецификации индексы проекта , значения.

 

 

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

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

Тем более уверен такие решения уже есть. 

Ссылка на сообщение
Поделиться на других сайтах
  • 8 месяцев спустя...
Технолог Денис

Уравнения тут работают только для цифр, и даже если вы выполните вычисление в отдельной строке, а потом будете ссылаться на результат в другом пользовательском свойстве, то SW не примет результаты вычислений, отобразит формулу, которая была вписана в ячейку пользовательского свойства...

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

Лично я сделал в шаблоне деталей и сборок набор свойств, которые, ссылаясь друг на друга, формируют итоговое обозначение и наименование. Такие вещи, как шифр проекта, номер сборки, номер детали, указываются вручную, остальное - автоматически (ну, или полуавтоматически).

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

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

О Боже! 

Вы сначала изобретаете проблему а потом героически ищите её решение! 

Найдите макрос для редактирования свойств, который умеет в конфигурациях. Напишите условие что если вот это тогда аот это если нет тогда это. 

Запускаете его один раз для сборки и готово

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

В макросы я, к сожалению не умею, ни разу ими не пользовался. Нужно изучать тему, давно уже этот вопрос висит, всё никак не дойду...

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

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

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

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

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

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

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

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

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

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

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




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