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

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

писал давно, сейчас не могу проверить. Если что не так - напиши, найду рабочий вариант

25 Весь лист собрать в папку ''ИМЯ СБОРКИ - DXF''.swp

а по первому пункту в комплексе сделать такое даже не мечтай, все равно придется допиливать ручками. Могу только сказать сформируй свой шаблон спецификации и сделай шаблоны выносок со ссылками на свойства

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


Всем привет.

Есть кто-нибудь, кому не лень, объяснить мне малохольному, как вставить эскиз на грань?

Имеется переменная типа SldWorks.Face2, и ней та самая грань, попавшая туда ранее...

Задача: выдавить в центре этой грани бобышку... ну, или хотя бы как выбрать эту грань, чтобы потом на неё вставить эскиз.. Дальше я сам попробую.

Спасибо.

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

Есть кто-нибудь, кому не лень, объяснить мне малохольному, как вставить эскиз на грань?

Используем справку, ищем необходимое в русской справке:

https://help.solidworks.com/2018/russian/SolidWorks/sldworks/t_Sketching_on_the_Face_of_a_Part.htm

меняем язык измением адреса ссылки или смотрим адрес ссылки:

https://help.solidworks.com/2018/english/SolidWorks/sldworks/t_Sketching_on_the_Face_of_a_Part.htm

 

15 часов назад, andrew15x5 сказал:

Имеется переменная типа SldWorks.Face2, и ней та самая грань, попавшая туда ранее...

Задача: выдавить в центре этой грани бобышку... ну, или хотя бы как выбрать эту грань, чтобы потом на неё вставить эскиз.. Дальше я сам попробую.

Ищем выше найденной в справке по API:

https://help.solidworks.com/SearchEx.aspx?query=Sketching on the Face of a Part&version=2010&lang=english,enu&prod=api

и вероятно находим нужный пример из справки:

https://help.solidworks.com/2010/english/api/sldworksapi/get_plane_or_face_for_sketch_example_vb.htm

 

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

@Kelny , большое спасибо Вам за подсказку!

Пытаюсь состряпать макрос, чтобы автоматизировать себе работу, и Вы мне очень помогли.

Правда, я ещё только в начале.))

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

День добрый.

Есть непонятность с матрицами трансформации из модели в вид.

Чего хочется: при выборе видимого ребра (Edge), его скрыть, а на его месте нарисовать, для начала, одну линию. ( про метод SketchManager::SketchUseEdge3 знаю ).

 

Для начала рассматриваем случаи, когда вид на листе расположен без выравнивания ( что бы не лезть еще и в матрицы поворота вида относительно листа ).

 

