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

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

25.10.2019 в 13:42, vasyam сказал:

Шаг первый ставите Visual Studio

Шаг второй Устанавливаете SolidWorks Api SDK , после этого в Visual Studio появляется шаблон Add-in

Создаете новый проект используя этот шаблон, в нем уже будут созданы события, на нужных событиях вставляете свой код. Остальным макросам ничего мешать не будет, более того можете их потом перенести в Add-In

Не подскажешь как настроить Visual Studio 2019? У меня почему то после установки SDK шаблоны в студии не появляются :(

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


1 час назад, Snake 60 сказал:

Не подскажешь как настроить Visual Studio 2019? У меня почему то после установки SDK шаблоны в студии не появляются :(

В начале ставим студию, а потом SolidWorks Api SDK. Если не помогает то какая-то проблема с путями, русская английская версия, пути для шаблонов в студии изменены и т.д. Вообщем смотрите папку для шаблонов в студии и ищите на компьютере swvbaddin.zip, swcsharpaddin.zip как найдете перекиньте их в папку для шаблонов.

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

В начале ставим студию, а потом SolidWorks Api SDK.

Так и делал.

 

1 час назад, vasyam сказал:

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

Студия на русском языке. SDK инсталятор тоже был на русском (брал с диска дистрибутива SW 2018 SP5.0) Пути к шаблонам не менял.

 

1 час назад, vasyam сказал:

Ищите на компьютере swvbaddin.zip, swcsharpaddin.zip как найдете перекиньте их в папку для шаблонов.

Прогнал поиском, нет таких файлов... Не могли бы поделиться своими?

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

@pps27031991

12 часов назад, pps27031991 сказал:

похоже справится обычная таблица параметров в Excel

Не ответите по таблицам, а там Вам в личку накорябал )

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

похоже справится обычная таблица параметров в Excel

 

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

пристегните таблицу параметров к модели и будет вам счастье в один клик

Спасибо всем за  подсказки.

За видео тоже +

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

Прогнал поиском, нет таких файлов... Не могли бы поделиться своими?

Если только дома посмотрю, но они точно должны в установщике посмотрите тут

https://www.codestack.net/solidworks-api/troubleshooting/addins/sdk-installation/

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

@pps27031991

Не ответите по таблицам, а там Вам в личку накорябал )

в ЛС ничего не пришло

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

@pps27031991

11 минут назад, pps27031991 сказал:

в ЛС ничего не пришло

Отправлял сообщение на вот этот профиль pps270391 это же Вы или я ошибся? Хотел поболтать по вот этой теме

 

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

День добрый!

Роняю знамя изобретателя очередного "велосипеда" (менеджера управлением штриховкой).

Не хватает понимания внутренних механизмов SW генерации видов на чертежах, особенно разрезы.

Если простой разрез вопросов не добавлял, особо. То на ломанных и ступенчатых я зашел в тупик.

 

З.Ы. Для желающих - во вложении исходник и "велосипеда".

 

HatchManager.zip

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

Координаты вершины в точке 0,0 сборки не равны координатам 0,0 полученным программно с вида чертежа. И разница очень существенная. Вот и интересно, что показывают X,Y. 

А вот Z в сборке у меня совпадает с Z с чертежа.

 

Предыдущий мой ответ тоже неправильный. Если вы получали данные вершины с помощью функции Vertex.GetPoint(), то X и Y в вашем случае показывают координаты вершины детали в системе координат этой детали. Для вашей задачи необходимо использовать также функции View.GetViewXform() и свойства Component2.Transform2 и MathTransform.ArrayData.  View.GetViewXform() преобразовывает начало координат модели в начало координат чертежа (матрица вращения, вектор переноса, масштаб).

Там придется использовать матричные вычисления. Так что задача непростая.

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

 ... и опять, здравствуйте !

Не пошла штриховочка в  автоматическом режиме, появился намек на полуавтоматический ( @Shvg спасибо на наводки).

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

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

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

 

З.Ы. за внешность исполнения, просьба, сильно не бить, ибо рабочий прототип...

HatchHelper.zip

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

