Visual Basic & measure
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Visual Basic & measure

Visual Basic & measure

Ответ
Поиск в этой теме
Непрочитано 01.03.2010, 13:26 #1
Visual Basic & measure
evgm
 
Регистрация: 06.07.2007
Сообщений: 56

Здравствуйте.
Подскажите, пожалуйста, как на VB реализовать следеущее:
нужно сплайн разделить на равные отрезки и получить массив координат всех этих точек
например как комманда measure разбивает.
Но как мне получить массив этих блоков после её выполнения (причем в той же последавательности)?
Заранее спасибо.
Просмотров: 2911
 
Непрочитано 01.03.2010, 15:23
#2
Сергей Дубина


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


У меня LT пример привести не могу, на прошлой работе делал такую функцию, опишу в двух словах:
Есть функция GetPoint, в параметрах координата и пояснение
в пояснение вбей то что должно быть в ком. строке например : Выберите сплайн
у объекта ModelSpase есть метод CommandLine
собери строку для этого метода (команда автокада) с использованием полученной координаты.
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Автор темы   Непрочитано 01.03.2010, 15:42
#3
evgm


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


команду то я акаду отправлю без проблем
он конечно ее выполнит (разделит сплайн указанными блоками)
но главный вопрос в том что мне потом нужны получить массив этих блоков (например запихать их в selectionset) в той же последовательности что и на сплайне (искать блоки с известным мне именем не приемлемо тк на чертеже может быть еще куча блоков с таким же названием но не относящиеся к моему сплайну)
measure это я как пример привел
вообще мне нужно получить координаты точек сплайна через равные промежутки (или получить ссылку на все только что вставленные объекты)
evgm вне форума  
 
Непрочитано 01.03.2010, 15:55
#4
Кулик Алексей aka kpblc
Moderator

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


Ищи код класса vlax. На форуме был.
Этот класс позволяет, насколько я помню, использовать lisp-функции (типа vlax-curve-getclosestpointto и аналогичные).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.03.2010, 18:50
#5
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от evgm Посмотреть сообщение
но главный вопрос в том что мне потом нужны получить массив этих блоков
Подсчитываешь сколько добра у тебя есть:
f1 =ThisDrawing.ModelSpace.Count - 1
потом раскидываешь блоки
опять считаешь чего добавилось
f2 =ThisDrawing.ModelSpace.Count - 1
и по полученным в разнице от f1 до f2 индексам находишь все примитивы

~'J'~
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 02.03.2010, 05:17
#6
evgm


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ищи код класса vlax. На форуме был.
Этот класс позволяет, насколько я помню, использовать lisp-функции (типа vlax-curve-getclosestpointto и аналогичные).
а вот с этим уже сложнее - я в лиспе чайник...
evgm вне форума  
 
Непрочитано 02.03.2010, 10:04
#7
Сергей Дубина


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


создай свои служебные блоки или слой (в случае точек)
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Автор темы   Непрочитано 02.03.2010, 13:12
#8
evgm


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


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
создай свои служебные блоки или слой (в случае точек)
Хорошо, получу я массив своих блоков, но как мне их отсортировать
в том же порядке как они расставлены на сплайне?
Я получу все блоки, в цикле проверяю мой он или нет и если мой, то добавляю в массив. Но ведь в какой последовательности? В случайной?
evgm вне форума  
 
Непрочитано 02.03.2010, 13:49
#9
Сергей Дубина


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


Циклом ForEach перебираются в порядке создания
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 02.03.2010, 23:07
#10
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от evgm Посмотреть сообщение
Хорошо, получу я массив своих блоков, но как мне их отсортировать
в том же порядке как они расставлены на сплайне?
Я получу все блоки, в цикле проверяю мой он или нет и если мой, то добавляю в массив. Но ведь в какой последовательности? В случайной?
см. пост #5 я все объснил

~'J'~
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 04.03.2010, 07:06
#11
evgm


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


спасибо всем большое
вроде все получилось
evgm вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Visual Basic & measure



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Microsoft Visual Studio: Инициатива по лицензированию разработчиков ПО Кулик Алексей aka kpblc Разное 6 05.09.2009 18:16
Visual Basic + AutoCAD 2006 = FATAL ERROR evgm Программирование 6 03.04.2009 13:40
VISUAL basic VVITTALIK Программирование 6 29.08.2006 21:02
Autolisp и Visual Basic Книга Piton LISP 6 27.02.2006 09:54