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

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

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

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

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

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




  • Сообщения

    • Orchestra2603
      Ну, предлагаю такой подход... Не знаю, может это все слишком очевидно, ну хотя бы это по полочкам разложить - тоже полезно.   Вот допустим, есть у вас электродинамический вибровозбудитель. Он как устроен? Есть генератор переменного тока. Он встроен в электрическую цепь, и там есть свои электрические элементы. Но главное, там есть катушка индутивности намонтанная на трубу, а внутри нее подвижная масса. На подвижной массе еще одна катушка, и у той по обмотке течет еще какой-то свой постоянный ток. Когда ток проходит по обмотке трубы, то внутри возникает магнитное поле, а оно действует на ток внутри трубы протекающий по подвижной катушке, и возникает сила Ампера, котоая приводит в движение массу. Сила эта пропорциональна магнитной индукция, а та в свою очередь силе тока (как в подвижной, таки неподвижной катушке, но нас интересует ток в конутре, который переменный). Т.е. ток в контуре, где стоит катушка, выступает в роли внешней возбуждающей силы для подвижной массы. Возможны конечно нюансы и некоторые вариации, но суть вроде как такая.   Если электрическая цепь сложная с кучей контуров, и там натыкано много конденсаторов, резисторов и инудктивностей в каждом контуре, то распределение токов по контурам находится через решение системы линенынх дифференциальных уравнений второго порядка.  Ну, т.е. там по сути тоже куча собственных частот, каждая из которых описывает свой электрический резонансов. Можно также решать задачу на СЗ, и будут собственные вектора, которые описывают соотношения амплитуд и фаз токов в раных контурах, и собственные значения, которые соотвтетсвуют каким-то резонансам. Тогда ЭДС на генераторе выступает в роли внешней силы. В зависимости от распределения элементов и контуров в цепи коэффициент усиления между ЭДС на генераторе и перемещением подвижной массы в трубе в определенном контуре будет меняться. Типа как АЧХ получается, только чисто "электрическая". Это АЧХ чистемы ЭМС, если в вашей терминологии. В параметры этой АЧХ будут входить только параметры электрических элементов схемы.   Можно дальше представить себе, что в каждом контуре цепи воткнут свой генератор, и у каждого своя амплитуда тока и фазовый сдвиг, но всех у всех одна частота. И пускай в каждом контуре есть своя подвижная масса внутри какой-то своей неподвижной катушки. Получается, что есть некоторый вектор правых частей, собранный из ЭДС генераторов в разных контурах, а перемещения подвижных масс в разных контурах - это вектор отклика. Т.е. будет уже матрица частотных харкатеристик (системы ЭМС, если в вашей терминологии), а отклик подвижных масс и внешние возбуждения, будет описываться соотвтетсвующими векторами. В зависимости от того, как распределены амплитуды и фазы ЭДС генераторов по контурам, и какая выбрана частота возбуждения, могут проявляться или не проявляться какие-то резонансы (точно также будет какой-то коэффициент участия, коэффициент динамичности и т.д.). Если в каком-то контуре проявляется резонанс, то в этом контуре на этой частоте будет большой коффициент динамичности по амплитуде тока в этом контуре, и будет пропорционально увеличиваться амплитуда отклика по перемещениям соотвтетсвующей подвижной массы.   Теперь представим, что каждая i-я из этих подвижных масс соединяется с контрукцией - системой МС. Тогда получается так, что да, ток в i-м контуре зависит от электрической АЧХ системы ЭМС, и это влияет на механическую силу, действующую на пожвижную массу в i-м контуре, но вместе с этим свойства механической системы МС могут быть такими, что на этой частоте даже такая увеличенная амплитуда силы в не возбуждает большого механичского оклика (перемещения) в этой конкртеной i-й точке крепления с конструкцией. Т.е. в данном случае, получается, что вы задаете вектор ЭДС генераторво на входе, это все дело умножается на электрическую АЧХ системы ЭМС, и получается вектор механических сил Ампера, действующих на каждую из точек крепления. А дальше этот вектор сил умножается на АЧХ системы МС, чтобы получить вектор отклика конструкции.   Т.е. получается так, что две системы вообще соединяются последвательно: выход из первой служит входом для второй, и их АЧХ разделяются спокойно. В итоге, выходит, что АЧХ можно просто переменожить, чтобы получить итоговую АЧХ суммарной системы ЭМС+МС. Так получается из-за того, что электромагнитное взаимодействие создает механическую силу и влияет на механическое движение, но механическое движение не влиет на электромагнитные взаимодействия в цепи. Так ведь?   Такие, вот, мысли. Сам вообше не спец ни разу по электромагнитизму, так что поправьте, если где-то ошибаюсь.
    • zedowl
      все, разобрался сам, просто поставил глубокое сверление, а не простое, поменял цикл, вместо 81 стал 83, и там Q добавилось, я так понял с размеров диаметра сверла(но это не точно), и в 83 цикле cld17 умножил на 1000
    • gudstartup
      @Malsev прежде чем куда то что то ставить сравнивайте даташит или maininf.txt чтобы понять насколько перед вами аналогичная система.
    • zedowl
      разобрался какой параметр должен поменяться, у меня 81 цикл, но мне нужен другой, как выбрать другой цикл? мне подсказали, что нужно его выбрать в настройках операции, но я не знаю где это  
    • zedowl
      нет, не новость я даже не знаю какой параметр в коде должен меняться, у меня задание, либо из мм в микроны, либо наоборот   как понять какой цикл у меня выводится в программе? я найду этот цикл в EXTCYCLE и добавлю умножение или деление на 1000
    • maxx2000
      для тебя будет новостью что 1 мм это 1000микрон(0,001мм)? Т.е. если у тебя после запятой 3 знака то это уже в микронах.   
    • zedowl
      Я сделал в sprutcam простецкую модель, добавил траекторию сверления и не могу разобраться с циклами. Я совсем в этом не разбираюсь, у меня дипломный проект, помогите пожалуйста) У меня в коде выводится не тот цикл, я не могу найти тот параметр в циклах с 81 по 87
    • astire721
    • maxx2000
      @davidovka только макросы кнопок стандартных видов, но они были всегда. В 11 версии макросы вынесли в отдельный файл, понаблюдаю.  так то я все настройки сразу сохраняю в стартовый config.pro
    • Anatlijj8
      Добрый день хочу автоматизировать больше кд на лестницы и балконные ограждения.
×
×
  • Создать...