Предыдущий мой ответ тоже неправильный. Если вы получали данные вершины с помощью функции Vertex.GetPoint(), то X и Y в вашем случае показывают координаты вершины детали в системе координат этой детали.

Не уверен, что это так. Одна из вершин находится в Исходной точке 0,0 детали и в сборке она же находится в Исходной точке 0,0.

Требуется найти ее координаты в пространстве сборочного чертежа.

Или относительно координат вида, или относительно координат листа.

Функция Vertex.GetPoint() показывает для указанной вершины X = 174 мм, например.

От левого нижнего угла вида вершина отстоит примерно на 4 мм.

От левого нижнего угла чертежа вершина отстоит по Х, примерно на 70-80 мм.

Собственно, поэтому и возник вопрос.

Координаты отностельно чего показывает Vertex.GetPoint()?

И можно ли от них перейти к координатам листа?

16.12.2020 в 14:00, Shvg сказал:

Для вашей задачи необходимо использовать также функции View.GetViewXform() и свойства Component2.Transform2 и MathTransform.ArrayData.  View.GetViewXform() преобразовывает начало координат модели в начало координат чертежа (матрица вращения, вектор переноса, масштаб).

Там придется использовать матричные вычисления. Так что задача непростая.

 

Посмотрю...

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

Не уверен, что это так. Одна из вершин находится в Исходной точке 0,0 детали и в сборке она же находится в Исходной точке 0,0.

Требуется найти ее координаты в пространстве сборочного чертежа.

Или относительно координат вида, или относительно координат листа.

Функция Vertex.GetPoint() показывает для указанной вершины X = 174 мм, например.

От левого нижнего угла вида вершина отстоит примерно на 4 мм.

От левого нижнего угла чертежа вершина отстоит по Х, примерно на 70-80 мм.

Собственно, поэтому и возник вопрос.

Координаты отностельно чего показывает Vertex.GetPoint()?

И можно ли от них перейти к координатам листа?

Функцией Vertex.GetPoint() показывают координаты выбранной вершины детали относительно системы координат именно этой детали, а не компонента в сборке. Перейти к координатам листа можно. Функция View.GetViewXForm() возвращает массив из 13 значений, где первые 9 элементов - это матрица вращения, которая показывает поворот системы координат сборки относительно системы координат чертежа, следующие 3 элемента - это вектор переноса начала системы координат сборки в систему координат чертежа, 13 - элемент - масштаб. Свойствами Component2.Transform2 и MathTransform.ArrayData получаете также матрицу вращения, вектор переноса и масштаб компонента, то есть его расположение в сборке. А дальше выходите на вершину.  При этом придется использовать матричные вычисления.

P.S. С ходу похожий на ваш пример решить не удалось. С матрицами давно не работал.... Подсборок у меня не было.

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

....................................

И можно ли от них перейти к координатам листа?

