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

Миниатюры в зависимости от конфигурации при экспорте в 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 пользователей

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




  • Сообщения

    • gudstartup
      а вы хоть станок проверяли по программе на изделии на точность прежде чем товарищей этих выгнать? если нет то грешите на самих себя! система в наших краях еще не распространенная поэтому и тем тут нет надо в поднебесную писать
    • AlexArt
      Ну допустим, ты и на другом ресурсе это опубликовал. А не коммуниздил. Но вот продвигать воровство от государства, ворующее из Вики, это верх мерзости.
    • maxx2000
      Ах, да. Фильтры выбора добавили. Теперь можно выбрать только то что видно на первом плане, а не вместе с тем что с обратной стороны детали. В общем надо обновляться. Как раз работёнка на прессформу нарисовалась 
    • maxx2000
      Причина того - Кроилово. Кроилово всегда приводит к попадалову. Месяц простоял сколько мильонов деревянных потеряли? Вопрос риторический. И ещё будет стоять. Как памятник человеческой глупости и жадности.
    • AlexKaz
      "9 июля 1968 года на мышах был проведен самый знаменитый эксперимент американского ученого-этолога Джона Кэлхуна «Вселенная-25». Суть опыта заключалась в создании идеальных условий, где мыши могли бы жить и размножаться, не ведая никаких забот, вдали от хищников и в отсутствие эпидемий и заболеваний. Для этих целей ученый построил специальный загон, куда были помещены четыре пары белых мышей (самцов и самок). В распоряжении мышей всегда была чистая вода и еда в изобилии, специальные гнезда, где можно обустроить себе жилище ― гнезд в загоне хватало для проживания нескольких тысяч мышей. Температура в загоне в среднем составляла около 20 ℃ и была комфортной для мышей. Животные не подвергались никаким влияниям извне и жили в идеальных условиях в свое удовольствие. А дальше началось самое интересное. На первом этапе эксперимента мыши хорошо размножались, вели активный образ жизни, охотно играли. На следующей фазе эксперимента мыши стали есть меньше, перестали наедаться до отвала. На третьей фазе эксперимента, когда в загоне были уже сотни мышей, произошло распределение социальных ролей, стала ярко выраженной иерархия, клановость. Появились так называемые отверженные ― молодые особи, которых другие, взрослые мыши сгоняли в центр загона, не давали им вести нормальный образ жизни, причиняли физический вред. В природе такое, наверное, было бы невозможно, ведь эти мыши-агрессоры просто не дожили бы до старости: их бы съели хищники. Но в загоне Кэлхуна хищников не было, и взрослые мыши начали попросту издеваться над молодняком. Образовались две большие группировки: самцы-одиночки и самки-одиночки. При этом самки-одиночки отказывались спариваться <с менее статусными многочисленными молодыми самцами и с оставшимися старыми статусными> и отвергали ухаживания самцов. У мышей стал проявляться тотальный индивидуализм, мыши не стремились создать семью. На последней, четвертой стадии мышиная популяция стала сокращаться. Появились самцы, которых сам Кэлхун назвал «красивыми» (англ. beautiful ones), из-за отсутствия ран и рубцов. <В оригинале: They never engaged in sexual approaches toward females, and they never engaged in fighting, and so they had no wound or scar tissue. Thus their pelage remained in excellent condition. - Дословный перевод: Они никогда не прибегали к сексуальным подходам к самкам, и они никогда не участвовали в боях, и поэтому у них не было ран или рубцовой ткани. Таким образом, их шерсть сохранилась в отличном состоянии.> Эти мыши не вступали в борьбу за самок и территорию, не проявляли активности к размножению и только питались, спали и чистили шёрстку. У мышей стали проявляться различные формы девиантного поведения, вспышки агрессии. Самки стали проявлять агрессию, защищать себя сами, стали умерщвлять своих детенышей, а затем окончательно отказались размножаться. На пике эксперимента в загоне одновременно проживало чуть более двух тыс. мышей. Еды и гнезд было достаточно для дальнейшего роста популяции, но через четыре года после начала эксперимента Кэлхун остановил свой опыт, потому что в загоне осталось чуть более сотни мышей, и все они уже вышли из репродуктивного возраста. По итогам эксперимента Кэлхун пришел к выводу, что достижение определенной плотности населения и заполнение социальных ролей в популяции приводит к распаду общества" https://physicsoflife.pl/dict/pic/calhoun/calhoun.. https://scientificrussia.ru/articles/utopiya-dlya-mys.. https://ru.wikipedia.org/wiki/Кэлхун,_Джон_(этолог)
    • gudstartup
      @Koels вот в чем дело пока ds609 это предупреждение поэтому F может и не появится если sv601 это значит ошибка. возможно при нагреве радиатора серво определяет это как предупреждение или ваш вентилятор крутиться медленнее чем оригинальный и серва думает что он встал хотяпри этом обычно на экране в строке состояния FAN.мигает больше у меня вариантов нет....  
    • ДОБРЯК
      Решите любым алгоритмом. Тогда будет конструктивный разговор. :=)
    • Fedor
      https://en.wikipedia.org/wiki/List_of_numerical_analysis_topics#Eigenvalue_algorithms     :) 
    • Юрий К.Ф.
      Добрый день. Не нашёл тут тему по стойке Китайско Китайской)) Lynuc N3ME. Видать мне так повезло с её наличием)) Приобрели 5-ти осевой Китаец. В б/у состоянии после удара по оси Z. Отремонтировали по механике, заменили батареи на драйверах, выставили лимиты. Всё Ок. Пригласили со стороны людей которые бы разобрались по операторской части. Те два выходных ковырялись, после сказали покажут расскажут, но за огромные деньги. Не сошлись. После месяц станок простоял, когда включили перестал реагировать на регулировку скорости шпинделя. То есть в режиме Jog, включаем обороты, которые стандартно 2140-2149 об/мин. При регулировке процетности не меняются (сама процентность показывает на мониторе). Так же при включении оборотов через команду M03S300 или другое значение, скорость так же показывает 2140-2149 об/мин. Грешить на тех товарищей с которыми не сошлись по деньгам для обучения, как то не хочется. Поковырялся в настройках шпинделя, вроде всё в норме. Проводку на шпинделе прозвонил, целая. В чём причина, не понятна. Кто нибудь сталкивался с подобным, или с подобной стойкой? Может подсказать варианты причины подобного?
    • ДОБРЯК
×
×
  • Создать...