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

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

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

Исходно оно ничему не присвоено, возвращается пустое значение:

Debug.Print "display state = " & swApp.GetOpenDocSpec(swApp.ActiveDoc.GetPathName).DisplayState
А надо получить активное состояние уже открытого документа...
Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...


И снова здравствуйте :)
Опять натолкнулся на момент которой никак не хочет решаться...

Есть много деталей в сборке, каждая с несколькими конфигурациями. У одной (знаем какой) конфигурации добавлена текстура. 
Задача, поменять цвет детали во всех  конфигурациях, кроме как в той, что с текстурой. 

Делал так:
 

  var bodyes = part.GetBodies2(0, false);
            foreach (var body in bodyes)
            {
                var vMatProp = body.MaterialPropertyValues2();        
                double[] color = new double[9] { 255, 128, 128, 1, 1, 1, 0.3, 0, 0 };
                body.MaterialPropertyValues2 = color;
            }

В доке к MaterialPropertyValues2  написано что действует только на активную конфигурацию, однако он почти всегда добавляет цвет во всех конфигурациях. Изредка, ту, где есть текстура пропускает. С чем это связано не пойму... Настройки конфигураций-внешних видов вроде как идентичные у деталей... 

 

Нет идей как такое поведение побороть, и назначать цвет только на указанные конфигурации деталей? 

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

PS. Если применять, на уровне модели -  IModelDoc2.MaterialPropertyValues то применяется только  на произвольные детали...  А некоторым деталям в текстуре цвет подменяет... не поверх текстуры, а именно внутри, вчера зеленый дуб получил таким образом на двух деталях :)

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

Так если метод действует на Body, то материал вы им назначаете или в дереве "материал"?

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

Детали не имеют установленного материала. Мне это в общем то не надо. Стоит попробовать с установленным материалом? Хотя вот я пробовал его устанавливать - идет стирание текстуры, а мне это не надо :(

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

Ага. Причем примените материал к телам (телу).

Ну так...для тестов.

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

Ну с этим подходом ничего так и не получилось - солид ведет себя крайне непредсказуемо. 
Однако поборол следующим образом :
В цикле открываю(OpenDoc7) все детали в невидимом режиме,

Переключаю конфигурацию принудительно к нужной, меняю конфигурацию на уровне IModelDoc2

так работает как надо, хоть имхо и через ж__у.

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

Появился очередной вопрос, на который не смог ответа найти. 
Есть открытый лист чертежа. Задача, перетянуть из своей боковой панели объект  и поместить в указанной точке листа чертежа чертежный вид или заметку. То есть реализовать DragAndDrop. В сборке подобное делается достаточно просто с помощью
 DoDragDrop(dataObj, DragDropEffects.Link | DragDropEffects.Copy);

 

А как быть в чертеже? Как заметку разместить... 
Можно как то отследить скажем координаты последнего клика по листу, и уже вставка кнопочкой... ?

Подвис я немного, не знаю даже куда копать...  

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

координаты последнего клика по листу

GetSelectionPoint2

не забудьте про трансформацию.

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

GetSelectionPoint2

не забудьте про трансформацию.

Я немного неверно сформулировал, имел в виду не точку, а координаты на пустом листе. GetSelectionPoint2 вернет точку на модели.

Т.е. надо заметку или вид разместить на пустом листе указав мышью место.

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

не точку, а координаты

Так она и возвращает координаты.

Можно ещё это попробовать http://help.solidworks.com/2015/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.idrawingdoc~getinsertionpoint.html

Или подписаться на событие http://help.solidworks.com/2015/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.dmouseevents_mouselbtndownnotifyeventhandler.html

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

А есть возможность пользоваться полем фильтра графического вида (тот который над деревом проекта в сборке)? Все что нахожу - связано с выделением, а тут хотелось бы тупо с помощью апи вбивать буковки в это поле. 

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

@Krokogen уже не первый месяц с API, а всё справкой никак не научитесь))) FeatureManagerFilterString

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

@Krokogen уже не первый месяц с API, а всё справкой никак не научитесь))) FeatureManagerFilterString

Блин... :)
Ведь искал... ;)

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

@streamdown Есть вопрос. Когда открываю SolidWorks вручную, ошибки нет при выполнении действия, но когда запускаю SolidWorks  программно по GUID, и выполняю действие, выскакивает ошибка, не знаете случайно в чем проблема?

 

fdf.PNG

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

выскакивает ошибка, не знаете случайно в чем проблема?

GET не чего брать, т.к. приложение не запущено.

Вероятно: CreateObject("SldWorks.Application")

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

GET не чего брать, т.к. приложение не запущено.

Вероятно: CreateObject("SldWorks.Application")

Пишет что Marshal не содержит метод CreateObject.

Я ведь написал когда SolidWorks запускается по GUID программно, далее по кнопке должно выполняться действие , но выскакивает такая ошибка. А когда запускаю SolidWorks вручную (ярлык на рабочем столе) то ошибки нет при выполнении действия.

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

SolidWorks запускается по GUID программно

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

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

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • zagib
      Привет. кто может объяснить как работает CUT3D..... в SINUMERIK 840D sl. Как его включать в MASTERCAM?
    • SerGuN_78
      Добрый день, коллеги! Возникла следующая нестандартная ситуация: Выпустили извещение АБВГ.001-2024 на четырех листах. Но на листах 2, 3, 4 не указали номер ИИ в графе 2. Инспекция требует выпустить ДИ на это извещение. В лоб просится следующий вариант: выпускается АБВГ.001-2024 ДИ на четырех  листах, в котором будут заполнены все необходимые графы, а в графах 18 будет стоять прочерк. Но этот вариант выглядит как-то смешно. У кого есть какие-нибудь мысли по этому поводу? Заранее благодарю!
    • Stanislav
      не все так просто...это условно, для понимания что переменную $mom_tool_number надо заменить на $mom_tool_name в том месте где выводиться-вызываеться инструмент.   нужно искать код который отвечает за вызов инструмента и в нем править одну переменную на другую. Выложите пост, посмотрим.
    • Alexandr97
      Я с вами согласен, но в данном контексте мне необходимо сделать именно так, как я написал.:)
    • Ветерок
      Это не логично если говорить о сборке-разборке. Или считаете нормальным?
    • A_1
      Не удаётся найти это место в файлах постконфигуратора.
    • Alexandr97
      Добрый день, столкнулся со следующей проблемой. Есть сборка, состоящая из нескольких подсборок. Необходимо сделать анимацию в среде "Управление разборкой". Нужно, чтобы некоторые детали из ПОДсборки перемещались, а некоторые оставались на месте. Так сделать не получается, так как при выборе объектов для преобразований выделяется полностью вся подсборка, а не ее детали по отдельности. Подскажите, есть ли способ выбора объектов подетально?
    • karlf
      Кто-нибудь знает максимально допустимый поддерживаемый размер диска для стойки TNC 426? 40 гиг увидятся?
    • Maik812
      Проблема проводничка... есть функционал у Тотола, во первых без папок просмотр, поиск и в окно поиска файлы, и еще куча плагинов которые можно виртуально держать все файлы. виртуальная панель. Скорее всего вам подойдет виртуальная панель, она как хранитель файлов, виртуальная папка.
    • Дмитрий22
      Я уже разобрался. Спасибо kkk.   Можно выделить много деталей в проводнике windows и мышкой перетащить в окно солида. Он их все вставит в сборку. Через стандартное окно вставки так не работает. Детали то можно выделить, но нужно делать 1000 кликов, чтоб вставить каждую. Не знал, что через обычный проводник windows можно вставлять чохом.
×
×
  • Создать...