Посмотри этот код. Правда он на C#, но функции SW будут одни и те же.

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

        private void cmdVertex_Click(object sender, EventArgs e)
        {
            SldWorks swApp = GetActiveSolidWorks();
            if (swApp == null)
                return;
            ModelDoc2 swModel = swApp.IActiveDoc2;
            if (swModel == null)
                return;
            int docType = swModel.GetType();
            if (docType != (int)swDocumentTypes_e.swDocDRAWING)
                return;

            SelectionMgr swSelMgr = swModel.ISelectionManager;
            int selCount = swSelMgr.GetSelectedObjectCount();
            if (selCount != 2)
                return;
            SwView swView = null;
            SwEntity swEntity = null;
            Vertex swVertex = null;

            for (int i = 1; i <= selCount; i++)
            {
                swSelectType_e selType = (swSelectType_e)swSelMgr.GetSelectedObjectType2(i);
                switch (selType)
                {
                    case swSelectType_e.swSelDRAWINGVIEWS:
                        swView = swSelMgr.GetSelectedObject5(i) as SwView;
                        break;
                    case swSelectType_e.swSelVERTICES:
                        swVertex = swSelMgr.GetSelectedObject5(i) as Vertex;
                        swEntity = swVertex as SwEntity;
                        break;
                }

            }

            if (swView == null)
                return;
            if (swVertex == null)
                return;

            Sheet swSheet = swView.Sheet;
            double[] arrPrpSheet = swSheet.GetProperties2() as double[]; // нас в этом массиве интересует 3 и 4 члены. Это масштаб листа

            double scale_1 = arrPrpSheet[2];
            double scale_2 = arrPrpSheet[3];


            Component2 swComponent = swEntity.IGetComponent2();
            MathTransform swMathTransform = swComponent.Transform2;
            double[] arrComponentTransform = swMathTransform.ArrayData as double[];

            MathUtility swMathUtility = swApp.IGetMathUtility();

            // получаем необходимые массивы для дальнейшей работы
            double[] mathViewXForm = swView.GetViewXform() as double[]; // 10, 11 и 12 элемент массива - начало координат сборки на виде в системе
                                                                        //  координат листа с учетом масштаба листа. 13 элемент - масштаб листа

            // =====================================================
            // следующие два массива не потребуются. Даны для того, чтобы показать, что ноль вида может не совпадать с нулем сборки на виде.
            double[] mathXForm = swView.GetXform() as double[];
            double[] arrViewPos = swView.Position as double[];
            // =====================================================

            double[] coordVertex = swVertex.GetPoint() as double[]; // координаты вершины в системе коородинат компонента.

            // создаем данные для матрицы 4x4, так как размер mathViewXForm 3x4, а чтобы создать MathTransform нужно иметь массив 4x4
            double[] arrViewXForm = new double[16];
            for (int i = 0; i < 13; i++)
                arrViewXForm[i] = mathViewXForm[i];

            arrViewXForm[13] = 0.0;
            arrViewXForm[14] = 0.0;
            arrViewXForm[15] = 0.0;

            double[] arrComp = new double[3]; 

            // начало системы координат компонента в системе координат сборки.
            arrComp[0] = arrComponentTransform[9];
            arrComp[1] = arrComponentTransform[10];
            arrComp[2] = arrComponentTransform[11];

            // создаем вектор переноса из системы координат сборки в систему координат компонента.
            MathVector vTranslate = swMathUtility.CreateVector(arrComp) as MathVector;

            // создаем вектор выбранной вершины компонента, где начало вектора в начале координат компонента
            MathVector vectorVertex_1 = swMathUtility.CreateVector(coordVertex) as MathVector;
            
            // Тот же вектор, та же точка ноль, только оси X, Y, Z направлены так же как и оси системы координат сборки.
            MathVector swVectorVertex_1 = vectorVertex_1.IMultiplyTransform(swMathTransform) as MathVector;
            // координаты выбранной вершины относительно нуля компонента в координатных осях сборки. В коде не используются
            double[] arrVectorVertex_1 = swVectorVertex_1.ArrayData as double[]; 
                                                                                
            // складываем два вектора 
            MathVector swVectorVertex_2 = vTranslate.Add(swVectorVertex_1) as MathVector;
            // получаем координаты вершины в системе координат сборки. В коде не используются
            double[] arrVectorVertex_2 = swVectorVertex_2.ArrayData as double[];

            // Создаем матрицу 4х4 из данных полученных функцией swView.GetViewXform()
            MathTransform swViewXForm = swMathUtility.CreateTransform(arrViewXForm) as MathTransform;

            // получаем вектор из начала координат сборки до выбранной вершины, только направление осей X, Y, Z 
            // совпадают с осями X, Y, Z чертежа
            MathVector swVectorVertex_3 = swVectorVertex_2.IMultiplyTransform(swViewXForm) as MathVector;
            double[] arrVectorVertex_3 = swVectorVertex_3.ArrayData as double[];

            // учитываем масштаб листа, если нужно.
            double dScale = scale_2 / scale_1;

            // получаем координаты выбранной вершины на сборке в виде в системе координат листа в мм
            double dX_Sheet = (mathViewXForm[9] * dScale + arrVectorVertex_3[0] * dScale)* 1000.0;
            double dY_Sheet = (mathViewXForm[10] * dScale + arrVectorVertex_3[1] * dScale)* 1000.0;

        }

 

  

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

