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

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

6 часов назад, streamdown сказал:

Раз запускается, то уже не надо GetActiveObject.

Покажите код запуска процесса (Solidworks).

object processSw;
processSw = System.Activator.CreateInstance(System.Type.GetTypeFromCLSID("F16137AD-8EE8-4D2A-8CAC-DFF5D1F67522
"));
  SwApp = (SldWorks)processSw;
  SwApp.Visible = true;
  SwApp.NewPart();
  swDoc = SwApp.IActiveDoc2;

 

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


Ну так у вас уже есть объект SW, зачем вы его ещё раз ГетОбжектите))

18 минут назад, mrazzzb сказал:

SwApp.NewPart();

Метод устаревший. Советую при новом API, и новой разработке, использовать именно новые методы. Иначе может "что-то" случиться, а вы и не поймёте почему. Могу долго про это рассказывать, так что просто примите совет.

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

Допустим открыл процесс SolidWorks программно, закрыл свое приложение , открываю заново и приложение уже не взаимодействует с Solidworks, как к нему обратиться заново? 

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

 

Метод устаревший. Советую при новом API, и новой разработке, использовать именно новые методы. Иначе может "что-то" случиться, а вы и не поймёте почему. Могу долго про это рассказывать, так что просто примите совет.

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

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

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

Лучшее, что можно придумать:

 

Цитата

 

swApp.ExitApp();

swApp = null;

System.Runtime.InteropServices.Marshal.ReleaseComObject(swApp);

GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();

 

 

Ну или убивать процесс, что в принципе равносильно "падению" Solidworks и не считается правильным.

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

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

Лучшее, что можно придумать

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

 

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

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

Поэтому может стоит подумать над работой программы

Вот с этим именно согласен. Надо никнейму ещё раз всё продумать. Либо открывать SW в фоне и не отображать, либо закрывать, либо оставить видимым и открытым.

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

@streamdown Подскажите пожалуйста есть ли пример какой-нибудь с новым методом запуска SolidWorks( с помощью guid желательно). Ищу в АПИ, ничего не могу найти :wallbash:

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

@mrazzzb вы меня не правильно поняли. Метод запуска SW не может быть другой, пока все не сменят технологию создания таких программ как SW.

Я вам говорил про создание детали NewPart() - её лучше не использовать.

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

@mrazzzb вы меня не правильно поняли. Метод запуска SW не может быть другой, пока все не сменят технологию создания таких программ как SW.

Я вам говорил про создание детали NewPart() - её лучше не использовать.

Понял, да я и  новый метод создания Part тоже не могу найти:g:

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

@streamdown

Скажите пожалуйста, вы не знаете как прописать формат сохранения файла при вызове диалогового окна "SaveAs", например ".sldprt". Для того чтобы пользователь не выбирал сам формат файла, а система уже сама выбрала определенный формат. Если можно так конечно))

swDoc.Extension.RunCommand((int)swCommands_e.swCommands_SaveAs, "SaveAs");

 

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

RunCommand

это не нужно тут. Есть нормальная команда

SaveAs

Будет что-то вроде:

Цитата

int errors = 0;
int warnings = 0;
swModExt.SaveAs(FULL_PATH_FILENAME, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref errors, ref warnings);

 

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

Да)))

Пробегаетесь по дереву на уровне элементов и потомков, если эскиз, то Is3D

Если бы я знал как пробежаться по дереву:rolleyes:, я поэтому и спросил))

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • maxx2000
      @Павлуха почему она временная если она есть? её можно удалить случайно или специально?
    • gudstartup
      а зачем станку при восстановлении памяти писать на карту он наоборот с нее читает так что WP не должен влиять
    • Ninja
      @Artas28 ты ещё жив? А то тебя давненько тут не было с вопросами и я подумал, что ты уже всё... это нормуль! это фича такая! если чо, то писать по известному адресу, в знаменитую службу поддержки, там всё исправят, как всегда...   Вот тут была твоя главная ошибка )) В следующий раз, просто добавляй новую деталь в проект, и ручками пересчитывай а кнопки отмены действия там так и не сделали? одна ошибка и ты ошибся, так что ли?  
    • gudstartup
      а куда же смотрят механики?
    • Slavdos
      не пробовали потому что его нет
    • al0ner
      Все верно, глянул распиновку, есть пин WP, поставил другой разъем и все заколосилось, в ступор ввело то что на двух станках история одинакова. Виктор вам пасибо огромное
    • SAVASTEEV
      Проблема в том что он как бы есть, но не получается убрать этот отскок после прохода, уже все перепробовал ....  Он после прохода делает отход в сторону от патрона а мне это не нужно, так как он ударится в деталь при отходе таком (на видео контур просто примерочный по этому там не важно)  https://imgur.com/a/6GmnBVs
    • The_22nik
      Добрый день, функцией изолировать. В дереве построение нажмите правой кнопкой мыши, после выбора нужных компонентов. Лично для себя настроил через две клавиши, в настройках. Войти в этот режим на одну, выйти на другую.
    • Maik812
      abviewer 15 вариант есть без заморочек и можно как вьювер прицепить к тоталу. вопрос какие версии смотрит не знаю. но сомтрит что то можно крутит и сечения и тд. Вариант разобраться https://web.archive.org/web/20180322180055/http://www.streamdivision.com/prosmotr-3d-modeley/ Использовать Драйвинг как прогу просмотр https://rutube.ru/video/8dd0d1e3f1893e7108cca3d5265552e6/?ysclid=m1y68uvxem237840511   думаю твой вариант https://vmasshtabe.ru/blog/chem-prosmatrivat-fajly-solidworks
    • Bot
      Группа компаний «Национальная компьютерная корпорация» (НКК) совместно с Госкорпорацией «Росатом» провела первую демонстрацию PLM-системы САРУС+. Разработка системы осуществляется на базе платформы САРУС, созданной ранее в ГК «Росатом», и направлена на развитие российских технологических решений в области управления жизненным циклом изделий. Мероприятие прошло в рамках форума «ИТ ОПК-2024» в Архангельске. В соответствии со стратегическим соглашением о партнерстве с ГК «Росатом» НКК приступила к реализации программы разработки PLM-системы САРУС+. Разработка ведется с использованием современных технологических принципов организации сложного ПО на основе импортонезависимого технологического стека, обеспечивается поддержка мультиплатформенности системы, особое внимание уделяется защите обрабатываемой информации. Учитываются также основные архитектурные и технические тенденции, применяемые в ведущих мировых PLM-системах. В настоящее время НКК продолжает создание функционала [...] View the full article
×
×
  • Создать...