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

Миниатюры в зависимости от конфигурации при экспорте в exel


ewgen30

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

Доброго дня! Подскажите пожалуйста в какую сторону копать :)

Имеется деталь с несколькими конфигурациями (через таблицу параметров). При экспорте спецификации в exel с галочкой "уменьшенные изображения" в каждой строке отображается  одна и та же миниатюра в независимости от конфигурации. Есть возможность как-то это поправить, а в идеале вообще выбрать ракурс для миниатюр? 

 

ZB9K3jB

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


UnPinned posts
17.02.2023 в 10:43, ewgen30 сказал:

Доброго дня! Подскажите пожалуйста в какую сторону копать :)

Имеется деталь с несколькими конфигурациями (через таблицу параметров). При экспорте спецификации в exel с галочкой "уменьшенные изображения" в каждой строке отображается  одна и та же миниатюра в независимости от конфигурации. Есть возможность как-то это поправить, а в идеале вообще выбрать ракурс для миниатюр? 

 

ZB9K3jB

Видимо, только программу надо писать.

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

Видимо, только программу надо писать.

Можно примерно так, только здесь без EXCEL:

        public static List<string> CreatePreviewImageAllConfigurations(SldWorks swApp)
        {
            int THREAD_SLEEP_MILISEC = 500;

            List<string> names = new List<string>();
            ModelDoc2 model = swApp.ActiveDoc;

            double transitionTime = SetViewTransiotionOnZero(swApp); //устанавливаем отрисовку времени поворота изображения в 0
            SetIsometricView(model); // делаем изометрический вид, по желанию делаем любой другой
            Thread.Sleep(THREAD_SLEEP_MILISEC); // Хоть время поворота и устанавливаем в 0, но не всегда SW успевает все отработать, так что программа чуток ожидает.
            foreach (string item in model.GetConfigurationNames())
            {
                model.ShowConfiguration2(item);
                Thread.Sleep(THREAD_SLEEP_MILISEC);
                string name = GetImagePath(model);
                CreateBmpImage(name, model);
                names.Add(name);
            }
            RestoreTransitionTime(transitionTime, swApp); //восстанавливаем исходное  время поворота изображения
            return names;
        }

        private static string GetImagePath(ModelDoc2 model)
        {
            string fileName = model.GetPathName() + @"_" + (model.GetActiveConfiguration() as Configuration).Name;
            return fileName + @".bmp";
        }


        private static double SetViewTransiotionOnZero(SldWorks app)
        {
            double currentTransitionTime = app.GetUserPreferenceDoubleValue((int)swUserPreferenceDoubleValue_e.swViewAnimationSpeed);
            app.SetUserPreferenceDoubleValue((int)swUserPreferenceDoubleValue_e.swViewAnimationSpeed, 0);
            return currentTransitionTime;
        }

        private static void RestoreTransitionTime(double time, SldWorks app)
        {
            app.SetUserPreferenceDoubleValue((int)swUserPreferenceDoubleValue_e.swViewAnimationSpeed, time);
        }

        private static void SetIsometricView(ModelDoc2 model)
        {
            model.ShowNamedView2("", 7);
            model.ViewZoomtofit2();
        }


        private static void CreateBmpImage(string fileName, ModelDoc2 model)
        {
            int PREVIEW_IMAGE_WIGTH = 200; // размеры создаваемого изображения
            int PREVIEW_IMAGE_HEIGTH = 200;

            bool imResult = model.SaveBMP(
                fileName,
                PREVIEW_IMAGE_WIGTH,
                PREVIEW_IMAGE_HEIGTH
                );
        }

 

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

GetActiveConfiguration

Покажет изображение последней сохраненной на диск конфигурации.

Для показа изображения нужной конфигурации надо использовать

ShowConfiguration2

Недавно выяснил )

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

Покажет изображение последней сохраненной на диск конфигурации.

Для показа изображения нужной конфигурации надо использовать




ShowConfiguration2

Недавно выяснил )

Перед вызовом метода GetImagePath, в цикле предыдущего метода как раз ShowConfiguration2  и вызывается ....

TestingApp.exe

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

Перед вызовом метода GetImagePath, в цикле предыдущего метода как раз ShowConfiguration2  и вызывается ....

Ой. Извините. Проморгал.

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

Перед вызовом метода GetImagePath, в цикле предыдущего метода как раз ShowConfiguration2  и вызывается ....

TestingApp.exe 17 \u041a\u0431 · 4 скачивания

Сказать, что я в программировании ничего не понимаю - это ничего не сказать)

Запустив вашу программу получил в папке с деталью *.bmp изображения различных конфигураций. По задумке теперь нужно из вручную (или так же программно-магическим методом) вставить в exel спецификацию?