Посмотри этот код. Правда он на C#, но функции SW будут одни и те же.

  Скрыть содержимое


        private void cmdVertex_Click(object sender, EventArgs e)
        {
            SldWorks swApp = GetActiveSolidWorks();
            if (swApp == null)
                return;
            ModelDoc2 swModel = swApp.IActiveDoc2;
            if (swModel == null)
                return;
            int docType = swModel.GetType();
            if (docType != (int)swDocumentTypes_e.swDocDRAWING)
                return;

            SelectionMgr swSelMgr = swModel.ISelectionManager;
            int selCount = swSelMgr.GetSelectedObjectCount();
            if (selCount != 2)
                return;
            SwView swView = null;
            SwEntity swEntity = null;
            Vertex swVertex = null;

            for (int i = 1; i <= selCount; i++)
            {
                swSelectType_e selType = (swSelectType_e)swSelMgr.GetSelectedObjectType2(i);
                switch (selType)
                {
                    case swSelectType_e.swSelDRAWINGVIEWS:
                        swView = swSelMgr.GetSelectedObject5(i) as SwView;
                        break;
                    case swSelectType_e.swSelVERTICES:
                        swVertex = swSelMgr.GetSelectedObject5(i) as Vertex;
                        swEntity = swVertex as SwEntity;
                        break;
                }

            }

            if (swView == null)
                return;
            if (swVertex == null)
                return;

            Sheet swSheet = swView.Sheet;
            double[] arrPrpSheet = swSheet.GetProperties2() as double[]; // нас в этом массиве интересует 3 и 4 члены. Это масштаб листа

            double scale_1 = arrPrpSheet[2];
            double scale_2 = arrPrpSheet[3];


            Component2 swComponent = swEntity.IGetComponent2();
            MathTransform swMathTransform = swComponent.Transform2;
            double[] arrComponentTransform = swMathTransform.ArrayData as double[];

            MathUtility swMathUtility = swApp.IGetMathUtility();

            // получаем необходимые массивы для дальнейшей работы
            double[] mathViewXForm = swView.GetViewXform() as double[]; // 10, 11 и 12 элемент массива - начало координат сборки на виде в системе
                                                                        //  координат листа с учетом масштаба листа. 13 элемент - масштаб листа

            // =====================================================
            // следующие два массива не потребуются. Даны для того, чтобы показать, что ноль вида может не совпадать с нулем сборки на виде.
            double[] mathXForm = swView.GetXform() as double[];
            double[] arrViewPos = swView.Position as double[];
            // =====================================================

            double[] coordVertex = swVertex.GetPoint() as double[]; // координаты вершины в системе коородинат компонента.

            // создаем данные для матрицы 4x4, так как размер mathViewXForm 3x4, а чтобы создать MathTransform нужно иметь массив 4x4
            double[] arrViewXForm = new double[16];
            for (int i = 0; i < 13; i++)
                arrViewXForm[i] = mathViewXForm[i];

            arrViewXForm[13] = 0.0;
            arrViewXForm[14] = 0.0;
            arrViewXForm[15] = 0.0;

            double[] arrComp = new double[3]; 

            // начало системы координат компонента в системе координат сборки.
            arrComp[0] = arrComponentTransform[9];
            arrComp[1] = arrComponentTransform[10];
            arrComp[2] = arrComponentTransform[11];

            // создаем вектор переноса из системы координат сборки в систему координат компонента.
            MathVector vTranslate = swMathUtility.CreateVector(arrComp) as MathVector;

            // создаем вектор выбранной вершины компонента, где начало вектора в начале координат компонента
            MathVector vectorVertex_1 = swMathUtility.CreateVector(coordVertex) as MathVector;
            
            // Тот же вектор, та же точка ноль, только оси X, Y, Z направлены так же как и оси системы координат сборки.
            MathVector swVectorVertex_1 = vectorVertex_1.IMultiplyTransform(swMathTransform) as MathVector;
            // координаты выбранной вершины относительно нуля компонента в координатных осях сборки. В коде не используются
            double[] arrVectorVertex_1 = swVectorVertex_1.ArrayData as double[]; 
                                                                                
            // складываем два вектора 
            MathVector swVectorVertex_2 = vTranslate.Add(swVectorVertex_1) as MathVector;
            // получаем координаты вершины в системе координат сборки. В коде не используются
            double[] arrVectorVertex_2 = swVectorVertex_2.ArrayData as double[];

            // Создаем матрицу 4х4 из данных полученных функцией swView.GetViewXform()
            MathTransform swViewXForm = swMathUtility.CreateTransform(arrViewXForm) as MathTransform;

            // получаем вектор из начала координат сборки до выбранной вершины, только направление осей X, Y, Z 
            // совпадают с осями X, Y, Z чертежа
            MathVector swVectorVertex_3 = swVectorVertex_2.IMultiplyTransform(swViewXForm) as MathVector;
            double[] arrVectorVertex_3 = swVectorVertex_3.ArrayData as double[];

            // учитываем масштаб листа, если нужно.
            double dScale = scale_2 / scale_1;

            // получаем координаты выбранной вершины на сборке в виде в системе координат листа в мм
            double dX_Sheet = (mathViewXForm[9] * dScale + arrVectorVertex_3[0] * dScale)* 1000.0;
            double dY_Sheet = (mathViewXForm[10] * dScale + arrVectorVertex_3[1] * dScale)* 1000.0;

        }

 

  

