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

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

Прошу подсказать:

Записываю свойства пользователя компонента макросом, после записи они не отображаются в таббилдере, пока не откроешь вкладку свойства пользователя, где все вновь записанные свойства отображаются сразу, и не закроешь её. Или можно перечертить пару раз, плюс глубокое перестроение и сохранение. Только после такого подшаманивания, новые значения свойств начинают отображаться в таббилдере. В конце макроса перечерчивание, перестроение и сохранение есть. Значения в системе прописываются, только в таббилдере не отображаются сразу, поля остаются не заполненными, и если в таббилдере нажать применить, благополучно стираются из системы. Надоело после работы макроса открывать свойства пользователя. Думаю, что это чистейший баг таббилдера. Как решить? 

 

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


12 часа назад, alek77 сказал:

Думаю, что это чистейший баг таббилдера. Как решить?

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

 

Лично мне не понятно зачем вам ТабБилдер? Если у вас макрос, который можно встроить в том числе на место ТабБилдера.

Или зачем вам макрос? Если вы всё же предпочитаете ТабБилдер.

 

13 часа назад, alek77 сказал:

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

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

Попробовал свою программку, всё обновляется сразу без всякого шаманства, но в программке имеется строчка с перестроением на сколько помню.

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

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

 

Лично мне не понятно зачем вам ТабБилдер? Если у вас макрос, который можно встроить в том числе на место ТабБилдера.

Или зачем вам макрос? Если вы всё же предпочитаете ТабБилдер.

 

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

Попробовал свою программку, всё обновляется сразу без всякого шаманства, но в программке имеется строчка с перестроением на сколько помню.

 

SetCustProp.exe

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

SetCustProp.exe

Предлагаете поискать код вашей программы в исполняемом файле?

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

Предлагаете поискать код вашей программы в исполняемом файле?

Простите великодушно, отправил в ЛС

Ссылка на сообщение
Поделиться на других сайтах
В 28.01.2019 в 23:07, alek77 сказал:

Надоело после работы макроса открывать свойства пользователя

 

Так чтобы этого не делать, в макросе д.б.

 

В 29.01.2019 в 12:12, Kelny сказал:

строчка с перестроением

 

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

 

Так чтобы этого не делать, в макросе д.б.

 

 

 

В 28.01.2019 в 21:07, alek77 сказал:

В конце макроса перечерчивание, перестроение и сохранение есть

Есть такие строчки. Но это не помогает.

 

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

Они начинают корректно отображаться только после нажатия кнопки ОК окошка суммарная информация.

 

Ссылка на сообщение
Поделиться на других сайтах
В 28.01.2019 в 23:07, alek77 сказал:

В конце макроса перечерчивание, перестроение и сохранение есть

Может сразу после записи свойств сделать??

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

Может сразу после записи свойств сделать??

спасибо, попробовал, не помогает

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

Тут на форуме скачивал программку Mensv .. После нее тоже надо было в свойства заходить, чтобы они обновились.. А вот у меня после макроса на VBA не надо.. И у @Kelny в Change_property вроде тоже..

Ссылка на сообщение
Поделиться на других сайтах
В 13.12.2010 в 16:29, Camel сказал:

....

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

Ну вот в vba:

'       Открываем приложение "SolidWorks", если оно не открыто
        Set swApp = CreateObject("sldworks.application")
'       Скрытая обработка
        Application.ScreenUpdating = False  ' Отображение
        swApp.Visible = False
'        Part.Visible = False
        'Открываем очередной файл модели
        Set Part = swApp.OpenDoc("Полное имя файла с расширением", 1)

 

и погнали

 

Что касается изменения свойств, то возможно тут проблема в том, что если писать "поверх" уже существующего, то скорее всего ничего не получится. Надо стирать существующее и потом писать по-новому.  С таббилдером не работаю, не знаю.

 

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

Потихоньку изучаю C#. Переписал свой макрос с VBA на C#. Прохожу по компонентам сборки и считываю значения свойств пользователя.

На C# макрос стал работать гораздо медленнее. В чем может быть проблема? Или так и должно быть?

Свойства с одного компонента считываются более 1,5 сек.

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

 

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

Подскажите, кто знает, пожалуйста

CustPropForCheck.zip

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

Потихоньку изучаю C#. Переписал свой макрос с VBA на C#. Прохожу по компонентам сборки и считываю значения свойств пользователя.

На C# макрос стал работать гораздо медленнее. В чем может быть проблема? Или так и должно быть?

Свойства с одного компонента считываются более 1,5 сек.

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

 

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

Подскажите, кто знает, пожалуйста

CustPropForCheck.zip

 

В дополнение: макрос на VBA считывает из сборки свойства пользователя для 250 компонентов около 2 секунд.

Аналогичный код на C# - 8 минут с лишним.

 

Направьте хоть, в какую сторону искать решение?

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

"Я думал, что переход на язык более высокого уровня и производительность увеличит..." с какой стати? Увеличивает производительность переход на языки более низкого уровня. А переход на языки высокого уровня увеличивает ВАШУ производительность, но не компа.

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

 

В дополнение: макрос на VBA считывает из сборки свойства пользователя для 250 компонентов около 2 секунд.

Аналогичный код на C# - 8 минут с лишним.

 

Направьте хоть, в какую сторону искать решение?

 

Помогли на форуме ЫЦ, если кому потребуется, решение следующее:

 

