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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание видового экрана в модели видов VBA/ActiveX ACAD2017

Создание видового экрана в модели видов VBA/ActiveX ACAD2017

Ответ
Поиск в этой теме
Непрочитано 06.08.2019, 09:56 #1
Создание видового экрана в модели видов VBA/ActiveX ACAD2017
Overl0rd555
 
Регистрация: 05.07.2018
Сообщений: 9

Есть потребность в создании видовых экранов для дальнейшего создание листов и расположения на них видовых экранов и последующей печати
делаю на VBA из под Excel

Код:
[Выделить все]
Dim VPCoord(0 To 2) As Double
Dim xView As AcadView
Dim startPoint As Variant
Dim objText As AcadEntity
Dim get_text As String

Const maxY As Integer = 287
Const maxX As Integer = 395


    AutoCAD.Application.ActiveDocument.Utility.GetEntity objText, varPnt, vbCr & "Выбрать название видового экрана"
    get_text = objText.TextString

    startPoint = AutoCAD.Application.ActiveDocument.Utility.GetPoint(, "Выбрать нижнюю правую точку")

    VPCoord(0) = startPoint(0) + maxX / 2
    VPCoord(1) = startPoint(1) + maxY / 2
    VPCoord(2) = 0

    Set xView = AutoCAD.Application.ActiveDocument.Views.Add(get_text)

    xView.Center(0) = startPoint(0) + maxX / 2
    xView.Center(1) = startPoint(1) + maxY / 2
    ' xView.Target = AutoCAD.Application.ActiveDocument.Utility.TranslateCoordinates(VPCoord, acWorld, acDisplayDCS, false)
    xView.Target = VPCoord
    xView.Width = maxX
    xView.Height = maxY
вроде бы работает, но есть НО
1. размеры совпадают, а координаты плавают почему-то относительно позиций и масштаба экрана и не попадают на нужное место
2. xView.Center - изменение значений не влияет на результат
3. xView.Target = AutoCAD.Application.ActiveDocument.Utility.TranslateCoordinates(VPCoord, acWorld, acDisplayDCS, false) == тоже не помогает
4. в диспетчере видов нет маленькой картинки, нет данных Снимок слоев=НЕТ, Визуальный стиль=НЕТ, ПСК=нет

2 дня лопачу форум и хелпы, но пока не получается (сразу ответ на вопрос посмотреть там или там) или чего-то непонимаю
как заставить попадать на координаты и добавить картинку и другие данные в видовой экран?

Миниатюры
Нажмите на изображение для увеличения
Название: приложение-1.png
Просмотров: 35
Размер:	61.2 Кб
ID:	216534  Нажмите на изображение для увеличения
Название: приложение-2.png
Просмотров: 30
Размер:	72.6 Кб
ID:	216535  


Последний раз редактировалось Overl0rd555, 06.08.2019 в 16:02. Причина: ошибка в назавнии
Просмотров: 2752
 
Непрочитано 06.08.2019, 10:25
#2
trir


 
Регистрация: 18.12.2010
Сообщений: 3,865


нужно задать Direction https://knowledge.autodesk.com/searc...A941C-htm.html
тут на форуме выкладовали мою прогу на VBA - которая всё это делает
trir вне форума  
 
Автор темы   Непрочитано 06.08.2019, 13:37
#3
Overl0rd555


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


я работаю только в 2-D, но все таки попробовал
добавил

Код:
[Выделить все]
Dim NewDirection(0 To 2) As Double
    NewDirection(0) = 0
    NewDirection(1) = 0
    NewDirection(2) = 0
    xView.Direction = NewDirection
посмотрел у созданных вручную - все по нулям
поигрался со значениями - результат в том что вращает вид и все

у меня же проблема в том что координаты пляшут относительно текущего вида на экране

