Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Про доступ к заранее созданным объектам


Автор: Darth_Sidious 24.2.2008, 16:34
Пытаюсь создать программу, считающую длины отрезков в Автокаде (нужна для прикладных задач). Но вся бяка в том, что когда она написана на VBA, то все работает, а когда - на VB 2008, то почему-то не работает. smile 
Смысл задачи в следующем - в имеющемся автокадовском файле нужно посчитать длины всех отрезков, принадлежащих определенным слоям. Отрезки уже давно нарисованы, теперь надо получить доступ к их свойству Length. Я знаю, что сделать это можно через коллекции объектов и конструкцию For Each...In...Next. В Автокаде роль коллекции играют пространство модели (ModelSpace) и пространство листа (PaperSpace), причем это свойства класса AcadDocument. И вот как это выглядит в VBA:
Код
Dim acDoc as AcadDocument
Dim acLine as AcadLine
Dim TotalLength as Double
...
For Each acLine In acDoc.ModelSpace
       TotalLength=TotalLength+acLine.Length
Next

Подобный ему код в VB 2008 почему-то работать не хочет: почему-то общая длина остается равной нулю. Хотя я правильно указывал все объекты: со всеми пространствами имен, которым они принадлежат.
Теперь объясню, зачем мне надо писать именно в VB 2008. Дело в том, что я пока пишу программки, выполняющие узкоспециализированные задачи, причем для самых разных программ: Автокада, СолидВоркса, Адоб Иллюстратора и т.д. После хотелось бы эти задачи объединить под одной "крышей", в одной интегрированной оболочке.

Автор: Darth_Sidious 25.2.2008, 12:40
Все, разобрался. Это был косяк в самом VB 2008. Самое интересное, что он исчез так же, как и появился - неожиданно. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)