//для C#
//Метод такой-то()
{
swApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application");//или любой другой вариант
//Используем строку в начале:
swApp.CommandInProgress = true;

//Тут код метода

//Используем строку в конце:
swApp.CommandInProgress = false;
}

Код на C# отработал за 648 миллисекунд, вместо 8 минут, то что нужно

 

CommandInProgress

Повышает производительность приложений вне процесса, информируя SOLIDWORKS о том, что приложение вне процесса выполнит последовательность вызовов API.

 

Попробуйте команду кто может в макросах VBA, в C# прирост производительности программы просто офигенный

Отпишитесь, пожалуйста

Ссылка на сообщение
Поделиться на других сайтах
В 05.02.2019 в 19:14, alek77 сказал:

Попробуйте команду кто может в макросах VBA

А макросы VBA выполняются вне процесса?

http://help.solidworks.com/2015/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ISldWorks~CommandInProgress.html

SOLIDWORKS then reduces the number of updates it makes during these calls. Use of this property only effects out-of-process applications.

 

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

Здраствуйте
Возникла проблена с работой макроса для хранения спецификации в формате экселя
Файл макроса добавляю
Возникает ошибка 52 Error 52, Bad file name or number
Возможно кто-то подскажет как ее решить.

export solidworks bom to excel.swp

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

Не знаю даже чем вам помочь. Перепирание в эксель по-моему только ленивый не писал, но вот разбираться с чужими (не вашими) кодами желания нет от слова совсем. Слишком общо поставили задачу. Могу скинуть свой вариант, только скорее всего он вам не нужен, видимо вам более интересен принцип. Принцип прост - загоняете таблицу в массив, массив передаете в excel.application и там его деребаните по своему вкусу.

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

Возникает ошибка 52 Error 52, Bad file name or number
Возможно кто-то подскажет как ее решить.

Поиск по просторам интернета не помог? В поиске вроде много ссылок на аналогичную ошибку и попытки её решить.

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

Поиск по просторам интернета не помог? В поиске вроде много ссылок на аналогичную ошибку и попытки её решить.

Нет к сожалению

 

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • M_u_x_a
      @fenics555, согласен с Вами полностью. Риски, о которых Вы говорите - имеют место наравне с прочими. Выкладываю шаблон и форматку, сохранено в Creo 11. Если сравнить мануалы, реализовано по-разному. Но правка результатов не принесла.  
    • RokiSIA
      Вот и попались, пусть теперь они уже отбрехиваются
    • davidovka
      Выкладывайте свои, посмотри что не работает.
    • Anat2015
      А что, бывает по другому, программисты и операторы сразу сознаются?
    • fenics555
      так пока кто-то пользуется кнопкой "сделайкрасиво" он набивает номенклатуру, библиотеку изделий, с уже неправильно указанными параметрами. И вдальнейшем другим конструкторам пользоваться штатными средствами никак не получится, кроме как открыть КАЖДЫЙ файл, добавить нужные парметры (тут можно импортом из шаблона)  и лапками подправить. КАЖДЫЙ! И сборки. Все. Еще с булками разобраться. Иначе без этой DLLки выводиться будет ерунда. ДАЖЕ СРАНЫЙ ЧЕРТЕЖ ОБЫЧНОЙ ДЕТАЛИ! И никто другой даже не додумается, в чем же дело. Ну вот возьмет он (Конструктор с кнопочкой умной) и уволится от неразделенной любви, или по дороге на работу разобьется. Ну фактор человеческий. Бывает. Он работал, получал ЗП за то, что делал "вроде правильно", но любой другой придет- и не сможет сразбегу "в красоту"! И Бос такой, затягивая сигару: "Эх, салага, вот Стас был- да! ..." Ну там, слеза скупая, всё такое. И не объяснить, что он х8йню делал. Поэтому я стараюсь работу работать так, чтоб после меня "Фен -просто красавчик" сказал тот, кто будет после.
    • M_u_x_a
      Уважаемые Господа @fenics555 и @-stas- ! Каждый из вас по-своему прав. Пользоваться или нет дополнительными приложениями при возможности реализации штатными средствами - это выбор каждого инженера. Тут влияет ещё и специфика работы, взаимодействие с другими инженерами и тд. Лично я, пожалуй, вижу в конкретно этом инструменте скорее положительное, нежели бесполезное. В списке дополнительных приложений запущено и работает. Дело в том, что тот релиз, на который я жаловался, был под Creo 1. С этим мне помог уважаемый @davidovka , за что мой ему поклон. Однако, желаемого результата достичь не удалось, несмотря на правку графы таблицы согласно инструкции-мануалу. Теперь там просто пусто, не заполняет. Прошу кинуть в мою сторону шаблон детали и форматку с которыми оно точно работает. Успехов всем в делах и делишках.
    • Сергей Кочев
      При разборе полётов, все утверждали, что программа отлажена и её ни кто не менял и сделали по ней две детали. Ну вот зашёл в свойства файла программы и увидел, что программу редактировали именно в день аварии. Сздана 11.10 Изменена 30.10. Был в отпуске хотел посмотреть Action Log к сожалению уже данные перезаписались.
    • Даниил_91
      спасибо, просто по поиску не нашел конкретной темы кстати надо попробовать, об этом даже не подумал, спасибо
    • Onizuka
      Удалите параметр DRAWN_BY и создайте снова. Список должен обновиться после этого
    • semsv
      Вам с этим вопросом сюда: https://cccp3d.ru/forum/28-creo/
×
×
  • Создать...