Спасибо.

К сожалению, сейчас нет физической возможности посидеть и повторить. Как удастся, отпишу.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

Приветствую, подскажите. Средствами API возможно ли, чтобы при открытии файла из сборки (в отдельном окне, не в контексте) автоматически выполнялась команда "Получить доступ для записи"? То есть такой макрос запускался при открытии детали. Без нажатия на кнопку запуска макроса.

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

То есть такой макрос запускался при открытии детали. Без нажатия на кнопку запуска макроса.

https://www.codestack.net/solidworks-api/document/macro-feature/model-load-watcher/

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

Добрый день, коллеги, прошу помощи с  WeldSymbol.

Здача: на чертеже есть обозначения мест пайки и клейки, которые ссылаются на пункт ТТ. необходимо во всех обозначениях заменить текст.

Снимок.JPG

В документации есть IWeldSymbol. SetText(….), выглядит так:

swWeldSymbol.SetText(true, "Left", "BUTT", "Right", "Stagger", (int)swWeldSymbolContourTypes_e.swWeldContourNone);

Успешно работает для всех стандартов кроме ГОСТ. ГОСТовский символ по-видимому устроен как-то иначе и игнорирует значения которые устанавливает SetText().

Прочитать  нужный текст получилось с помощью GetTextAtIndex()


 

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

                    for (int i =0;i<=3;i++)

                    {

                        Debug.Print(aWeldSymbol.GetTextAtIndex(i));                      

                    }

 

Но как этот текст изменить ?!

В Note, например есть SetTextFormatAtIndex(), но в WeldSymbol  или в Annotation, который можно с него получить ничего подобного нет.

Как быть ? 

 

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

Как быть ? 

Ни как - в API нет инструмента для изменения этих параметров.

Только что стучать разработчикам, что бы поправили/добавили в API, а пока, менять ручками.

 

 

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

Как быть ? 

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

Текст искать и заменять в заметке.

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