чем сильнее приближаю текущий вид на экране тем ближе приближается созданный видовой экран
Миниатюры
Нажмите на изображение для увеличения
Название: приложение-3.png
Просмотров: 14
Размер:	45.8 Кб
ID:	216545  Нажмите на изображение для увеличения
Название: приложение-4.png
Просмотров: 12
Размер:	50.5 Кб
ID:	216546  
Overl0rd555 вне форума  
 
Автор темы   Непрочитано 06.08.2019, 15:12
#4
Overl0rd555


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


Direction - это направление вида по осям, мне он ничего не дает
попробовал поигаться со значениями - вращает по осям
мне нужно только в 2-D

у меня сдвиг координат происходит в зависимости от положения и масштаба экрана, не пойму почему и как сделать абсолютными значениями относительно указываемой точки
пример того что получается на картинках
прог на VBA очень много, дай хоть название или ссылку плиз
Миниатюры
Нажмите на изображение для увеличения
Название: приложение-3.png
Просмотров: 4
Размер:	45.8 Кб
ID:	216550  Нажмите на изображение для увеличения
Название: приложение-4.png
Просмотров: 3
Размер:	50.5 Кб
ID:	216551  
Overl0rd555 вне форума  
 
Непрочитано 06.08.2019, 15:24
#5
trir


 
Регистрация: 18.12.2010
Сообщений: 3,865


https://forum.dwg.ru/showthread.php?t=110561
trir вне форума  
 
Автор темы   Непрочитано 06.08.2019, 16:07
#6
Overl0rd555


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


понял свою ошибку - мне нужен не именованный видовой экран, а видовой экран в "Виды моделей"
который можно редактировать в ручном режиме в диспетчере видов

и IAcadPViewport2 в экселе нет, есть только AcadView, AcadViewport, AcadPViewport

AcadView - это видовой экран в "Виды моделей" пространства модели
AcadViewport - это именованный видовой экран
AcadPViewport - это видовой экран пространства листа

мне нужно именно AcadView - это видовой экран в "Виды моделей" пространства модели
Overl0rd555 вне форума  
 
Непрочитано 06.08.2019, 17:25
#7
trir


 
Регистрация: 18.12.2010
Сообщений: 3,865


IAcadPViewport2 - Removed (Moved to IAcadPViewport)
trir вне форума  
 
Автор темы   Непрочитано 06.08.2019, 17:57
#8
Overl0rd555


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


References Autocad 2017 Type library - не дает такой тип как IAcadPViewport2
там вообще порезанные типы только те которые будут совместимы из внешних приложений
Overl0rd555 вне форума  
 
Непрочитано 06.08.2019, 20:43
#9
trir


 
Регистрация: 18.12.2010
Сообщений: 3,865


потому что его убрали, а функционал добавили в IAcadPViewport
trir вне форума  
 
Автор темы   Непрочитано 06.08.2019, 21:26
#10
Overl0rd555


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


References Autocad 2017 Type library который линкуется к экселю методом библиотеки объектов AutoCAD'а- не предоставляет
типы ни IAcadPViewport2, IAcadPViewport
там вообще порезанные типы только те которые будут совместимы из внешних приложений
присутствуют только AcadView, AcadViewport, AcadPViewport

AcadView - это видовой экран в "Виды моделей" пространства модели
AcadViewport - это именованный видовой экран
AcadPViewport - это видовой экран пространства листа

мне нужно именно AcadView - это видовой экран в "Виды моделей" пространства модели
Overl0rd555 вне форума  
 
Непрочитано 06.08.2019, 22:42
#11
trir


 
Регистрация: 18.12.2010
Сообщений: 3,865


NET API
trir вне форума  
 
Непрочитано 07.08.2019, 09:18
| 1 #12
baksconstructor


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


Цитата:
Сообщение от Overl0rd555 Посмотреть сообщение
и последующей печати
А не проще ли сразу печатать из модели ?
baksconstructor вне форума  
 
Автор темы   Непрочитано 07.08.2019, 09:27
#13
Overl0rd555


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


