Author |
Topic |
|
Kuzmich
18 Posts |
Posted - 04/25/2005 : 21:13:40
|
Нужно из VB программно нарисовать новый элемент (типа резистора, непринципиально), потом помесить в стенсил свой же... С VB почти не знаком, может у кого есть код подобный? |
|
Kuzmich
18 Posts |
Posted - 04/26/2005 : 22:15:17
|
Ну это хоть возможно? |
|
|
brace
Russia
358 Posts |
Posted - 04/27/2005 : 09:04:21
|
делайте так: Tools > Macros > Visual Basic Editor откроется окно редактора там есть свой HELP, в поле поиска забейте фразу "Drop Method" там все расписано и примерчик есть. Скопируйте примерчик и вставьте в окно редактора затем в меню редактора нажмите кнопку RUN сложите окно редактора и увидите что нарисовалось. Кстати в хелпе много примеров кода которые можно использовать.
|
|
|
brace
Russia
358 Posts |
Posted - 04/27/2005 : 09:21:56
|
этот примерчик рисует шейп и кладет его мастером в "Document Stencil"
Public Sub Drop_Example1()
Dim vsoShape As Visio.Shape Dim vsoMaster As Visio.Master
Set vsoShape = ActivePage.DrawRectangle(1, 2, 2, 1)
'Create a master in the document. The master appears on the 'document stencil. Set vsoMaster = ActiveDocument.Drop(vsoShape, 0, 0)
End Sub
код взят из хелпа. |
|
|
Kuzmich
18 Posts |
Posted - 04/28/2005 : 16:53:13
|
Спасибо... :) Еще вопрос, как создать для прямой еще одну вкладку Geometry из VB? |
|
|
Kuzmich
18 Posts |
Posted - 04/28/2005 : 18:00:08
|
myob.AddSection (visSectionLastComponent) myob.AddRow(visSectionLastComponent, visRowComponent, visTagMoveTo) myob.AddRow(visSectionLastComponent, visRowComponent, visTagLineTo)
Выдает ошибку, требует что-то присвоить в последних двух функциях... Хотя в примере тоже без присвоения... |
|
|
Kuzmich
18 Posts |
Posted - 04/29/2005 : 00:49:01
|
myob.AddRow visSectionLastComponent, visRowComponent, visTagMoveTo myob.AddRow visSectionLastComponent, visRowComponent, visTagLineTo Убрал скобки, но все равно не добавляются MoveTo и LineTo... Ошибка опять... |
|
|
immortal
Russia
391 Posts |
Posted - 04/29/2005 : 09:01:47
|
quote: Originally posted by Kuzmich
myob.AddRow visSectionLastComponent, visRowComponent, visTagMoveTo myob.AddRow visSectionLastComponent, visRowComponent, visTagLineTo Убрал скобки, но все равно не добавляются MoveTo и LineTo... Ошибка опять...
надо вставить ещё предварительно это myob.AddRow visSectionFirstComponent + 1, visRowComponent, visTagComponent
а потом уже так: myob.AddRow visSectionFirstComponent + 1, visRowVertex, visTagMoveTo myob.AddRow visSectionFirstComponent + 1, visRowVertex, visTagLineTo
и должно быть: myob.AddSection visSectionLastComponent myob.AddRow visSectionFirstComponent + 1, visRowComponent, visTagComponent myob.AddRow visSectionFirstComponent + 1, visRowVertex, visTagMoveTo myob.AddRow visSectionFirstComponent + 1, visRowVertex, visTagLineTo
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
brace
Russia
358 Posts |
Posted - 04/29/2005 : 09:04:50
|
в хелре VB Editor забейте слово AddSection method там все расписано и примерчик есть
Public Sub AddSection_Example()
Dim vsoPage As Visio.Page Dim vsoShape As Visio.Shape 'Get the active page. Set vsoPage = ActivePage 'Draw a rectangle on the active page. Set vsoShape = vsoPage.DrawRectangle(1, 5, 5, 1)
'Add a scratch section to the ShapeSheet. vsoShape.AddSection visSectionScratch
End Sub
у меня на visio 2003 работает.
|
|
|
Kuzmich
18 Posts |
Posted - 04/29/2005 : 15:49:00
|
Да пример этот бесполезен... Мне нужно для вкладки Geometry... Сделал так: myob.AddSection (visSectionFirstComponent + 1) myob.AddRow visSectionFirstComponent + 1, visRowComponent, visTagComponent myob.AddRow visSectionFirstComponent + 1, visRowVertex, visTagMoveTo myob.AddRow visSectionFirstComponent + 1, visRowLast, visTagLineTo myob.AddRow visSectionFirstComponent + 1, visRowLast, visTagLineTo Set cellObj = myob.CellsSRC(visSectionFirstComponent + 1, 1, 0) cellObj.Formula = "0" Set cellObj = myob.CellsSRC(visSectionFirstComponent + 1, 1, 1) cellObj.Formula = "0" Set cellObj = myob.CellsSRC(visSectionFirstComponent + 1, 2, 0) cellObj.Formula = "0" Set cellObj = myob.CellsSRC(visSectionFirstComponent + 1, 2, 1) cellObj.Formula = "0.5" Set cellObj = myob.CellsSRC(visSectionFirstComponent + 1, 3, 0) cellObj.Formula = "0.5" Set cellObj = myob.CellsSRC(visSectionFirstComponent + 1, 3, 1) cellObj.Formula = "0"
Теперь работает, там все дело в параметрах для этой вкладки... |
|
|
immortal
Russia
391 Posts |
Posted - 04/29/2005 : 16:34:33
|
вобще если у тебя визио 2003, то можно воспользоваться рекодером как в ворде и екселе и записать макрос
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
|
Topic |
|
|
|