И еще вопрос от дилетанта: этот код, который Вы написали в каком "редакторе" можно подправить, для более тонкой настройки? (увеличить разрешение и размер изображения, отцентровать и использовать диметрию, вместо изометрии)

 

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

Сказать, что я в программировании ничего не понимаю - это ничего не сказать)

Запустив вашу программу получил в папке с деталью *.bmp изображения различных конфигураций. По задумке теперь нужно из вручную (или так же программно-магическим методом) вставить в exel спецификацию?

И еще вопрос от дилетанта: этот код, который Вы написали в каком "редакторе" можно подправить, для более тонкой настройки? (увеличить разрешение и размер изображения, отцентровать и использовать диметрию, вместо изометрии)

 

Просто так не переделаете - это на C# код - он компилируется... к тому же это только чисто функционал программы, без всякого вспомогательного, типа обращения к самому SW и т.д. и т.п.

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

Просто так не переделаете - это на C# код - он компилируется... к тому же это только чисто функционал программы, без всякого вспомогательного, типа обращения к самому SW и т.д. и т.п.

Может, проще ковырять через макросы?

Ссылка на сообщение
Поделиться на других сайтах
20.02.2023 в 11:24, nicomed сказал:

Можно примерно так, только здесь без EXCEL:

        public static List<string> CreatePreviewImageAllConfigurations(SldWorks swApp)
        {
            int THREAD_SLEEP_MILISEC = 500;

            List<string> names = new List<string>();
            ModelDoc2 model = swApp.ActiveDoc;

            double transitionTime = SetViewTransiotionOnZero(swApp); //устанавливаем отрисовку времени поворота изображения в 0
            SetIsometricView(model); // делаем изометрический вид, по желанию делаем любой другой
            Thread.Sleep(THREAD_SLEEP_MILISEC); // Хоть время поворота и устанавливаем в 0, но не всегда SW успевает все отработать, так что программа чуток ожидает.
            foreach (string item in model.GetConfigurationNames())
            {
                model.ShowConfiguration2(item);
                Thread.Sleep(THREAD_SLEEP_MILISEC);
                string name = GetImagePath(model);
                CreateBmpImage(name, model);
                names.Add(name);
            }
            RestoreTransitionTime(transitionTime, swApp); //восстанавливаем исходное  время поворота изображения
            return names;
        }

        private static string GetImagePath(ModelDoc2 model)
        {
            string fileName = model.GetPathName() + @"_" + (model.GetActiveConfiguration() as Configuration).Name;
            return fileName + @".bmp";
        }


        private static double SetViewTransiotionOnZero(SldWorks app)
        {
            double currentTransitionTime = app.GetUserPreferenceDoubleValue((int)swUserPreferenceDoubleValue_e.swViewAnimationSpeed);
            app.SetUserPreferenceDoubleValue((int)swUserPreferenceDoubleValue_e.swViewAnimationSpeed, 0);
            return currentTransitionTime;
        }

        private static void RestoreTransitionTime(double time, SldWorks app)
        {
            app.SetUserPreferenceDoubleValue((int)swUserPreferenceDoubleValue_e.swViewAnimationSpeed, time);
        }

        private static void SetIsometricView(ModelDoc2 model)
        {
            model.ShowNamedView2("", 7);
            model.ViewZoomtofit2();
        }


        private static void CreateBmpImage(string fileName, ModelDoc2 model)
        {
            int PREVIEW_IMAGE_WIGTH = 200; // размеры создаваемого изображения
            int PREVIEW_IMAGE_HEIGTH = 200;

            bool imResult = model.SaveBMP(
                fileName,
                PREVIEW_IMAGE_WIGTH,
                PREVIEW_IMAGE_HEIGTH
                );
        }

 

 

Если еще на перед созданием картинки скрывать дерево построения с помощью HideFeatureManager, картинка получается ближе центру и изображение модели занимает почти весь размер картинки.

Скрытый текст

Брасол. Проект. Изображение.jpg

