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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно получить свойства прокси объекта

Как программно получить свойства прокси объекта

Ответ
Поиск в этой теме
Непрочитано 19.11.2014, 12:20
Как программно получить свойства прокси объекта
zvyagaaa
 
Регистрация: 11.08.2011
Сообщений: 41

Есть в файле прокси объекты стороннего приложения. В автокадовском окне "свойства" нужные мне свойства отображаются. Подскажите, как можно программно их получать? Желательно на VBA. Куда копать?
Просмотров: 7993
 
Непрочитано 27.04.2015, 20:16
#21
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 188
Отправить сообщение для nolte с помощью Skype™


как то так.
запуск -- T5.
Код:
[Выделить все]
 
(defun c:t5 (/ lst)
(mapcar '(lambda(a)
			(if	(or
					(not lst)
					(not(member(vla-get-objectname a)(mapcar 'cadr lst)))
				)
					(setq lst (cons (list a (vla-get-objectname a)) lst))
			)
		)
	(mapcar 'vlax-ename->vla-object(l-conv-set-to-lst(ssget "_X")))
)
(mapcar '(lambda(b)(vlax-dump-object b t)) (mapcar 'car lst))
)
;;;---------------------------------------------------------------------------
(defun L-conv-set-to-lst (n / i lst)
(if n
	(repeat (setq i (sslength n))
		(setq lst (cons (ssname n (setq i (1- i))) lst))
	)
	nil
)
)
__________________
Знание лисп: со справочником Н. Полещука

Последний раз редактировалось nolte, 27.04.2015 в 20:37.
nolte вне форума  
 
Непрочитано 27.04.2015, 20:36
#22
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,537


Цитата:
Сообщение от nolte Посмотреть сообщение
как то так.
ты издеваешься что ли???
gomer вне форума  
 
Непрочитано 27.04.2015, 20:40
#23
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 188
Отправить сообщение для nolte с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
ты издеваешься что ли???
это Вы про что Уважаемый.
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Непрочитано 27.04.2015, 21:21
#24
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,537


Цитата:
Сообщение от nolte Посмотреть сообщение
это Вы про что Уважаемый.
как-то анально-ректально это, чертежов-то у тебя один, а цыклов 6...
gomer вне форума  
 
Непрочитано 27.04.2015, 21:33
#25
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 188
Отправить сообщение для nolte с помощью Skype™


уважаю я твою критику. вот продемонстрировал чего более красивого.
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Непрочитано 27.04.2015, 22:09
#26
Кулик Алексей aka kpblc
Moderator

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


Как вариант: через atoms-family получить список всех ActiveX-свойств и потом проверять, какое для какого объекта доступно. Но смысла в этом лично я не вижу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.04.2015, 23:16
#27
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,537


Цитата:
Сообщение от nolte Посмотреть сообщение
Уважаемый
зачем старого больного человека обижаешь?
ну погорячился я... с кем не бывает
но писать нужно внятно, а не через то самое место, коего любителей предостаточно
хотя бы так
Код:
[Выделить все]
 (defun c:dumpall (/ i ss en ent lst)
  (if (setq i -1 ss (ssget "_X"))
    (repeat (sslength ss)
      (setq en  (vlax-ename->vla-object
                  (ssname ss (setq i (1+ i))))
            ent (vla-get-objectname en))
      (cond ((vl-position ent lst))
            ((setq lst (cons ent lst))
             (vlax-dump-object en t)))))
  (princ))
хотя и этот у тех кто в танке работать не будет

Последний раз редактировалось gomer, 27.04.2015 в 23:40.
gomer вне форума  
 
Непрочитано 27.04.2015, 23:26
#28
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 188
Отправить сообщение для nolte с помощью Skype™


ну да тоже вариант возможно и покороче будет
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Непрочитано 28.04.2015, 18:36
#29
scad2015


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


Цитата:
Сообщение от gomer Посмотреть сообщение
хотя и этот у тех кто в танке работать не будет
Я в танке , спасибо за код, но до конца не выдает весь список, вылетает вот что:
Код:
[Выделить все]
; IAcadPViewport: IAcadPViewport Interface
; Property values:
;   Application (RO) = #<VLA-OBJECT IAcadApplication 000000013fb2d910>
;   ArcSmoothness = 100
;   Center = (213.154 151.613 0.0)
;   Clipped (RO) = 0
;   CustomScale = 0.00673419
;   Direction = (0.0 0.0 1.0)
;   DisplayLocked = 0
;   Document (RO) = #<VLA-OBJECT IAcadDocument 000000002991e058>
;   EntityTransparency = "ByLayer"
;   GridOn = -1
;   Handle (RO) = "2547"
;   HasExtensionDictionary (RO) = 0
;   HasSheetView (RO) = 0
;   Height = 210.264
;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 000000002fa43b88>
;   LabelBlockId = Ошибка
;   LabelBlockId32 = ; error: Exception occurred: 0xC0000005 (Access Violation)
; warning: unwind skipped on exception
; error: Exception occurred: 0xC0000005 (Access Violation)

Acad 2014 х64
scad2015 вне форума  
 
Непрочитано 28.04.2015, 20:42
#30
Кулик Алексей aka kpblc
Moderator

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


Ошибка ядра AutoCAD.

----- добавлено через 14 сек. -----
Напомни, чего ты в результате-то хотел?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.04.2015, 17:50
#31
scad2015


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ошибка ядра AutoCAD.
Разобрался. Ошибка из-за того что название листа было на русском.

--------------------------
Все равно не видит объект, который нужен. Можно еще каким-то образом его найти в файле?

Я просто с объектной моделью не знаком.

----- добавлено через ~13 мин. -----
Подробно:

Есть arx ( или вроде vlx .... ) решение (типа СПДС) для автокад, оно создает объекты, объекты переносятся с файлами. Объекты представляют из себя что-то типа укрупнительных сборок других объектов.

Есть просто желание доработать под себя еще пару команд/кнопок. Так как в программировании я не очень, хотел бы все осуществить на VBA.

Есть какие-нибудь идеи? Может можно как-то до них добраться (до объектов )через C#?
scad2015 вне форума  
 
Непрочитано 29.04.2015, 23:50
1 | #32
Кулик Алексей aka kpblc
Moderator

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


Не имея исходников или хотя бы загруженного arx / dbx, да на VBA - нереально, мне кажется. И .NET тут мало поможет (если вообще поможет).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.05.2015, 21:01
#33
scad2015


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


Кулик Алексей aka kpblc, arx загружены , есть enabler для объектов.

Интересно, некоторые свойства для некоторых объектов через VBA не изменить. В чем может быть загвоздка...
scad2015 вне форума  
 
Непрочитано 05.05.2015, 21:01
#34
Кулик Алексей aka kpblc
Moderator

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


Например, в отсутствии СОМ-интерфейса к объектам.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.05.2015, 09:44
#35
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,138
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от scad2015 Посмотреть сообщение
Интересно, некоторые свойства для некоторых объектов через VBA не изменить. В чем может быть загвоздка...
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Например, в отсутствии СОМ-интерфейса к объектам.
или в том, что эти свойства только для чтения.
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 16.01.2023, 11:14
#36
gizmo_zx

Проектировщик ЭО,ЭМ, ЭОС
 
Регистрация: 18.07.2007
Нижний Новгород
Сообщений: 254
<phrase 1= Отправить сообщение для gizmo_zx с помощью Skype™


NanoCad Электро (вертикальное решение на платформе Nanocad) один элемент
Есть ли возможность, хоть как-то добраться до свойств объекта программными методами?
Хочу иметь возможность пронумеровать (сквозной нумерацией) розетки.
Поле доступное через интерфейс "ЭЛЕКТРО" = Наименование

Код:
[Выделить все]
DUMPALL - DUMPALL; IAcadEntity: The standard interface for a basic TeighaX entity
; Значения свойств:
;   Application (RO) = #<VLA-OBJECT InanoCADApplication 00000092389FDE70>
;   Document (RO) = #<VLA-OBJECT InanoCADDocument 000000922BC3B9F0>
;   Handle (RO) = "5F3"
;   HasExtensionDictionary (RO) = 0
;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0000009200333418>
;   Layer = "ЭЛ_ОБОРУДОВАНИЕ_розетки"
;   Linetype = "ByLayer"
;   LinetypeScale = 100.0
;   Lineweight = -1
;   Material = "ByLayer"
;   ObjectID (RO) = 45
;   ObjectName (RO) = "WlAcDbElement"
;   OwnerID (RO) = 46
;   PlotStyleName = "ByLayer"
;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 00000092EDBD36B8>
;   Visible = -1
; Поддерживаемые методы:
;   ArrayPolar (3)
;   ArrayRectangular (6)
;   Copy ()
;   Delete ()
;   GetBoundingBox (2)
;   GetExtensionDictionary ()
;   GetXData (3)
;   Highlight (1)
;   IntersectWith (2)
;   Mirror (2)
;   Mirror3D (3)
;   Move (2)
;   Rotate (2)
;   Rotate3D (3)
;   ScaleEntity (2)
;   SetXData (2)
;   TransformBy (1)
;   Update ()
; IAcadPViewport: TeighaX Interface of rectangular object created in paper space that display view
; Значения свойств:
;   Application (RO) = #<VLA-OBJECT InanoCADApplication 00000092389FDE70>
;   ArcSmoothness = 100
;   Center = (0.0 0.0 0.0)
;   Clipped (RO) = 0
;   CustomScale = 1.0
;   Direction = (0.0 0.0 1.0)
;   DisplayLocked = 0
;   Document (RO) = #<VLA-OBJECT InanoCADDocument 000000922BC3B9F0>
;   GridOn = 0
;   Handle (RO) = "214"
;   HasExtensionDictionary (RO) = 0
;   HasSheetView (RO) = Ошибка.
;   Height = 324.391
;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0000009200333B98>
;   LabelBlockId = Ошибка.
;   Layer = "0"
;   LayerPropertyOverrides (RO) = Ошибка.
;   LensLength = 50.0
;   Linetype = "ByLayer"
;   LinetypeScale = 100.0
;   Lineweight = -1
;   Material = "ByLayer"
;   ModelView = Ошибка.
;   ObjectID (RO) = 47
;   ObjectName (RO) = "AcDbViewport"
;   OwnerID (RO) = 48
;   PlotStyleName = "ByLayer"
;   ShadePlot = 0
;   SheetView = Ошибка.
;   SnapBasePoint = (0.0 0.0)
;   SnapOn = 0
;   SnapRotationAngle = 0.0
;   StandardScale = 2
;   StandardScale2 = Ошибка.
;   Target = (0.0 0.0 0.0)
;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 00000092EDBD3E78>
;   TwistAngle = 0.0
;   UCSIconAtOrigin = -1
;   UCSIconOn = -1
;   UCSPerViewport = -1
;   ViewportOn = -1
;   Visible = -1
;   VisualStyle = Ошибка.
;   Width = 650.371
; Поддерживаемые методы:
;   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 ()
Или это фантастика?
gizmo_zx вне форума  
 
Непрочитано 16.01.2023, 21:51
#37
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 10,278


фантастика, что разработчики продукта уверены - что его "допиливать" под свои нужды нет необходимости, если до сих пор API не сделали)
Сергей812 вне форума  
 
Непрочитано 16.01.2023, 21:56
#38
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,138
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
если до сих пор API не сделали)
Вроде утверждают, что API есть, но по запросу
Или они про бим писали
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 16.01.2023 в 22:05.
doctorraz вне форума  
 
