CAD БИБЛИОТЕКА
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA autocad выбор уже нарисованных объектов, определение координат

VBA autocad выбор уже нарисованных объектов, определение координат

Ответ
Поиск в этой теме
Непрочитано 05.10.2016, 17:14 #1
VBA autocad выбор уже нарисованных объектов, определение координат
Alfa_Mike
 
Регистрация: 04.10.2016
Сообщений: 21

Всем привет! Подскажите начинающему плиз, не нашел такого в 3-х источниках.
1. Допустим пользователь нарисовал 2 линии. Требуется программно выбрать одну или вторую из них и определить координаты начала и конца каждой.
2. Никак не могу разобраться как программно выделить ПОСЛЕДНИЙ нарисованный объект в поле чертежа.
Просмотров: 3849
 
Непрочитано 05.10.2016, 17:41
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,184


1. А справка в эти 3 источника входит? Я почему спрашиваю, в справке это написано. И про выбор объекта и про его свойства, и как их читать и как задавать...

2. Как то так получаете последний объект.
Код:
[Выделить все]
    
'Последний объект в модели, для листа, так же
Dim obj As AcadObject
Set obj = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count - 1)
как выделить (судя по вопросу) Вы и так знаете.
__________________
_бложиг

Последний раз редактировалось Boxa, 05.10.2016 в 17:46.
Boxa на форуме  
 
Автор темы   Непрочитано 05.10.2016, 18:03
#3
Alfa_Mike


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
1. А справка в эти 3 источника входит? Я почему спрашиваю, в справке это написано. И про выбор объекта и про его свойства, и как их читать и как задавать...

2. Как то так получаете последний объект.
Код:
[Выделить все]
    
'Последний объект в модели, для листа, так же
Dim obj As AcadObject
Set obj = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count - 1)
как выделить (судя по вопросу) Вы и так знаете.
Спасибо, справка нормальная с vba не шла, только недавно нашел нормальную. Буду пробовать.

----- добавлено через ~44 мин. -----
А можете подсказать, почему не присваивается значение endpoint? По справке все вроде так, тип данных variant
Код:
[Выделить все]
 Public Sub lin()
Dim pt1(0 To 2) As Double, pt2(0 To 2) As Double
Dim pt3 As Variant
' x             y               z
pt1(0) = 0: pt1(1) = 0: pt1(2) = 0
pt2(0) = 10: pt2(1) = 10: pt2(2) = 0

Dim oLine As AcadLine

On Error Resume Next
oLine = ThisDrawing.ModelSpace.AddLine(pt1, pt2)
pt3 = oLine.EndPoint
Dim x_end As Double
x_end = CDbl(pt3(0))
MsgBox (x_end)
End Sub
Alfa_Mike вне форума  
 
Непрочитано 05.10.2016, 22:30
#4
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,084
<phrase 1=


Цитата:
Сообщение от Alfa_Mike Посмотреть сообщение
, почему не присваивается значение endpoint?
pt3 наверно как массив от 0 до 2 объявить надо
stas_org вне форума  
 
Автор темы   Непрочитано 08.10.2016, 19:33
#5
Alfa_Mike


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


Цитата:
Сообщение от stas_org Посмотреть сообщение
pt3 наверно как массив от 0 до 2 объявить надо
оказалось надо добавить set
Alfa_Mike вне форума  
 
Непрочитано 17.01.2020, 12:32
#6
Nordek


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


Цитата:
Сообщение от Boxa Посмотреть сообщение

как выделить (судя по вопросу) Вы и так знаете.
А можно написать как выделить, я, к сожалению, не знаю.
Nordek вне форума  
 
Непрочитано 17.01.2020, 12:46
#7
Кулик Алексей aka kpblc
Moderator

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


Выполнить выделение по аналогии с sssetfirst на VBA, насколько я помню, не получится. Только посылать в ком.строку соответствующих кодов: https://forum.dwg.ru/showpost.php?p=...postcount=3893 или https://forum.dwg.ru/showpost.php?p=...postcount=3894
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.01.2020, 13:25
#8
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,184


Цитата:
Сообщение от Nordek Посмотреть сообщение
можно написать как выделить, я, к сожалению, не знаю.
Что ж Вы справку то так не любите =(
http://entercad.ru/acadauto.en/ex_selectonscreen.htm
Код:
[Выделить все]
Sub Example_SelectOnScreen()
	' This example adds objects to a selection set by prompting the user
	' to select ones to add.

	' Create the selection set
	Dim ssetObj As AcadSelectionSet
	Set ssetObj = ThisDrawing.SelectionSets.Add("TEST_SSET")

	' Add objects to a selection set by prompting user to select on the screen
	ssetObj.SelectOnScreen

End Sub
__________________
_бложиг
Boxa на форуме  
 
Непрочитано 17.01.2020, 13:28
#9
Кулик Алексей aka kpblc
Moderator

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


Boxa, я так понимаю, что надо выделить, а не выбрать.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.01.2020, 13:30
#10
Nordek


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


)) Сижу на работе, решаю конкретно вставшую задачу, на раб.компе инета нет, с телефона могу только sos кинуть реально, поэтому так. Спасибо.
Nordek вне форума  
 
Непрочитано 17.01.2020, 13:37
#11
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,184


Кулик Алексей aka kpblc, задача то у автора топика была выбрать... наверное я в ответе не совсем точное слово использовал, про выделить, наверное так: https://forums.autodesk.com/t5/visua...d/td-p/5290073
Но я это не проверял
__________________
_бложиг
Boxa на форуме  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA autocad выбор уже нарисованных объектов, определение координат

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор модулей под AutoCAD Civil 3D/AutoCAD для обработки и подготовки данных инженерных изысканий (линейная часть) Константин Климов Прочее. Программное обеспечение 3 02.09.2014 14:27
Быстрый выбор подобных элементов в AutoCad 2010 kolya161 AutoCAD 4 28.07.2014 15:07
Программа просчета объектов в AutoCad. Связь с MySQL. gash90 Программирование 30 06.07.2010 22:05
Автоматический выбор объектов в последовательном порядке. Terminator637 AutoCAD 15 31.03.2010 19:54