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

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

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

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

 

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


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 пользователей

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




  • Сообщения

    • Shura762
      Это делается в файле кирпича, а не сборки. если у вас каждый кирпич = каждый файл, сочувствую, просто сначала необходимо продумывать свои действия.
    • egor-40
      Попробуй включить G98(минутная подача). подача будет G01 F100. или F300. 
    • Maik812
      с какой версии сам модуль.
    • Павлуха
      Отстали от жизни? В солиде уже давно кам-модуль вшит.
    • Ветерок
      В Солиде не получится. Солид - это КАД - в нем строится геометрия. И только. Потому в каком-нибудь КАМ строятся траектории, задаются скорости, направления и прочее. И только потом всё это преобразуется в Ж-коды при помощи постпроцессора именно под конкретную стойку. Нужны все три составляющие - КАД-КАМ-постпроцессор.
    • bubl leg
      Всем доброго, друзья!   Вопрос такой: по причине того, что собираю свой ЧПУ станочек настольный с довольно простыми для ЧПУ задачами (супержесткой рамы и прочего - не сильно обязательно) - рисование маркером печатных плат и сверловка их же - требуется какой то более менее подробный гайд на русском языке, по подготовке G-CODE в Solidworks. На youtube я нашел кучу конечно...Смотрю...Но, хоть и понимаю англицкий неплохо, всё равно не так "на лету", как хотелось бы.   Из этого вопрос: может ли кто то порекомендовать имеющийся тут, на форуме или ещё где то - русскоязычный более менее подробный гайд или видео - по моей задаче? Именно в Solidworks (не во FreeCAD и прочем).   Заранее спасибо!   P.S. Как собрать электронику для станка, как прошить - это всё не важно, это всё знаю. Интересует именно подготовка G-CODE в среде Solidworks,с примерами и (желательно) последующей отправкой на ЧПУ.
    • grayve
      Нет этого пункта в меню((( Вопрос решен. Нужно нажать кнопку Применить представление структуры изделия...
    • BSV1
      С наступающим!  
    • grayve
      Народ, Добрый вечер! Подскажите, у меня в сборке несколько сотен кирпичей. Печь собираю. Многие из них стандартные изделия, но поскольку в библиотеке таких кирпичей нет мне пришлось их делать в виде деталей. Соответственно сейчас в спецификации они попали в сборочные единицы. Знаю, что можно по одной детали через окно структуры поменять Раздел... Но несколько сотен раз очень не хочется. Помогите решить проблему? T-Flex 17
    • grayve
      Нужно разорвать проекционную связь с проекцией и переходить на другую страницу.
×
×
  • Создать...