Полазив по интернету (хелп SW и сайт Codestack) набросал код (C#) :

 

 

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

            ModelDoc2 modelDoc = swApp.ActiveDoc;
            SelectionMgr sMgr = modelDoc.ISelectionManager;
            Edge selEdge = sMgr.GetSelectedObject6(1, -1) as Edge;

            Debug.Print("Sel in BreakLine Type: " + (swSelectType_e)sMgr.GetSelectedObjectType3(1, -1));

            MathTransform mt = null;
            MathUtility mU = swApp.GetMathUtility();
            #region Получение MathTransform View_To_Model
            View view = sMgr.GetSelectedObjectsDrawingView2(1, 0);
            mt = view.ModelToViewTransform;
            #endregion

            double[] vTransform = mt.ArrayData;
            Debug.Print("-----------");

            Debug.Print("    Rotate (" + vTransform[0].ToString("###0.0#####") + " " + vTransform[1].ToString("###0.0#####") + " " + vTransform[2].ToString("###0.0#####"));
            Debug.Print("            " + vTransform[3].ToString("###0.0#####") + " " + vTransform[4].ToString("###0.0#####") + " " + vTransform[5].ToString("###0.0#####"));
            Debug.Print("            " + vTransform[6].ToString("###0.0#####") + " " + vTransform[7].ToString("###0.0#####") + " " + vTransform[8].ToString("###0.0#####") + ")");
            Debug.Print("    Scale " + vTransform[12].ToString("###0.0#####") +")");
            Debug.Print("    Translate " + vTransform[9].ToString("###0.0#####") + " " + vTransform[10].ToString("###0.0#####") + " " + vTransform[11].ToString("###0.0#####"));

            
            var sEva = new double[3];
            var eEva = new double[3];

            #region Получение крайних точек EDGE с использованием CURVE
            //var cParam = ee.GetCurveParams3();
            //sEva[0] = cParam.StartPoint[0];
            //sEva[1] = cParam.StartPoint[1];
            //sEva[2] = cParam.StartPoint[2];

            //eEva[0] = cParam.EndPoint[0];
            //eEva[1] = cParam.EndPoint[1];
            //eEva[2] = cParam.EndPoint[2];
            #endregion

            #region Получение крайних точек EDGE с использованием VERTEX
            Vertex srV = selEdge.GetStartVertex();

            sEva[0] = srV.GetPoint()[0];
            sEva[1] = srV.GetPoint()[1];
            sEva[2] = srV.GetPoint()[2];
            Vertex enV = selEdge.GetEndVertex();

            eEva[0] = enV.GetPoint()[0];
            eEva[1] = enV.GetPoint()[1];
            eEva[2] = enV.GetPoint()[2];

            #endregion

            Debug.Print("");
            Debug.Print("    StartPoin  (" + sEva[0].ToString("###0.0#####") + " " + sEva[1].ToString("###0.0#####") + " " + sEva[2].ToString("###0.0#####") + ")");
            Debug.Print("    EndPoin (" + eEva[0].ToString("###0.0#####") + " " + eEva[1].ToString("###0.0#####") + " " + eEva[2].ToString("###0.0#####") + ")");
            Debug.Print("");

            //(modelDoc as DrawingDoc).HideEdge();

            MathPoint sPt = mU.CreatePoint(sEva);
            sPt = sPt.MultiplyTransform(mt);

            MathPoint ePt = mU.CreatePoint(eEva);
            ePt = ePt.MultiplyTransform(mt);

            (modelDoc as DrawingDoc).ActivateView(view.Name);

 

            SketchManager skM = modelDoc.SketchManager;
            skM.CreateLine(
                (sPt.ArrayData[0]  - vTransform[9]) / vTransform[12], (sPt.ArrayData[1] - vTransform[10]) / vTransform[12], (sPt.ArrayData[2] - vTransform[11]) / vTransform[12],
                (ePt.ArrayData[0] - vTransform[9]) / vTransform[12], (ePt.ArrayData[1] - vTransform[10]) / vTransform[12], (ePt.ArrayData[2] - vTransform[11]) / vTransform[12]);

 

            modelDoc.ClearSelection2(true);

 

 

Но, что-то наложения новой линии , с выбранным ребром не происходит.

Может кто подскажет где я чего недопонял ?

 

 

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

Здравствуйте, подскажите в чем может крыться проблема?

При попытке получить имена конфигураций сборки:

Object variable or With variable not set/

когда этот фрагмент кода был в головной - все нормально, для детали тоже все ОК.

 Sub SaveWithOutDrw (swModel As SldWorks.ModelDoc2...

    Dim vConfigName As Variant
    vConfigName = swModel.GetConfigurationNames
   ...
 

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

Скрее всего пропустили

Set swConfigMgr = swModel.ConfigurationManagerconfig

поправлюсь:

Set swConfigMgr = swModel.ConfigurationManager

Код  был правильный. Такая функция существует (swModel.GetConfigurationNames). Надо смотреть, что передается в процедуру SaveWithOutDrw. Поставить точку останова на строке vConfigName = swModel.GetConfigurationNames и посмотреть чему равен swModel.

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

Код  был правильный. Такая функция существует (swModel.GetConfigurationNames). Надо смотреть, что передается в процедуру SaveWithOutDrw. Поставить точку останова на строке vConfigName = swModel.GetConfigurationNames и посмотреть чему равен swModel.

Да. Возможно, в начале процедуры не хватает

 

If swModel Is Nothing Then Exit Sub

 

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

Скрее всего пропустили

Set swConfigMgr = swModel.ConfigurationManagerconfig

поправлюсь:

Set swConfigMgr = swModel.ConfigurationManager

То есть даже не обращаясь напрямую к swConfigMgr это все равно имеет значение? 

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

То есть даже не обращаясь напрямую к swConfigMgr это все равно имеет значение? 

Save Configuration Data Example (VBA) - 2019 - SOLIDWORKS API Help

GetConfigurationNames Method (IModelDoc2) - 2019 - SOLIDWORKS API Help

 

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

Всем привет, подскажите как получить количество сгибов в детали через VBA, в параметрах я могу добавить их, а напрямую как получить ?

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

небольшое замечание в продолжении о конфигурациях.

В примере по ссылке "Save Configuration Data (VBA)"  использован не самый удачный оператор:

                                      status = swModel.ShowConfiguration2(configName)

Он вызывает перестроение модели в очередную конфигурацию. Для исследования свойств очередной конфигурации в нем нет необходимости, т.е. можно ну очень существенно сократить время обработки. Надо всего лишь после активации очередной конфигурации повторить:

Set swCustPropMgr = swConfig.CustomPropertyManager

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

небольшое замечание в продолжении о конфигурациях.

В примере по ссылке "Save Configuration Data (VBA)"  использован не самый удачный оператор:

                                      status = swModel.ShowConfiguration2(configName)

Он вызывает перестроение модели в очередную конфигурацию. Для исследования свойств очередной конфигурации в нем нет необходимости, т.е. можно ну очень существенно сократить время обработки. Надо всего лишь после активации очередной конфигурации повторить:

Set swCustPropMgr = swConfig.CustomPropertyManager

 

Как я понимаю, 

ShowConfiguration2 

как раз и активирует (делает активной) очередную конфигурацию. С которой потом можно работать.

Почему он не удачный? Разве есть выбор?

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

Если у вас много конфигураций и вы хотите именно "посмотреть" их на экране, то да, этот оператор (Show)  ваш. Он "разворачивает" на экране деталь в выбранной вами конфигурации, но это занимает достаточно много времени. Если же вам нужно просто выяснить значение какого-то свойства некой конфигурации и совершенно не интересно как она выглядит, то вполне можно обойтись без "экранизации" этого действия. Что существенно экономит время. Что для этого нужно я уже писал постом выше - после активации нужной конфигурации повторить обращение к менеджеру свойств:  Set swCustPropMgr = swConfig.CustomPropertyManager и вы получите доступ в свойствам выбранной конфигурации без ее "экранизации"

Еще один ньюанс.

Если вам нужно удалить все конфигурации или группу, то существенно ускорить этот процесс можно не выбирая и удаляя их по одной, а, выделив все (в "дереве") :

I_Model.Extension.SelectByID2(ConfigNamesArray(i), "CONFIGURATIONS", 0, 0, 0, True, 0, Nothing, 0)  и потом  удалить хором "выделенные" (I_Model.EditDelete)

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

Если у вас много конфигураций и вы хотите именно "посмотреть" их на экране, то да, этот оператор (Show)  ваш. Он "разворачивает" на экране деталь в выбранной вами конфигурации, но это занимает достаточно много времени. Если же вам нужно просто выяснить значение какого-то свойства некой конфигурации и совершенно не интересно как она выглядит, то вполне можно обойтись без "экранизации" этого действия. Что существенно экономит время. Что для этого нужно я уже писал постом выше - после активации нужной конфигурации повторить обращение к менеджеру свойств:  Set swCustPropMgr = swConfig.CustomPropertyManager и вы получите доступ в свойствам выбранной конфигурации без ее "экранизации"

 

Допустим, но Вы пишите

13 часов назад, v-david сказал:

... после активации очередной конфигурации...

 

А как вы ее активируете?

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

А как вы ее активируете?

Может активация не правильное слово, может коллега имел ввиду выбор, например в цикле.

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

А как вы ее активируете?

А ее не надо активировать. @v-david имел в виду что идет обращение к CustomPropertyManager-у  конкретной конфигурации. И для чтения свойств КОНФИГУРАЦИИ этого достаточно.

Справка: ТЫЦ

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

Может активация не правильное слово, может коллега имел ввиду выбор, например в цикле.

 

28 минут назад, nicomed сказал:

А ее не надо активировать. @v-david имел в виду что идет обращение к CustomPropertyManager-у  конкретной конфигурации. И для чтения свойств КОНФИГУРАЦИИ этого достаточно.

Справка: ТЫЦ

 

Он написал, что

 

14 часов назад, v-david сказал:

небольшое замечание в продолжении о конфигурациях.

В примере по ссылке "Save Configuration Data (VBA)"  использован не самый удачный оператор:

                                      status = swModel.ShowConfiguration2(configName)

 

Вот и почему в примере, получающим превью конфигурации, использован не самый удачный оператор? Для этих целей есть более удачные?

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

Начал с одного, а кончил другим?

Я не имею ничего против, просто хотел для себя уяснить, вдруг я чего-то не понял.

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

Правильно говорят: прежде, чем что-то обсуждать договоритесь о понятиях... Коллеги, я не профессионал в SW и тем более в программировании, поэтому прошу извинить за неточность формулировок и спасибо, что вы поняли мои корявые пояснения

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Demiurg
      Можете выложить свой шаюлон? Я попробовал, картинки выводятся, зависаний нет.  
    • Snake 60
      Не верная информация, видно зависит от железа. У меня не разблокировалось по умолчанию, помогло вот это видео - https://www.youtube.com/watch?v=vmbjWkmItBQ  
    • gudstartup
      @Alexey8107 а отдельное питание туда зачем приходит ? там явно не только трансформатор и фильтр
    • Alexey8107
      Да, я уже изучил те платы от старых ремонтов, там и судя по всему килоомный резистор в параллель обмотке стоит судя по всему(видимо нагрузочный, чтобы обмотка была нагружена всегда, и RC фильтр. Но не уверен на 100% что это обычный трансформатор тока, хотя все говорит об этом). На одной бахнули IGBT очень смачно, так что там не показатель, выгорело и управление ими. На двух 100% рабочие, там контроль напряжения в отвале, но трансы на 100 всего. Еще на одной, если не ошибаюсь шпиндельной, на 400. Там была проблема с рекуперацией. Так что тоже можно ориентироваться на их исправность.
    • mr_Voden
    • gudstartup
      @Alexey8107 подайте 24 в только на spm и посмотрите будет на нем 30 или нет если будет то для начала смотрите датчики тока на силовой плате    там внутри еще схемка есть для выдачи адекватного сигнала на схему контроля тока. если поставите не родной возможны сбои при работе шпинделя. в худшем случае может они окажуться исправны. сейчас не помню какой там уровень по аварии сравните с соседним модулем контроля тока их там 2. их питание тоже проверьте
    • Alexey8107
      Да, здесь я оговорился. Конечно же резисторы на контроль фаз. Тоже об этом думал, т.к. силовуха ну не имеет явных признаков неисправности, да и в принципе даже включается и работает. На данный момент от предыдущих ремонтов остались трансформаторы тока фанук A44L-0001-0165# на 100, 400 и 600 ампер. Причем номер у всех почему то одинаковый, а ампераж разный. Найти документацию на них я даже не пытался, это невозможно. Надо будет снять и проверить. Если кто знает, это обычный трансформатор тока или все таки какое-нибудь чудо на эффекте холла???
    • Kydes
      Пришлите свою почту, отправлю эти файлы 
    • gudstartup
      вот схема кабеля там еще линия esp есть и интерфейс по которому модули сообщают об ошибках сигнальная пара mifa xmifa возможно именно через него ваш psm получает инфу о том что на dc линии кз. возможно что инфа приходит и от spm но вы почему то исключаете замену psm spm целиком а ограничились платой управления
    • kanapello
×
×
  • Создать...