Перейти к содержанию
ondry

Кто-нибудь пробовал на VBS подключиться к mcCOM2?

Рекомендуемые сообщения

Кто-нибудь пробовал на VBS подключиться к mcCOM2?

Скачал мануал, но не понял как это всё применить:(

Может кто поможет примером?

Обсуждалось здесь http://forum.nanocad.ru/index.php?showtopic=4156&st=0&p=13431&hl=mccom2&fromsearch=1entry13431

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приём! Меня видно? Кто-нибудь что-нибудь ответит?

Просто ужас как хочется научиться создавать ссылки и таблицы прямо из кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приём! Меня видно? Кто-нибудь что-нибудь ответит?

Просто ужас как хочется научиться создавать ссылки и таблицы прямо из кода.

Похоже только через MultiCAD всё надо будет делать!:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня интересует спдс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А mcCOM2 это у нас кто? СПДС? Или Геоника?

без разницы - это библиотека dll в составе продукта, которая описывает различные функции...

 

И я так понимаю, что приставка mc это и есть MultiCAD:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

получилось нарисовать выноску:

 

Sub note2()

'On Error Resume Next

 

Dim server

Set server = CreateObject("McCOM2.Server")

 

Dim obj

Set obj = server.CreateObject("SymSpdsNotePosition")

Dim pt1(2)

pt1(0) = 1000

pt1(1) = 1000

obj.TextPosition = pt1

obj.text = "123"

obj.Footer = "345"

obj.Place False, False

 

Dim leader1

Set leader1 = obj.Leaders.Add(CStr(-200) + ";" + CStr(-200) + ";" + CStr(0))

End Sub

 

Правда код вываливается на предпоследней строке, но выноска появляется.

 

Подскажите, как правильно задавать точку через вариант:

_http://gyazo.com/1d28a50a175fb56d0709e94499d3432c

?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вообще-то, точки задаются примерно так (один из вариантов)

Dim pt, x, y, z
x = 100
y = 100
z = 0
ThisDrawing.Utility.CreateTypedArray pt, 5, x, y, z

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё равно выдаёт ошибку Type mismatch =/

Ладно, вроде нашёл "обходной путь"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

получилось нарисовать выноску:

 

Sub note2()

'On Error Resume Next

 

Dim server

Set server = CreateObject("McCOM2.Server")

 

Dim obj

Set obj = server.CreateObject("SymSpdsNotePosition")

Dim pt1(2)

pt1(0) = 1000

pt1(1) = 1000

obj.TextPosition = pt1

obj.text = "123"

obj.Footer = "345"

obj.Place False, False

 

Dim leader1

Set leader1 = obj.Leaders.Add(CStr(-200) + ";" + CStr(-200) + ";" + CStr(0))

End Sub

 

Правда код вываливается на предпоследней строке, но выноска появляется.

 

Подскажите, как правильно задавать точку через вариант:

_http://gyazo.com/1d28a50a175fb56d0709e94499d3432c

?

 

Уважаемый, swell{d}, скажите вы запускаете скрипт из под Excel? У меня из под Excel всё работает и ошибок не выдает, а вот если код из VBS запускать ничего не происходит!И ошибок к сожалению тоже никаких не показывает, трассировку невозможно произвести!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос к разработчикам:

В Excel подключиться строкой Set server = CreateObject("McCOM2.Server") получается

А вот в LibreOffice Basic выдает ошибку? подскажите где копать?:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению не могу ничего подсказать про LibreOffice.

 

А в целом лучше на .net сейчас делать, там возможностей больше. Можно свои объекты писать, есть доступ ко всем символам оформления. Референсить mapimgd.dll. Кое какие примеры есть в чистом нанокаде. Добавим примеры и в следующий наноСПДС.

 

McCOM2 это не MultiCAD, COM сейчас не развивается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению не могу ничего подсказать про LibreOffice.

 

А в целом лучше на .net сейчас делать, там возможностей больше. Можно свои объекты писать, есть доступ ко всем символам оформления. Референсить mapimgd.dll. Кое какие примеры есть в чистом нанокаде. Добавим примеры и в следующий наноСПДС.

 

Да, но при этом придется устанавливать дополнительное ПО для программирования! А так скриптами небольшие задачи вполне реально реализовать!

 

McCOM2 это не MultiCAD, COM сейчас не развивается.

 

Просто приставка Mc вначале напоминает MultiCAD :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемый, swell{d}, скажите вы запускаете скрипт из под Excel?

да.

 

подскажите, как кодом вставить таблицу из базы, зная её название?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Без ошибок у меня работает только такой код:

 

Sub rdv_notepos()

'On Error Resume Next

 

Dim app As nanoCAD.Application

Dim ThisDrawing As nanoCAD.Document

Dim server As McCOM2.IServer

 

Set app = GetObject("", "nanoCAD.Application")

Set ThisDrawing = app.ActiveDocument

Set server = CreateObject("McCOM2.Server")

 

Dim obj As McCOM2.SymSpdsNotePosition

Set obj = server.CreateObject("SymSpdsNotePosition")

Dim pt1(2) As Double, pt2(2) As Double, pt3(2) As Double

pt1(0) = 1000

pt1(1) = 1000

obj.TextPosition = pt1

obj.text = "123"

obj.Footer = "345"

 

pt2(0) = 0

pt2(1) = 0

obj.Leaders.Add pt2

pt3(0) = 0

pt3(1) = 200

obj.Leaders.Add pt3

obj.Leaders.item(1).Arrow = mcArrowDotFilled

 

obj.Place False, False

'ThisDrawing.Regen (ModelSpace) 'не работает нифига

ThisDrawing.SendCommand "Regen "

End Sub

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Без ошибок у меня работает только такой код:

 

Sub rdv_notepos()

'On Error Resume Next

 

Dim app As nanoCAD.Application

Dim ThisDrawing As nanoCAD.Document

Dim server As McCOM2.IServer

 

Set app = GetObject("", "nanoCAD.Application")

Set ThisDrawing = app.ActiveDocument

Set server = CreateObject("McCOM2.Server")

 

Dim obj As McCOM2.SymSpdsNotePosition

Set obj = server.CreateObject("SymSpdsNotePosition")

Dim pt1(2) As Double, pt2(2) As Double, pt3(2) As Double

pt1(0) = 1000

pt1(1) = 1000

obj.TextPosition = pt1

obj.text = "123"

obj.Footer = "345"

 

pt2(0) = 0

pt2(1) = 0

obj.Leaders.Add pt2

pt3(0) = 0

pt3(1) = 200

obj.Leaders.Add pt3

obj.Leaders.item(1).Arrow = mcArrowDotFilled

 

obj.Place False, False

'ThisDrawing.Regen (ModelSpace) 'не работает нифига

ThisDrawing.SendCommand "Regen "

End Sub

 

В Nanocad 3.7 Free ваш первый пример тоже работает без ошибок!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...