Поиск:

Ответ в темуСоздание новой темы Создание опроса
> копирование блока из файла в файл AutoCAD 
:(
    Опции темы
EEEEEE
Дата 19.3.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 15.5.2006

Репутация: нет
Всего: нет



Добрый, Всем!

Подскажите, пожалуйста.
Как скопировать блок из файла в файл AutoCAD средствами автоматизации?
PM MAIL   Вверх
mrbrooks
Дата 20.3.2009, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



EEEEEE, есть подозрения, что сначала надо прикрутить к дебилдеру библу автогада. Как это делается погугли - в сети есть примеры.
PM MAIL   Вверх
Dmi3ev
Дата 20.3.2009, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



http://www.cadsofttools.ru/products/cad_import_vcl.html
может быть полезно...


--------------------

PM MAIL   Вверх
EEEEEE
Дата 20.3.2009, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 15.5.2006

Репутация: нет
Всего: нет



Builder с AutoCAD соединил без дополнений. Работает без дополнительных компонентов. Нормально создаёт все примитивы и блоки, соэданные на конкретном листе. Но основной вопрос остался.

Может кто подскажет. Как же скопировать блок из файла в файл?
PM MAIL   Вверх
EEEEEE
Дата 27.3.2009, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 15.5.2006

Репутация: нет
Всего: нет



Есть слудующий код на VB:


Код

Copy objects to another drawing
This example creates Circle objects, then uses the CopyObjects method to copy the circles into a new drawing.
Sub Ch4_Copy_to_New_Drawing()
    Dim DOC0 As AcadDocument
    Dim circleObj1 As AcadCircle, circleObj2 As AcadCircle
    Dim centerPoint(0 To 2) As Double
    Dim radius1 As Double, radius2 As Double
    Dim radius1Copy As Double, radius2Copy As Double
    Dim objCollection(0 To 1) As Object
    Dim retObjects As Variant

    ' Define the Circle object
    centerPoint(0) = 0: centerPoint(1) = 0: centerPoint(2) = 0
    radius1 = 5#: radius2 = 7#
    radius1Copy = 1#: radius2Copy = 2#

    ' Add two circles to the current drawing
    Set circleObj1 = ThisDrawing.ModelSpace.AddCircle _
 (centerPoint, radius1)
    Set circleObj2 = ThisDrawing.ModelSpace.AddCircle _
 (centerPoint, radius2)
    ThisDrawing.Application.ZoomAll

    ' Save pointer to the current drawing
    Set DOC0 = ThisDrawing.Application.ActiveDocument

    ' Copy objects
    '
    ' First put the objects to be copied into a form compatible
    ' with CopyObjects
    Set objCollection(0) = circleObj1
    Set objCollection(1) = circleObj2

    ' Create a new drawing and point to its model space
    Dim Doc1MSpace As AcadModelSpace
    Dim DOC1 As AcadDocument
    Set DOC1 = Documents.Add
    Set Doc1MSpace = DOC1.ModelSpace

    ' Copy the objects into the model space of the new drawing. A
    ' collection of the new (copied) objects is returned.
    retObjects = DOC0.CopyObjects(objCollection, Doc1MSpace)
    Dim circleObj1Copy As AcadCircle, circleObj2Copy As AcadCircle

    ' Get the newly created object collection and apply new
    ' properties to the copies.
    Set circleObj1Copy = retObjects(0)
    Set circleObj2Copy = retObjects(1)
    circleObj1Copy.radius = radius1Copy
    circleObj1Copy.Color = acRed
    circleObj2Copy.radius = radius2Copy
    circleObj2Copy.Color = acRed
    ThisDrawing.Application.ZoomAll
    MsgBox "Circles copied."
End Sub




Как его "срастить" с этим: 

Код

template <class T> HRESULT __fastcall
IAcadDocumentDispT<T>::CopyObjects(VARIANT Objects/*[in]*/, VARIANT Owner/*[in,opt]*/,
                                   VARIANT* IdPairs/*[in,out,opt]*/,
                                   VARIANT* pNewObjects/*[out,retval]*/)



и реализовать средствами Builder?

PM MAIL   Вверх
Klin
Дата 27.3.2009, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(EEEEEE @  27.3.2009,  10:29 Найти цитируемый пост)
Как его "срастить" с этим: 


Без понятия, но судя по всему, нужно программно открыть один файл автокада, скопировать в память необходимый элемент, открыть второй файл и вставить в него нужный блок.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0731 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.