Прошу извинения у ТС. Но раз уж пошел разговор...

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • malvi.dp
      Допилил. Поддерживает многолистовые чертежи Начинает работу при нажатии на кнопку макроса: -при нахождении измененных (установлена галочка "Измененное значение") размеров окрашивает их в красный цвет; -если с измененного размера снята галочка "Измененное значение", т.е. он стал обычным - цвет становится обычным; -по окончании работы в сообщении выводится статистика найденных измененных размеров, если они есть. Тестировался на sw2016 и sw2020.   ChangeColorForOverridedDimensions.zip   Да, что-то прошло не так... Уже поправил.
    • maxx2000
      Я скорее согласен с Надеждой Януарьевной
    • Koels
      Мотора 54 градуса, что на 6 градусов больше соседнего станка, вентеляторы в норме да. Ещё хочу сравнить нагрузку координаты с соседним станком, но пока не дают. У этих двух станков проблемы с охлаждением, на соседнем стоит автомобильный радиатор для охлаждения масла. xD
    • Bot
      Dassault Systèmes Reports Solid First Quarter Results And Reaffirms Full-Year Objectives Просмотр полной статьи
    • Ninja
    • Ninja
      В зимнее время водители устанавливают на колёса специальные цепи против скольжения. В мире разработано множество видов цепей и способов их установки. Японцы применяют "цепи Абэ". Кто этот великий инженер? Это знаменитый японский писатель Кобо Абэ. Для уединенного писательского труда Абэ купил домик в горах. А в горах зима ранняя, снежная, затяжная. Без цепей на колёсах можно и улететь с обрыва. Абэ периодически заводил машину и спускался в долину. Почту получить/отправить, в магазине продукты купить, ящик рисовой водки. (Известное дело: насухую великую книгу не напишешь). В долине приходилось цепи снимать. По правилам цепи запрещается применять при отсутствии на дороге снежного покрова. В те времена для установки/снятия цепи требовалось домкратом поднимать каждое колесо. В машине 4 колеса. Товарищу Абэ приходилось корячиться с домкратом. При этом в самых нелитературных выражениях комментируя политику правящей партии и все домкраты в мире. Купил в магазине бухлишко-закусь. Поехал домой в горы. А там снег, скользко. Цепи требуются. Опять писатель и драматург Абэ домкрат крутит. Всё это насмерть надоело Абэ. Обратился к компаниям-производителям: придумайте способ установки цепей без домкрата! Но производители ничего не придумали. Или не захотели. Тогда Абэ сам придумал способ установки цепей без необходимости поднимать колесо. Послал изобретение на конкурс. И неожиданно получил призовое место и патент. Новый способ установки цепей быстро завоевал популярность. Так и пошло у японцев - "цепи Абэ". Кобо Абэ не получил Нобелевскую премию по литературе. Уже выдвигался, уже все были уверены в том, что он её получит. Но не успели, писатель умер. А это всё дурацкие цепи виноваты. Сколько времени он потерял в установке/снятии цепей? Сколько времени, вместо того чтобы писать, он крутил домкрат? Вот и не успел. https://ru.ruwiki.ru/wiki/Абэ,_Кобо
    • gudstartup
      приемлимо. температуру мотора посмотрите. если вентилятор нормально вращается и его скорость соответствует оригинальному а также контакт в разъеме нормальный а F все равно появляется то даже не знаю что у вас может быть так как привод у вас новый
    • Koels
      Хмм, я думал раз она вылазит даже в простое, то Z координата висит на тормозе и дело не в этом. Спасибо за мысль, щас узнаю. Вообще у нас рядом стоит точно такая же макина, точь в точь и там таким проблем нет. Много заказов и отсутствие специалистов сделало свое дело. :) @gudstartup, 58% нагрузка на координату
    • mrVladimir
      Что-то я немного засомневался. Если решим брать новое ЧПУ, то искать точно такое же необходимо по номеру сзади корпуса (пластикового пластмассового) - так? А если брать только плату (материнскую или как ее лучше назвать...), на которой установлена (запаена) микросхема 1 на моих фото выше, то искать плату необходимо по номеру, который указан на самой плате - так? В моем случае : ЧПУ : A02B-0321-B520. Код на плате : A20B-8201-0081/01A. Если, допустим, мы покупаем ЧПУ A02B-0321-B520 - будет ли это гарантией того, что в нем установлена плата A20B-8201-0081/01A. И можно ли будет его считать таким же. И с отдельно приобретаемой платой тоже самое - если номер на ней полностью совпадает с нашим, значит ли это, что она полностью идентична. P.S. : извиняюсь за , возможно, навязчивые вопросы. Просто не хотелось бы попасть впросак из-за своей некомпетентности. такой файл есть, но мне говорили, что после снятия архивов, его лучше вообще никогда нигде ни использовать. А на каком этапе он нам может понадобиться?. Если, как говорил Виктор, мы зальем архив SRAM на старый модуль (ROM-SRAM), установленный в новое ЧПУ, то и файл OPRMINF не нужен. Правильно же?
    • Slavdos
      Доброе. делюсь 1 внедренным китайцем. купили у ЛЛС MARVEL PRO 6000-3015.HGT , 2 шт , с автоматизацией. станки неплохие, интерфейс русские, достаточно дружелюбен. за автоматизацию зря переплатили, китай похоже в этом сильно уступает европе. из неожиданностей- резка воздухом дает неудаляемый грат, по сути необходимы зачистные станки.
×
×
  • Создать...