Добрушанка Опубликовано 3 мая, 2008 Поделиться Опубликовано 3 мая, 2008 (изменено) В первом уроке я покажу, как создать и выполнить программу на Visual Basic. Открываем редактор Visual Basic (Инструменты/Макрос/Редактор Visual Basic). Открывается такое окно. Дважды щелкаем мышкой по ThisDrawing. Набираем следующий текст: Sub Test() MsgBox "Hello World!"End Sub Запускаем программу, нажимая кнопку со стрелочкой. Получаем вот такое окно. У нас получилась первая программа, которая выводит сообщение. Теперь сохраним ее, нажав кнопку "Сохранить" под именем Project.dvb Чтобы потом открыть эту программу, нужно нажать Инструменты/Макрос/Загрузить проект... и выбрать Project.dvb, а затем открыть редактор Visual Basic. Изменено 4 мая, 2008 пользователем Добрушанка Ссылка на сообщение Поделиться на другие сайты Поделиться
Добрушанка Опубликовано 3 мая, 2008 Автор Поделиться Опубликовано 3 мая, 2008 (изменено) Теперь построим окружность и отрезок. Окружность с центром в точке (2, 1) и радиуса 1.Отрезок с началом в точке (0, 0) и концом в точке (2, 1). Открываем Visual Basic и пишем следующую программу. Sub CL() ' Построение окружности ' Описываем используемые переменные для окружности Dim circleObj As AcadCircle Dim centerPoint(0 To 2) As Double Dim radius As Double ' Координаты центра окружности centerPoint(0) = 2: centerPoint(1) = 1: centerPoint(2) = 0 ' Радиус radius = 1 ' Команда построения окружности по заданным параметрам Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius) ' Построение отрезка ' Описываем используемые переменные для отрезка Dim lineObj As AcadLine Dim startPoint(0 To 2) As Double Dim endPoint(0 To 2) As Double ' Задаем координаты начала отрезка startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0 ' Задаем координаты конца отрезка endPoint(0) = 2: endPoint(1) = 1: endPoint(2) = 0 ' Команда построения отрезка по заданным параметрам Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint) ZoomAllEnd Sub Может быть Вам покажется, что здесь много набирать, тогда можете пропускать комментарии в программе (комментарии начинаются с апострафа), или просто скопировать текст в окно редактора Visual Basic. После запуска программы мы получим следующую картинку. Теперь объясняю, что мы написали. Перед тем, как создать какой-либо объект в AutoCAD, нужно задать все его параметры.Например, для окружности - это координаты центра и радиус, для отрезка - это координаты начала и конца отрезка. В строчке Dim centerPoint(0 To 2) As Doubleмы описываем массив centerPoint, который будет содержать в себе координаты центра окружности. В строчке Dim radius As Doubleмы описываем переменную radius, которая отвечает за радиус окружности. Все названия переменных и массивов мы можем задавать произвольно. В строчке centerPoint(0) = 2: centerPoint(1) = 1: centerPoint(2) = 0мы присваеваем координате X центра окружности значение 2, а координате Y значение 1.Последнее значение в массиве centerPoint(2) = 0 отвечает за координату Z, но так как мы рисуем на плоскости, то везде будем ее присваивать нулю. Следующая команда Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius)рисует окружность, у которой координаты центра забираются из массива centerPoint, а радиус из переменной radius. Если вы разобрались с этой программой, то остальное пойдет легко, так как любая основа состоит из отрезков и окружностей. Изменено 4 мая, 2008 пользователем Добрушанка Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavelina Опубликовано 3 мая, 2008 Поделиться Опубликовано 3 мая, 2008 Добрушанка, Вы , конечно, гений! Но запаситесь терпением и не бейте нас чайников по чайникам. Что такое Dim? Когда слово пишется раздельно а когда слитно? Почему при слитном написании слова вторая его часть начинается с большой буквы? И где посмотреть правила синтаксиса? У меня программа на английском языке, поэтому справку мне читать бессмысленно. В программировании я - полный чайник :))) PavelinaМой "домик"Юбки Ссылка на сообщение Поделиться на другие сайты Поделиться
Кадрен Опубликовано 3 мая, 2008 Поделиться Опубликовано 3 мая, 2008 Вот это да. Как сказала одна форумчанка:"Я на швейный форум попала?".Добрушанка, спасибо за такое начало. Теперь уж мне от автокада не отвертеться. Нельзя объять необъятное, но до чего же хочется.мой сайт. Тренинги по 3д конструированию Ссылка на сообщение Поделиться на другие сайты Поделиться
Иванофф Опубликовано 3 мая, 2008 Поделиться Опубликовано 3 мая, 2008 (изменено) Теперь построим окружность и отрезок.Окружность с центром в точке (2, 1) и радиуса 1.Отрезок с началом в точке (0, 0) и концом в точке (2, 1)...................................................... всетаки для каждого языка есть своя область применения. в леко это записывается как т1:=точка(0,0);т2:=точка(2,1);отрезок(т1,т2);дуга(т2,1,0,360); или в две строки о1:=отрезок(точка(0,0),точка(2,1));д1:=дуга(точка(2,1),1,0,360); в графисе или подобных программах тоже будет не сложней. нужно ли себя мучить Visual Basic Изменено 3 мая, 2008 пользователем Иванофф Выкройки для всех Ссылка на сообщение Поделиться на другие сайты Поделиться
Natamoda Опубликовано 4 мая, 2008 Поделиться Опубликовано 4 мая, 2008 (изменено) Добрушанка, огромное спасибо! Наконец-то осуществится моя мечта - научиться программировать элементарные построения. Нам всем крупно повезло, что наш добровольный учитель знает и программирование, и специфику конструирования одежды, и уровень подготовки учеников. Т. к. я сравнительно неплохо знаю автокад, то хотела бы именно его изучить и в плане программирования. Зачем мне изучать другие программы (при этом их покупать), чтобы освоить программирование.У кого есть Леко и Графис - не имеет смысл изучать автокад. Хорошо, что есть выбор. Хороша та программа, которую хорошо освоил. Изменено 4 мая, 2008 пользователем Natamoda Мой блог 3Д лекала дистанционно Ссылка на сообщение Поделиться на другие сайты Поделиться
Natamoda Опубликовано 4 мая, 2008 Поделиться Опубликовано 4 мая, 2008 (изменено) У меня программа на английском языке, поэтому справку мне читать бессмысленно. В программировании я - полный чайник :))) У меня программа на русском языке и справка тоже, но именно программирование в справке изложенно на английском.Добрушанка, готовьтесь, мы будем задавать самые глупые вопросы. Хорошо, когда есть, кому их задать. Изменено 4 мая, 2008 пользователем Natamoda Мой блог 3Д лекала дистанционно Ссылка на сообщение Поделиться на другие сайты Поделиться
Добрушанка Опубликовано 4 мая, 2008 Автор Поделиться Опубликовано 4 мая, 2008 (изменено) Что такое Dim? Когда слово пишется раздельно а когда слитно? Почему при слитном написании слова вторая его часть начинается с большой буквы? И где посмотреть правила синтаксиса? Dim - это служебное слово в VB (Visual Basic), которое используется для описания переменных. Например, Dim radius As Double означает, что мы объявляем переменную radius типа Double (где Double - это действительное число).Большие и мальнькие буквы VB воспринимает одинаково, т.е. можете писать как большими, так и маленькими, а он сам потом исправляет.Служебные слова обозначаются с большой буквы и они синего цвета (VB автоматически исправляет на большую букву).Правила синтаксиса мы будем осваивать постепенно.Visual Basic используется не только в AutoCAD, но и в MS Word, Excel, Access и др. Справка по VB везде только на английском языке. Изменено 4 мая, 2008 пользователем Добрушанка Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavelina Опубликовано 4 мая, 2008 Поделиться Опубликовано 4 мая, 2008 Вчера уже очень поздно было, поэтому я только попробовала, сегодня займусь плотнее. У меня еще один вопрос: обязательно ли перед руским пояснительным ( насколько я понимаю) текстом ставить знак апострофа. Кстати вчера ночью я его так и не нашла у себя на клавиатуре :))) Я конечно попробовала писать без него - программа страшно ругается непонятными словами. Победила тем, что просто поставила несколько пробелов перед текстом. Но не проверяла работает ли... PavelinaМой "домик"Юбки Ссылка на сообщение Поделиться на другие сайты Поделиться
Добрушанка Опубликовано 4 мая, 2008 Автор Поделиться Опубликовано 4 мая, 2008 Да, перед любым пояснительным текстом (комментариями) нужно ставить апостроф. Он находится на латинской раскладке клавиатуры, где русская буква "Э". Иначе программа не запустится, так как будет считать комментарии командами, которых она не знает. Ссылка на сообщение Поделиться на другие сайты Поделиться
Добрушанка Опубликовано 4 мая, 2008 Автор Поделиться Опубликовано 4 мая, 2008 (изменено) Построим прямоугольник A1A2A3A4, длины сторон которого равны a и b. Sub Pramougolnik() a = 60 b = 30 ' Описываем все точки, из которых будет состоять наш прямоугольник Dim A1(0 To 2) As Double Dim A2(0 To 2) As Double Dim A3(0 To 2) As Double Dim A4(0 To 2) As Double ' Вычисляем координаты каждой точки A1(0) = 0: A1(1) = 0: A1(2) = 0 A2(0) = 0: A2(1) = a: A2(2) = 0 A3(0) = b: A3(1) = a: A3(2) = 0 A4(0) = b: A4(1) = 0: A4(2) = 0 ' Строим четыре отрезка, соединяя соответствующие точки Dim lineObj As AcadLine Set lineObj = ThisDrawing.ModelSpace.AddLine(A1, A2) Set lineObj = ThisDrawing.ModelSpace.AddLine(A2, A3) Set lineObj = ThisDrawing.ModelSpace.AddLine(A3, A4) Set lineObj = ThisDrawing.ModelSpace.AddLine(A4, A1) ZoomAllEnd Sub Запускаем программу, получаем прямоугольник со сторонами 60x30.Вот, что получится, если запустить несколько раз программу, меняя значения a и b. (a = 80, b = 40; a = 100, b = 100) Названия переменных (в нашем случае это точки A1, A2, A3 и A4) не могут начинаться с цифр, только с букв. В имени переменной нельзя использовать русские буквы, только латинские. Имя переменной A1 и a1 для VB одно и тоже. Изменено 4 мая, 2008 пользователем Добрушанка Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavelina Опубликовано 4 мая, 2008 Поделиться Опубликовано 4 мая, 2008 А как мы вычисляем координаты? Строим и подсматриваем на чертеже? PavelinaМой "домик"Юбки Ссылка на сообщение Поделиться на другие сайты Поделиться
Добрушанка Опубликовано 4 мая, 2008 Автор Поделиться Опубликовано 4 мая, 2008 (изменено) Исходя из рисунка прямоугольника, примем точку A1 за начало координат, тогда координаты точек будут A1(0, 0), A2(0, a), A3(b, a) и A4(b, 0). Если принять за начало координат другую точку, то соответственно поменяются и координаты всех точек. Изменено 4 мая, 2008 пользователем Добрушанка Ссылка на сообщение Поделиться на другие сайты Поделиться
Добрушанка Опубликовано 4 мая, 2008 Автор Поделиться Опубликовано 4 мая, 2008 Построим четырехугольник A1A2A3A4, у которого A1A2=a, A1A4=b, A4A3=c.Вычислим координаты середин отрезков A2A3 и A1A4, получим точки H1 и H2, и соединим их отрезком. Sub Trapecia() a = 60b = 30c = 80 ' Описываем все точки, из которых будет состоять наш четырехугольникDim A1(0 To 2) As DoubleDim A2(0 To 2) As DoubleDim A3(0 To 2) As DoubleDim A4(0 To 2) As DoubleDim H1(0 To 2) As DoubleDim H2(0 To 2) As Double ' Вычисляем координаты каждой точки A1(0) = 0: A1(1) = 0: A1(2) = 0A2(0) = 0: A2(1) = a: A2(2) = 0A3(0) = b: A3(1) = c: A3(2) = 0A4(0) = b: A4(1) = 0: A4(2) = 0 ' Вычислим координаты точек H1 и H2H1(0) = (A2(0) + A3(0)) / 2: H1(1) = (A2(1) + A3(1)) / 2: H1(2) = 0H2(0) = (A1(0) + A4(0)) / 2: H2(1) = (A1(1) + A4(1)) / 2: H2(2) = 0 ' Строим отрезки, соединяя соответствующие точкиDim lineObj As AcadLine Set lineObj = ThisDrawing.ModelSpace.AddLine(A1, A2)Set lineObj = ThisDrawing.ModelSpace.AddLine(A2, A3)Set lineObj = ThisDrawing.ModelSpace.AddLine(A3, A4)Set lineObj = ThisDrawing.ModelSpace.AddLine(A4, A1)Set lineObj = ThisDrawing.ModelSpace.AddLine(H1, H2) ZoomAllEnd Sub Запускаем программу и получаем следующий рисунок. Координаты (x,y) середины отрезка с концами в точках (x1,y1) и (x2,y2) находятся по формулам x=(x1+x2)/2 и y=(y1+y2)/2. Координаты точек H1 и H2 мы вычислили по этим формулам. Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavelina Опубликовано 4 мая, 2008 Поделиться Опубликовано 4 мая, 2008 Повторив описанные действия удается получить тот же результат. Но понять логику вычисления координат мне пока не удается. В общем пока это напоминает перерисовывание иероглифов. Высунув язык и пытаясь понять что же собственно я делаю, что-то получается, но без шпаргалки, не подсматривая каждую закорючку и знак, я это не повторю :)) PavelinaМой "домик"Юбки Ссылка на сообщение Поделиться на другие сайты Поделиться
Natalya Опубликовано 5 мая, 2008 Поделиться Опубликовано 5 мая, 2008 Добрушанка, чтобы рассчитать координаты, наверное всё равно надо сделать предварительные расчёты в Ексель и загнать туда все формулы? Или сразу писать формулу в VB?Наверное я стереотипно мыслю. Мои вязалочки Ссылка на сообщение Поделиться на другие сайты Поделиться
Natalya Опубликовано 5 мая, 2008 Поделиться Опубликовано 5 мая, 2008 ---------------------------Microsoft Visual Basic---------------------------Compile error: Statement invalid outside Type block---------------------------OK Help ---------------------------У меня макрос споткнулся на этом месте. dimlineObj As AcLineSpasingStyle АвтоКад 2008 уже имеет в списке команды, когда набираешь As автоматически появляется список команд там AcLine нет, только AcLineSpasingStyle даже если я пишу вручную AcLine всё равно не работает.Вот мой макрос:Sub cl()Dim circleobj As AcadCircleDim centerpoint(0 To 2) As DoubleDim radius As Doublecenterpoint(0) = 2: centerpoint(1) = 1: centerpoint(2) = 0radius = 1Set circleobj = ThisDrawing.ModelSpace.AddCircle(centerpoint, radius)dimlineObj As AcLineSpacingStyleDim startpoint(0 To 2) As DoubleDim endpoint(0 To 2) As Doublestartpoint(0) = 0: startpoint(1) = 0: startpoint(2) = 0endpoint(0) = 2: endpoint(1) = 1: endpoint(2) = 0:Set lineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)ZoomAllEnd SubМожет чего пропустила, вроде проверила, всё на месте. Мои вязалочки Ссылка на сообщение Поделиться на другие сайты Поделиться
Цветы Опубликовано 5 мая, 2008 Поделиться Опубликовано 5 мая, 2008 Построим четырехугольник A1A2A3A4, у которого A1A2=a, A1A4=b, A4A3=c.Посмотрите пожалуйста ворд документ Где-то ошибка у меня а найти не могуSub_P.doc "Каждый может ошибиться", - сказал ежик, слезая с кактуса. Ссылка на сообщение Поделиться на другие сайты Поделиться
Natamoda Опубликовано 5 мая, 2008 Поделиться Опубликовано 5 мая, 2008 Привет Девочки! Я из Эстонии. Очень хачу научится моделировать выкройки но....?, проблема в том, что я даже не очень понимаю с чего начать и чем это может закончится.А под моделированием вы понимаете программирование? Так сейчас все находятся на этой стадии. Это только первые уроки и до программирования основы ещё очень далеко. Мой блог 3Д лекала дистанционно Ссылка на сообщение Поделиться на другие сайты Поделиться
Natalya Опубликовано 5 мая, 2008 Поделиться Опубликовано 5 мая, 2008 (изменено) Вычислим координаты точек H1 и H2H1(0) = (A2(0) + A3(0)) / 2: H1(1) = (A2(1) + A3(1)) / 2: H1(2) = 0H2(0) = (A1(0) + A4(0)) / 2: H2(1) = (A1(1) + A4(1)) / 2: H2(2) = 0Паника прошла, разобралась, в третьем макросе координаты точек Н1 и H2 получились несколько иначе.H1(0) = (A1(0) + A4(0)) / 2: H1(1) = (A1(1) + A4(1)) / 2: H1(2) = 0H2(0) = (A2(0) + A3(0)) / 2: H2(1) = (A2(1) + A3(1)) / 2: H2(2) = 0Интересно, надо продолжать разбираться Спасибо Добрушанке! Изменено 5 мая, 2008 пользователем Natalya Мои вязалочки Ссылка на сообщение Поделиться на другие сайты Поделиться
Добрушанка Опубликовано 5 мая, 2008 Автор Поделиться Опубликовано 5 мая, 2008 Добрушанка, чтобы рассчитать координаты, наверное всё равно надо сделать предварительные расчёты в Ексель и загнать туда все формулы? Или сразу писать формулу в VB?Наверное я стереотипно мыслю.Программа на VB должна по возможности работать автономно, без использования других программ. Если есть возможность вычислить все в программе VB, то нужно этим пользоваться, не привлекая другие программы.Обычно в построении все начинается с какой-то одной точки, которую можно принять за начало координат. А далее относительно нее все остальные точки и строяться. Это тоже самое как мы строим на бумаге, откладываем вниз, влево, вправо или вверх на заданное расстояние от этой точки. Ссылка на сообщение Поделиться на другие сайты Поделиться
Добрушанка Опубликовано 5 мая, 2008 Автор Поделиться Опубликовано 5 мая, 2008 АвтоКад 2008 уже имеет в списке команды, когда набираешь As автоматически появляется список команд там AcLine нет, только AcLineSpasingStyle даже если я пишу вручную AcLine всё равно не работает. Версия Visual Basic не меняется с времен АвтоКад 2000. Список команд появляется везде в VB. Линия задается не комадой AcLine, а командой AcadLine. Ссылка на сообщение Поделиться на другие сайты Поделиться
Добрушанка Опубликовано 5 мая, 2008 Автор Поделиться Опубликовано 5 мая, 2008 Паника прошла, разобралась, в третьем макросе координаты точек Н1 и H2 получились несколько иначе.H1(0) = (A1(0) + A4(0)) / 2: H1(1) = (A1(1) + A4(1)) / 2: H1(2) = 0H2(0) = (A2(0) + A3(0)) / 2: H2(1) = (A2(1) + A3(1)) / 2: H2(2) = 0Интересно, надо продолжать разбираться Спасибо Добрушанке! Вы местами поменяли точки H1 и H2. В этом построении это не важно, а когда каждая точка будет иметь значение, нужно быть более внимательными. Ссылка на сообщение Поделиться на другие сайты Поделиться
Добрушанка Опубликовано 5 мая, 2008 Автор Поделиться Опубликовано 5 мая, 2008 Цветы, посмотрела Вашу программу. Во-первых, у Вас ошибка, что Вы дважды задаете координаты точек H1 и H2. А во-вторых, нарисуйте рисунок того, что Вы хотите получить и мы вместе будем разбираться, как это реализовать программно. Ссылка на сообщение Поделиться на другие сайты Поделиться
Цветы Опубликовано 5 мая, 2008 Поделиться Опубликовано 5 мая, 2008 (изменено) Цветы, посмотрела Вашу программу. Во-первых, у Вас ошибка, что Вы дважды задаете координаты точек H1 и H2. А во-вторых, нарисуйте рисунок того, что Вы хотите получить и мы вместе будем разбираться, как это реализовать программно. И расскажите подробнее о сохранении VB у меня все чертежи сохраняются обычными файлами в CAD и при открытии не получается загрузить, приходится открывать папку и находить обычный файл-рисунок dwg/ Если нужно удалить то достаточно просто выделить и нажать делет А в построении я просто пробую зафиксировать урок и чтобы более его понять пытаюсь ввести свои изменения , и естественно исправить ошибки В этом чертеже хотела построить отрезок H1H2=65 - А1А2=64 А3А4 =63 с разными сторонами и ширина А2Н1=26 А3Н1=28 Напоминающий построение юбки Чертеж к документу ворд Изменено 5 мая, 2008 пользователем цветы "Каждый может ошибиться", - сказал ежик, слезая с кактуса. Ссылка на сообщение Поделиться на другие сайты Поделиться
Рекомендуемые сообщения