VT2.jpg

 

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • Mr_Gray
      Если и расфрезеровывать, то обязательно с коррекцией радиуса инструмента G41, чтобы попасть в середину поля допуска. Но лучше все же разверткой или расточной головкой.
    • lem_on
      При хорошей геометрии станка, можно и расфрезеровать. Если неглубокие отверстия, можно и тс сверлом сразу размер получить.
    • Snake 60
      Скорее всего исправляли в конкретной сборке, для конкретных тел. Насколько я помню, надо в самом эскизе профиля заполнить свойство Description
    • Snake 60
      Делаете дырку в свае - вставляете в нее трубу и 2 человеко-силы крутят сваю ) Дёшево и сердито и не нужен никакой планетарный редуктор ))
    • gudstartup
      вы всегда ищите свой путь или будете делать то что вам советуют? с самого начала прежде чем приступать к экспериментам вам нужно было вынуть носитель и сделать образ. diskcopy делает копию гибкого диска на другой а вам надо сделать образ жесткого диска или карты памяти. делайте как советует @Viktor2004 иначе еще чего нибудь сломаете или вам станок не нужен и вы его приобрели для экспериментов ? вот а печатной машинке из прошлого нельзя а вот на синумерике можно - удивительные вещи в настоящем происходят!! на 100 % уверен что там не модуль а либо писимиси ай либо жд @mircomax81 хотите работать в дос почитайте помощь по командам 
    • PuKoLLleT
      Доброго дня всем. Поделитесь опытом,раньше такое не доводилось делать. На торце фланца нужно сделать  восемь отверстий ф17H7 на токарно-фрезерном станке с осью Y ,имеется ManualGuide.В моем понимании нужно просверлить,а затем торцевой фрезой расточить нужный диаметр.Получится такой фокус,или надо разверткой доводить нужный размер?  Стойка Fanuc 0i-Tf.
    • Snake 60
      Всё верно, я даже русификатор делал для него (ушло на это где-то около года). Хороший софт был, я всех знакомых на него подсадил в свое время :) У меня даже где-то образ на виртуалке лежит с SW2014+MechSoft, Жаль, что автодеск его поглотил, а не DS :( А по сути вопроса, проектировал двухступенчатый планетарный редуктор в свое время. Что было нужно: Справочник по планетаркам (автора не помню, если надо поищу), из софта MathCAD + GearTeq (софтина идет вместе с GearTrax, только рассчитывает и моделирует несколько зацеплений согласно выбранной схеме, в том числе планетарки) Ой и ошибаетесь. Звездочки - не равно зубчатые колеса в планетарке) Мы намучились с малой точностью изготовления на эл.эрозии, а Вы лазером ))) Был собран опытный образец редуктора с незакаленными деталями, чисто проверить геометрию, отладить сборку. Так потом начальство этот редуктор сказало испытать в бою, как я не противился)) Помер за пару дней интенсивных нагрузок ))) Материал, термообработка и точности изготовления решают )
    • Snake 60
      @Тихоход  Ещё один вариант - изучать программирование и писать свою программу/макрос. Вот пример конфигуратора двери: https://www.youtube.com/watch?v=wv4HryWQBSk
    • mircomax81
      Посредством Diskcopy можно сделать адекватную копию на флоппи диск?
    • Andrey_kzn
      Да, ведь советовали автору вытащить жёсткий диск и сделать образ. Неужели самому не интересно, как устроен этот старый промкомпьютер? Там может стоять как жёсткий диск, так и CF-карта, или же Disc-on-chip или Disc-on-module.  Как-то очень давно, на подобном промышленном оборудовании (большая печатная машина) я не смог перенести  ПО с родной CF - карты на другую, такого же размера но другой фирмы. Была также станочная оболочка под досом.  Образ я делал Нортон гостом, развернул его на другую CF-карту без проблем. Машина загрузилась нормально и работала ровно 2 дня, на неродной CF-карте,  потом зависла, и отказалась загружаться. Пришлось вызывать сервисника. От него мы узнали, что нельзя просто так взять и заменить карту  - носитель системного ПО, на другую. А полезли мы туда, так как руководство захотело печатать отчёты по работе машины. В станочном ПО такая функция была. Вот только принтер надо было купить у фирмы - производителя этой самой машины. В попытках заставить работать другой принтер мы редактировали файл  AUTOEXEС.BAT, на предмет загрузки драйвера принтера, ничего не получилось, зато перестали открываться некоторые страницы станочного ПО.  Образ у нас был давно снят, и мы развернули его на другую карту памяти. Родную карту я трогать не стал (как чувствовал, что нельзя ). Сервисник восстановил ПО с архивной дискеты на родную карту памяти, и всё заработало. Дискеты с архивами ПО шли вместе с документацией к машине.  Там были дискеты с Досом, станочной оболочкой, параметрами приводов, программой ПЛК. Он же и предупредил нас о предельно аккуратном обращении с родной картой памяти, и посоветовал немедленно сделать образы с архивных дискет, что мы сразу и проделали.. Вот такой сюрприз от машины эпохи Дос.
×
×
  • Создать...