Архитектору и проектировщику|Тепло- и звукоизоляция URSA.RU
Показать сообщение отдельно
Непрочитано 17.06.2013, 15:11 #1
Lisp/ActiveX Как создать лист и на нем видовой экран. Связь Модель->Лист
Kirill_Ja
 
Мурманск
Регистрация: 28.07.2008
Сообщений: 208

Есть 3 точки в пространстве модели. Нужно создать лист произвольного размера и на нем видовой экран, чтобы там отразилась область,
ограниченная прямоугольником по 3-м точкам.

По задачам:
1. Создать лист. (тут вроде все просто создаем примитив, регистрируем в словаре "ACAD_LAYOUT") или AciveX-ом добавляем элемент в коллекцию
2. Создать примитив видового экрана. (тоже создаем, регистрируем в таблице "VPORT") или AciveX (тока еще не понял как точно)
3. Задать ему размеры (тут еще код 10 40 и 41 нас спасает)
4. Отобразить нужный участок модели на листе О_о (я нашел коды 45 и 63 - высота и ширина в модели, 110, 111, 112 - данные о системе координат ВЭ), но дальше я в тупике.
Не могу найти ни одной точки привязки. Как изображение на ВЭ однозначно связано с моделью? В AciveX тоже нет никакой связи с моделью, а вот все
вышеперечисленное есть, но называется по-другому.


((-1 . <Имя объекта: 7e9bfe78>)
(0 . "VIEWPORT")
(5 . "837")
(102 . "{ACAD_XDICTIONARY")
(360 . <Имя объекта: 7e9bfe80>)
(102 . "}")
(330 . <Имя объекта: 7e9bced0>)
(100 . "AcDbEntity")
(67 . 1)
(410 . "Лист1")
(8 . "0")
(100 . "AcDbViewport")
(10 128.5 97.5 0.0)
(40 . 205.6)
(41 . 156.0)
(68 . 2)
(69 . 2)
(12 977.371 971.019 0.0) O_o это вообще что за точка??? Точно что-то значит, но что не нашел
(13 0.0 0.0 0.0)
(14 10.0 10.0 0.0)
(15 10.0 10.0 0.0)
(16 0.0 0.0 1.0)
(17 0.0 0.0 0.0)
(42 . 50.0)
(43 . 0.0)
(44 . 0.0)
(45 . 1873.86)
(50 . 0.0)
(51 . 0.0)
(72 . 1000)
(90 . 819296)
(281 . 0)
(71 . 1)
(74 . 0)
(110 0.0 0.0 0.0)
(111 1.0 0.0 0.0)
(112 0.0 1.0 0.0)
(79 . 0)
(146 . 0.0)
(170 . 0)
(61 . 5)
(348 . <Имя объекта: 7e9bcfa8>)
(292 . 1)
(282 . 1)
(141 . 0.0)
(142 . 0.0)
(63 . 250)
(421 . 3355443))


(vlax-dump-Object a t)
; IAcadPViewport: Интерфейс AutoCAD для работы с видовыми экранами.
; Значения свойств:
; Application (RO) = #<VLA-OBJECT IAcadApplication 00767814>
; ArcSmoothness = 1000
; Center = (128.033 98.9766 0.0)
; Clipped (RO) = 0
; CustomScale = 0.65
; Direction = (0.0 0.0 1.0)
; DisplayLocked = 0
; Document (RO) = #<VLA-OBJECT IAcadDocument 24f90734>
; EntityTransparency = "ПоСлою"
; GridOn = 0
; Handle (RO) = "256"
; HasExtensionDictionary (RO) = -1
; HasSheetView (RO) = 0
; Height = 84.5
; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 16abee54>
; LabelBlockId = 0
; Layer = "0"
; LayerPropertyOverrides (RO) = 0
; LensLength = 50.0
; Linetype = "ByLayer"
; LinetypeScale = 1.0
; Lineweight = -1
; Material = "ByLayer"
; ModelView = nil
; ObjectID (RO) = 2123766064
; ObjectName (RO) = "AcDbViewport"
; OwnerID (RO) = 2123906768
; PlotStyleName = "ByLayer"
; ShadePlot = 0
; SheetView = nil
; SnapBasePoint = (0.0 0.0)
; SnapOn = 0
; SnapRotationAngle = 0.0
; StandardScale = 1
; StandardScale2 = 1
; Target = (0.0 0.0 0.0)
; TrueColor = #<VLA-OBJECT IAcadAcCmColor 252df380>
; TwistAngle = 5.47195
; UCSIconAtOrigin = -1
; UCSIconOn = -1
; UCSPerViewport = -1
; ViewportOn = -1
; Visible = -1
; VisualStyle = 1
; Width = 162.5
; Поддерживаемые методы:
; ArrayPolar (3)
; ArrayRectangular (6)
; Copy ()
; Delete ()
; Display (1)
; GetBoundingBox (2)
; GetExtensionDictionary ()
; GetGridSpacing (2)
; GetSnapSpacing (2)
; GetXData (3)
; Highlight (1)
; IntersectWith (2)
; Mirror (2)
; Mirror3D (3)
; Move (2)
; Rotate (2)
; Rotate3D (3)
; ScaleEntity (2)
; SetGridSpacing (2)
; SetSnapSpacing (2)
; SetXData (2)
; SyncModelView ()
; TransformBy (1)
; Update ()
T
__________________
Мне не нужно сделать за меня. Если я что-то ищу, то пути решения.

Последний раз редактировалось Kirill_Ja, 18.06.2013 в 19:11. Причина: Уточнил тему
Просмотров: 8543
 
Размещение рекламы