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

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

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

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

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

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



  • Сообщения

    • davidovka
      в уравнении Гибкой области ячейки наименование первую строку исправьте на  r=ptstrim(1,asm_mbr_НАИМЕНОВАНИЕ,22,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 и создайте снова. Список должен обновиться после этого
×
×
  • Создать...