координаты вершин полилини в ACAD`e на VB ?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

координаты вершин полилини в ACAD`e на VB ?

Сообщение ssv22 » 12.07.2008 (Сб) 15:48

ТОварисчи! Кто подскажет:
как на VB получить координаты вершин выбранной полилинии (или нескольких выбранных)?
В каком угодно виде: в массиве, в файле...
На Lisp`e я это делал лет 15 назад, а сейчас мне нужно на VB!
Последние лет 9 пишу на VB к SolidWorks`и пока еще не разобрался в объектной модели ACD`A :-(
Желательно в VB а не VBA, хотя это и не критично...
Это я уж сам спарвлюсь.
Не могу получить доступ к объекту "Полилиния" и соотвественно, к ее вершинам, пр ее выборе ее на экране (в примерах все сначала создается и тд.)
Часа 2 потратил на поиск и часа 2 на собственное осмышление. Результат пока нулевой :-(

Заранее спасибо!

unreal_2007
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 20.09.2007 (Чт) 7:21

Сообщение unreal_2007 » 16.07.2008 (Ср) 9:41

попробуйте поискать на dwg.ru там очень грамотные люди в плане Autocad

NicSoft
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 05.04.2003 (Сб) 18:51
Откуда: Егорьевск

Сообщение NicSoft » 16.07.2008 (Ср) 21:13

попробуй так:

Код: Выделить всё
Dim entObjectID As Long
Dim j as Long
Dim objGen As Object

For j = 1 To objAcad.ActiveDocument.PaperSpace.Count
     entObjectID = objAcad.ActiveDocument.PaperSpace.Item(j - 1).ObjectID
     Set objGen = objAcad.ActiveDocument.ObjectIdToObject(entObjectID)
     If objGen.ObjectName = "AcDbPolyline" Then
          msgbox "Полилиния"
     End if
Next

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 16.07.2008 (Ср) 22:23

NicSoft писал(а):попробуй так:

Код: Выделить всё
Dim entObjectID As Long
Dim j as Long
Dim objGen As Object

For j = 1 To objAcad.ActiveDocument.PaperSpace.Count
     entObjectID = objAcad.ActiveDocument.PaperSpace.Item(j - 1).ObjectID
     Set objGen = objAcad.ActiveDocument.ObjectIdToObject(entObjectID)
     If objGen.ObjectName = "AcDbPolyline" Then
          msgbox "Полилиния"
     End if
Next


Но это же, насколько я понимаю, перебор всех п/линий в пространстве листа?
Во-первых - я в пространстве модели,
во-вторых: мне нужен выбор определенных п/линий, и уже с каждой из них получить координаты вершин.
Мне кажется нужно использовать
selmgrAC.SelectOnScreen ' запрос выбора на экране
с соответствующими аргументами(фильтрами выбора), да вот еще не разобрался...

NicSoft
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 05.04.2003 (Сб) 18:51
Откуда: Егорьевск

Сообщение NicSoft » 17.07.2008 (Чт) 14:33

ssv22
Правильно понимаете. Я просто предложил пример, а поменять пространство листа на модель, и отфильтровать полилинии по имеющемся свойствам не так долго.

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 17.07.2008 (Чт) 18:48

NicSoft писал(а):ssv22
Правильно понимаете. Я просто предложил пример, а поменять пространство листа на модель, и отфильтровать полилинии по имеющемся свойствам не так долго.

Вот что-то у меня и не "клеится" с :
selmgrAC.SelectOnScreen ' запрос выбора на экране
Судя по help`y VBA функция ".SelectOnScreen"
должна принимать еще два аргумента, а у меня пока никак не получается это реализовать :-(
Т.е. возвращает Null вместо указателя на объект-полилиния...
PS.вообще уже несколько раз сталкивался с подобным: вроде VB - синтакис более-менее похожий должен быть, ан нет - разница чуйствуется.
Я на VB и к ворду и к екселю и к корелу делал кое-что, и везде все какие-то проблемы возникают...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 48

    TopList