Jump to content

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


Recommended Posts

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

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

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

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

Link to comment
Share on other sites

  • 5 weeks later...

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

 

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

Link to comment
Share on other sites

  • 2 weeks later...

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

 

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

?

Link to comment
Share on other sites

  • 2 weeks later...

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

 

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 запускать ничего не происходит!И ошибок к сожалению тоже никаких не показывает, трассировку невозможно произвести!

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

 

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

 

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

Link to comment
Share on other sites

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

 

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

 

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

 

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

 

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

Link to comment
Share on other sites

  • 2 weeks later...

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

да.

 

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

Link to comment
Share on other sites

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

 

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

Link to comment
Share on other sites

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

 

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 ваш первый пример тоже работает без ошибок!

Link to comment
Share on other sites

  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт? Tell a friend!
×
×
  • Create New...