не совсем
есть листы с расположенными на них рамками, номерами и т.д.
и бывает что на листе потом сверху располагаются несколько видовых экранов которые еще и накладываются друг на друга
Миниатюры
Нажмите на изображение для увеличения
Название: приложение-5.png
Просмотров: 29
Размер:	136.7 Кб
ID:	216577  
Overl0rd555 вне форума  
 
Непрочитано 07.08.2019, 09:32
#14
baksconstructor


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


Цитата:
Сообщение от Overl0rd555 Посмотреть сообщение
видовых экранов которые еще и накладываются друг на друга
Ну если не получится допилить, то это поможет
baksconstructor вне форума  
 
Непрочитано 22.05.2020, 10:28
#15
МишаИнженер


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


Использую такой код для настройки размеров видового экрана:

НазначитьРазмерыЭкрана:
Set objВидЭкран = objОбъект

objВидЭкран.Width = dШирина
objВидЭкран.Height = dВысота
dЦентр(0) = dШирина / 2: dЦентр(1) = dВысота / 2
objВидЭкран.center = dЦентр
МишаИнженер вне форума  
 
Непрочитано 29.06.2020, 14:53
#16
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 389
<phrase 1=


2 МишаИнженер
А можно Ваш код в более рабочем формате?
Код:
[Выделить все]
 
Sub ViewP()

Dim vportObj As AcadViewport

Set vportObj = ThisDrawing.Viewports.Item(0)
ThisDrawing.Viewports.Item(0).center(0) = ThisDrawing.Viewports.Item(0).center(0) + 290
End Sub
Пытаюсь подвинуть видовой экран в пространстве листа, но не получается...
Alexeipost вне форума  
 
Непрочитано 29.06.2020, 15:17
#17
trir


 
Регистрация: 18.12.2010
Сообщений: 3,865


https://knowledge.autodesk.com/ru/se...7617A-htm.html
trir вне форума  
 
Непрочитано 29.06.2020, 15:35
#18
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 389
<phrase 1=


По предложенной вами ссылке, пример с circle. Не подошёл мне.
Хотя может я криворукий...если кто может поправить мою криворукость - приму в помощь
Alexeipost вне форума  
 
Непрочитано 29.06.2020, 15:41
#19
Boxa

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


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
По предложенной вами ссылке, пример с circle. Не подошёл мне.
По ссылке пример для объектов: Arc, Circle, DimRadialLarge, Ellipse, PViewport, View, Viewport , круг там только как частный случай
и trir, как бы намекает, что нельзя менять координаты по отдельности, нужно разом:
Код:
[Выделить все]
    ' Change the center point of the circle
    newCenterPt(0) = 25: newCenterPt(1) = 25: newCenterPt(2) = 0
    circObj.center = newCenterPt
    circObj.Update
И дополнительно укажу на вот эту строку справки:
Цитата:
Viewport, View: The center for the viewport and view objects is a 2D coordinate.
__________________
_бложиг
Boxa вне форума  
 
Непрочитано 29.06.2020, 16:13
#20
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 389
<phrase 1=


Я думал что дело в update, но update у viewport нету. Полная замена координат также не работает
Alexeipost вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание видового экрана в модели видов VBA/ActiveX ACAD2017

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание многоугольного видового экрана методом ActiveX jackUAROBEY Программирование 2 05.10.2017 20:51
Прилипает курсор мыши к границам видового экрана - как отключить? Geolog1900 AutoCAD 2 10.04.2015 15:20
Изменение масштаба видового экрана при зумировании DianaChTailor Программирование 26 26.12.2014 21:02
Автоматическое создание "лишнего" скрытого видового экрана помимо нормального при активизации листа Libed AutoCAD 5 06.10.2014 15:19
Создание видового экрана из прямоугольника в "Модели" в пространстве листа wluk1958 Программирование 1 10.08.2012 10:26