Форум пользователей Visio
http://visio.getbb.ru/

рисование в висио по команде из EXEL
http://visio.getbb.ru/viewtopic.php?f=29&t=1046
Страница 6 из 6

Автор:  DArkadiy [ 29 мар 2017, 17:30 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

красиво, но у меня ругается на отсутствие библиотек...

Вложения:
.JPG
.JPG [ 40.07 Кб | Просмотров: 1022 ]

Автор:  Shishok [ 29 мар 2017, 17:49 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

Хз.
Попробуй заменить код в своем файле моим кодом. Копипастой.

Автор:  Shishok [ 29 мар 2017, 17:58 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

DArkadiy, у тебя вроде стоит Visio 2007?
Покажи как выглядит список подключенных библиотек. (Меню Tools > References) в моем файле.

Автор:  Surrogate [ 29 мар 2017, 18:32 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

Shishok писал(а):
Покажи как выглядит список подключенных библиотек.
в файле приложенном в сообщении
Изображение
возможно DArkadiy открыл файл приложенный Shishok, а там в референсах прописана другая версия визио? от этого этот косяк…

Автор:  Shishok [ 29 мар 2017, 18:47 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

Вот и я так думаю.

Автор:  DArkadiy [ 31 мар 2017, 10:06 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

да у меня 2007

Вложения:
.JPG
.JPG [ 40.77 Кб | Просмотров: 953 ]

Автор:  Shishok [ 31 мар 2017, 10:21 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

Вот, тебе надо найти в этом списке то же самое(Microsoft Visio №№ Type Library), только с другим номером. С номером твоей версии, 12.0. И подключить. То есть поставить галочку. А с текущего пункта(Missing: Microsoft Visio 14.0 Type Library) убрать.

Автор:  DArkadiy [ 31 мар 2017, 13:03 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

крутота, спасибо огромное

Автор:  Shishok [ 31 мар 2017, 13:06 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

Вот, еще подкрутил немного.

Вложения:
model_УПР_v50.xls [760.5 Кб]
Скачиваний: 134

Автор:  Shishok [ 31 мар 2017, 13:18 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

Мысли по поводу...
DArkadiy, режет глаз конечно, то что у тебя в коде происходит деление на 25.4. Аж 73 раза. Надо бы от этого избавиться. Правда в методах DrawLine и DrawRectangle от этого не избавишься. :cry:

И еще.
Ты размерные линии позиционируешь задавая абстрактные значения. А в идеале нужно их привязывать к конкретным точкам конкретных шейпов. Правда это увеличит сложность и, возможно, объем кода. :)

Автор:  Surrogate [ 31 мар 2017, 15:47 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

Shishok писал(а):
А в идеале нужно их привязывать к конкретным точкам конкретных шейпов.
этот код добавляет выделенному прямоугольнику точки коннекта по углам и образмеривает его
Код:
Sub AddDimensionLines()
Dim sh As Shape
Set sh = ActivePage.Shapes(1)
Dim a As Shape, i%
Set sh = ActiveWindow.Selection.PrimaryItem
' добавляем точки коннекта
For c = 0 To 3
i = sh.AddRow(visSectionConnectionPts, visRowLast, visTagCnnctPt)
Dim vsoRow As Visio.Row
Set vsoRow = sh.Section(visSectionConnectionPts).Row(i)
'    sh.CellsSRC(visSectionConnectionPts, 0, visCnnctX).RowNameU = "Bottom_Left"
'    sh.CellsSRC(visSectionConnectionPts, 1, visCnnctX).RowNameU = "Bottom_Right"
'    sh.CellsSRC(visSectionConnectionPts, 2, visCnnctX).RowNameU = "Top_Right"
'    sh.CellsSRC(visSectionConnectionPts, 3, visCnnctX).RowNameU = "Top_Left"
Select Case i
    Case 0
    vsoRow.Cell(visCnnctX).FormulaU = "Width*0"
    vsoRow.Cell(visCnnctY).FormulaU = "Height*0"
    Case 1
    vsoRow.Cell(visCnnctX).FormulaU = "Width*1"
    vsoRow.Cell(visCnnctY).FormulaU = "Height*0"
    Case 2
    vsoRow.Cell(visCnnctX).FormulaU = "Width*1"
    vsoRow.Cell(visCnnctY).FormulaU = "Height*1"
    Case 3
    vsoRow.Cell(visCnnctX).FormulaU = "Width*0"
    vsoRow.Cell(visCnnctY).FormulaU = "Height*1"
End Select
    vsoRow.Cell(visCnnctDirX).FormulaU = 0#
    vsoRow.Cell(visCnnctDirY).FormulaU = 0#
    vsoRow.Cell(visCnnctType).FormulaU = visCnnctTypeInward
Next
' добавляем размерную линию слева
Dim d As Shape
Set d = Application.ActiveWindow.Page.Drop(Application.Documents.Item("DIMENG_M.VSS").Masters.ItemU("Aligned even"), 0, 0)
    Dim vsoCPD As Visio.Cell
    Dim vsoCPS As Visio.Cell
    Set vsoCPD = d.CellsU("BeginX")
    Set vsoCPS = sh.CellsSRC(visSectionConnectionPts, 0, visCnnctX)
    vsoCPD.GlueTo vsoCPS
    Set vsoCPD = d.CellsU("EndX")
    Set vsoCPS = sh.CellsSRC(visSectionConnectionPts, 3, visCnnctX)
    vsoCPD.GlueTo vsoCPS
' добавляем размерную линию сверху
Set d = Application.ActiveWindow.Page.Drop(Application.Documents.Item("DIMENG_M.VSS").Masters.ItemU("Aligned even"), 0, 0)
    Set vsoCPD = d.CellsU("BeginX")
    Set vsoCPS = sh.CellsSRC(visSectionConnectionPts, 3, visCnnctX)
    vsoCPD.GlueTo vsoCPS
    Set vsoCPD = d.CellsU("EndX")
    Set vsoCPS = sh.CellsSRC(visSectionConnectionPts, 2, visCnnctX)
    vsoCPD.GlueTo vsoCPS
End Sub

Автор:  Shishok [ 01 апр 2017, 16:27 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

Сделал привязки размерных линий к шейпам. Удалил лишнее деление на 25.4.
Вот, можно скачать файл, если кому надо.

Скачать - Внедренный объект_черчение.zip:
https://yadi.sk/d/qbpj9WI9d2eqF

Автор:  Surrogate [ 14 апр 2017, 19:45 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

Nil novi sub luna (Ни что не ново под луной - лат.)
Manufacturing – Automated Parts Configuration for Sales Proposals
The problem
Anthro Corporation, a leading manufacturer of modular computer and office furniture, needed to simplify and refine the process it used to design cart and workstation configurations for their customers. Their existing process involved sales reps discussing basic and add-on furniture configurations with customers over the phone or in person. The sales rep then created a customer sales proposal, containing a sketch of the desired furniture configuration. This manual process frequently resulted in a cycle requiring multiple revisions and reviews of the furniture sketch by the customer. In addition, because the sketches were not accurate, it was easy for the sales rep to inadvertently miss adding a necessary part to the sales proposal. Anthro Corp. turned to Visio for a solution.

The solution
The solution was to automate the drawing of the furniture design. Visimation added two of the furniture product lines to a database and developed a Visio application that included a custom template containing a user interface, customized Visio stencils, and SmartShapes symbols representing the modular furniture and associated parts. As shapes are placed on the drawing page, special rules are applied enforcing part sizes, scales, and part dependencies—for example, how the part shapes fit together. The user interface lets the sales rep select the add-ons requested by the customer. Figure 5 shows a form enabling the sales rep to create a customized cart, selecting the types of casters, the width and height of the cart, and the type and color of the cart's surface.
Изображение

Автор:  DArkadiy [ 19 фев 2018, 18:37 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

добрый день, спасибо всем за участие и оптимизацию кода
давно глобально ничего не переделывал, а тут встал вопрос удобства и появился такой вопрос: как можно сделать так чтобы дата была в формате гггг.мм.дд? (сейчас дд.мм.гггг)
сейчас у меня при сохранении используется
Код:
Replace(Date, ".", "_")

и соответственно в папке файлы сортируются по дню... в итоге каша из дат и :wall: при поиске нужного файла
чем заменить для получения желаемого результата?

Автор:  9rey [ 19 фев 2018, 22:34 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

format(date,"yyyy.mm.dd")

Автор:  DArkadiy [ 20 фев 2018, 11:34 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

9rey писал(а):
format(date,"yyyy.mm.dd")

а как мне это использовать?
сейчас у меня как то так
Код:
nmx = Replace(Date, ".", "_") & " "  ccont & ".vsd"
appVisio.ActiveDocument.SaveAsEx pth & "\" & nmx, visSaveAsWS + visSaveAsListInMRU

Автор:  9rey [ 20 фев 2018, 11:51 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

Код:
nmx = Replace(Format(Date,"yyyy.mm.dd"), ".", "_") & " "  ccont & ".vsd"
appVisio.ActiveDocument.SaveAsEx pth & "\" & nmx, visSaveAsWS + visSaveAsListInMRU

Автор:  DArkadiy [ 20 фев 2018, 18:02 ]
Заголовок сообщения:  Re: рисование в висио по команде из EXEL

9rey, спасибо

Страница 6 из 6 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/