Wiki ЖБК

Материалы для проектирования железобетонных конструкций

Инструменты пользователя

Инструменты сайта


подключение_excel

Подключение к документу nanoCAD из MS Excel

Автор: Dmitry Rudenko

Альтернативная версия статьи:
http://habrahabr.ru/post/238867/

Доступ к объектам чертежа nanoCAD можно получить прямо из Excel. Для этого:

  • нажимаем Alt + F11 (запускаем MS VB for App)
  • в дереве проекта создаём новый модуль
  • подключаем следующие библиотеки (Tools - References…):
    • nanoCAD Type Library (NCAuto.dll)
    • MechaniCS COM 2.0 type library (McCOM2.dll)
    • OdaX 3.04 Type Library (OdaX_csd.dll)
  • добавляем следующий код в модуль:
Sub NANO()
    Dim app As nanoCAD.Application
    Set app = GetObject("", "nanoCAD.Application")
    app.Visible = True
 
    Dim ThisDrawing As nanoCAD.Document
    Set ThisDrawing = app.ActiveDocument
 
    Dim ms As AcadModelSpace
    Set ms = ThisDrawing.ModelSpace
 
    Dim ut As nanoCAD.Utility
    Set ut = ThisDrawing.Utility
 
    Dim server As McCOM2.IServer
    Set server = CreateObject("McCOM2.Server")
 
    Dim spdsobjects As McCOM2.ObjectsCollection
    Set spdsobjects = server.Query()
End Sub

Теперь с коллекцией ThisDrawing можно делать всё что угодно. Например, чтобы нарисовать линию, можно использовать следующий код:

    Dim line As AcadLine
    Dim pt0(2), pt1(2) As Double
    pt0(0) = 0
    pt0(1) = 0
    pt0(2) = 0
    pt1(0) = 1000
    pt1(1) = 1000
    pt1(2) = 1000
    Set line = ThisDrawing.ModelSpace.AddLine(pt0, pt1)

Свойства объекта

Чтобы посмотреть все свойства объекта, нужно щёлкнуть по переменной правой кнопкой и выбрать "Add Watch…". Теперь в режиме отладки можно следить за свойствами объекта в реальном времени.

Доступ к командной строке

Иногда возникает необходимость имитировать ввод каких-то команд в командную строку. Для этого можно использовать следующую конструкцию:

    ThisDrawing.SendCommand "CIRCLE" & vbCr & "100,100,0" & vbCr & "1000" & vbCr

Полезные ссылки

Обсуждение

qwerty, 2014-08-29 18:06
попробывал вставить ваш код, на строке /Set ms = ThisDrawing.ModelSpace/ возникает ошибка /type missmatch/ , возможно что то не так сделал...
qwerty, 2014-08-29 20:01
моя ошибка под nano все работает..
Дмитрий, 2016-04-26 15:21
Идея прекрасная!!! И решение тоже,я давно не практиковался в програмировании -решил попробовать , останавливается на этой строке Set ThisDrawing = app.ActiveDocument
ThisDrawing-не активный документ подскажите что не так, библиотеки подключил, прог-ма в отдельном модуле офис 2003 Спасибо
Ваш комментарий:
   ___   __  __   _  __
  / _ | / / / /  | |/_/
 / __ |/ /_/ /  _>  <  
/_/ |_|\____/  /_/|_|
 
PDF Export Download this page as a pdf Text Export Download this page as a plain text
подключение_excel.txt · Последнее изменение: 2014-10-09 13:26 (внешнее изменение)

Инструменты страницы