Schöck
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > координаты вершин выбранной полилинии на VB? как получить

координаты вершин выбранной полилинии на VB? как получить

Ответ
Поиск в этой теме
Непрочитано 16.07.2008, 11:21 #1
координаты вершин выбранной полилинии на VB? как получить
ssv22
 
Регистрация: 16.07.2008
Сообщений: 11

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

Заранее спасибо!
Просмотров: 4657
 
Непрочитано 16.07.2008, 11:25
#2
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 22,624
<phrase 1=


Разделами не надо ошибаться. Тему перенес.
Солидворкер вне форума  
 
Автор темы   Непрочитано 16.07.2008, 23:31
#3
ssv22


 
Регистрация: 16.07.2008
Сообщений: 11


я понял, что ошибся, когда уже отправил сообщение - поторопился
ssv22 вне форума  
 
Непрочитано 16.07.2008, 23:55
#4
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Попробуй, написал давно, не помню
как оно работает

Код:
[Выделить все]
Option Explicit

Function PolyCoords(oEnt As AcadEntity) As Variant

     Dim cnt As Integer
     Dim i As Integer
     Dim j As Integer
     Dim iStep As Integer
     Dim varPt As Variant
     Dim dblCoords() As Double
     Dim dblVert() As Double
     
     If TypeOf oEnt Is AcadLWPolyline Then
          iStep = 2
     ElseIf TypeOf oEnt Is Acad3DPolyline Or _
            TypeOf oEnt Is AcadPolyline Then
          iStep = 3
     End If

     dblCoords = oEnt.Coordinates
     
     ReDim ptsArr(0 To (UBound(dblCoords) + 1) \ iStep - 1, 0 To iStep - 1) As Double

     For i = 0 To (UBound(dblCoords) + 1) \ iStep - 1
          For j = 0 To iStep - 1
               ptsArr(i, j) = dblCoords(cnt)
               cnt = cnt + 1
          Next
     Next

     PolyCoords = ptsArr

End Function

Sub test()

     Dim pts As Variant
     Dim varPt As Variant
     Dim oEnt As AcadEntity
     ThisDrawing.Utility.GetEntity oEnt, varPt, vbCr & "Select polyline"
     If Not TypeOf oEnt Is AcadLWPolyline Or _
        Not TypeOf oEnt Is Acad3DPolyline Or _
        Not TypeOf oEnt Is AcadPolyline Then
          MsgBox "Method is not applicable for this entity type"
          Exit Sub
     End If
     pts = PolyCoords(oEnt)

End Sub
~'J'~
fixo вне форума  
 
Непрочитано 16.07.2008, 23:57
#5
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,416


Так это... <УказательНаПолилинию>.Coordinates - вернет массив координат. Массив одномерный, каждый нечетный элемент - координата по Х, четный - по Y в системе координат объекта. Это для LWPolyline
Для 3DPolyline ситуация аналогичная, только точки становятся 3Д, и преобразования в мировую систему уже не требуют.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 17.07.2008, 00:01
#6
ssv22


 
Регистрация: 16.07.2008
Сообщений: 11


Цитата:
Сообщение от fixo Посмотреть сообщение
Попробуй, написал давно, не помню
как оно работает
Код:
[Выделить все]
Option Explicit

Function PolyCoords(oEnt As AcadEntity) As Variant
...
   
End Sub
~'J'~
OK! спасибо, завтра попробую обязательно!
ssv22 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > координаты вершин выбранной полилинии на VB? как получить

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить путь к сетевому текстовому файлу Victorovich Программирование 3 30.06.2008 15:47
как получить параметры бумаги принтеров? ASLYS Программирование 1 21.04.2008 19:04
Как получить из excel указатель на ячейку с координатами x, Ax3 Программирование 3 03.08.2007 17:10
Как получить таблицу свойств объектов такую же как в OrCad passat AutoCAD 1 08.12.2004 01:12
как изменить(назначить) в VB толщину полилинии новичок Программирование 3 27.07.2004 12:58