Непрочитано 17.01.2023, 08:46
#39
gizmo_zx

Проектировщик ЭО,ЭМ, ЭОС
 
Регистрация: 18.07.2007
Нижний Новгород
Сообщений: 254
<phrase 1= Отправить сообщение для gizmo_zx с помощью Skype™


Мы проработали год в электро.
Точность спецификации возросла ( все трубы , гайки и пр. закладываешь сразу и забываешь (что гуд) )
Но вот типовые операции, весь (или часть) такой то кабель (светильники, розетки) , заменить на другой (боль, слезы и истерика)
Невозможность прокладки лотков под углом к горизонту _/\_ (до сих пор не умеет). Скорость проектирования упала раз 5 и более. И это не косаемо багов и сурового наноэлектровского интерфейса. И это еще не про BIM.
gizmo_zx вне форума  
 
Непрочитано 17.01.2023, 09:38
#40
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 10,278


Цитата:
Сообщение от gizmo_zx Посмотреть сообщение
Мы проработали год в электро.
Точность спецификации возросла ( все трубы , гайки и пр. закладываешь сразу и забываешь (что гуд) )
Но вот типовые операции, весь (или часть) такой то кабель (светильники, розетки) , заменить на другой (боль, слезы и истерика)
Невозможность прокладки лотков под углом к горизонту _/\_ (до сих пор не умеет). Скорость проектирования упала раз 5 и более. И это не косаемо багов и сурового наноэлектровского интерфейса. И это еще не про BIM.
ну если представитель нано не обиделся на вашу формулировку "Очень хочется седло и педали приделать к этому велосипеду" и API к надстройке "электро" действительно нет - а на электро только точность спецификации возросла, то может в чистом нано опробовать организовать работу? На него то API есть.
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно получить свойства прокси объекта

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить свойства layout луки Программирование 2 23.06.2009 10:50
Как получить свойства 3dSolid Box в VB... 99garry Программирование 8 22.06.2009 20:58
ADT. Программно получить значение храктеристики. игорёк Программирование 10 25.08.2008 10:39
как получить из примитива его свойства paradoxvaha Программирование 5 24.07.2007 22:24
Можно ли получить список реакторов объекта? kos Программирование 1 13.01.2005 13:28