Форум пользователей 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 | ||
красиво, но у меня ругается на отсутствие библиотек...
|
Автор: | 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
|
Автор: | 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 | ||
Вот, еще подкрутил немного.
|
Автор: | Shishok [ 31 мар 2017, 13:18 ] |
Заголовок сообщения: | Re: рисование в висио по команде из EXEL |
Мысли по поводу... DArkadiy, режет глаз конечно, то что у тебя в коде происходит деление на 25.4. Аж 73 раза. Надо бы от этого избавиться. Правда в методах DrawLine и DrawRectangle от этого не избавишься. И еще. Ты размерные линии позиционируешь задавая абстрактные значения. А в идеале нужно их привязывать к конкретным точкам конкретных шейпов. Правда это увеличит сложность и, возможно, объем кода. |
Автор: | 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 (Ни что не ново под луной - лат.) Visimation в статье Automating Visio to Solve Business Problems писал(а): 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, ".", "_") и соответственно в папке файлы сортируются по дню... в итоге каша из дат и при поиске нужного файла чем заменить для получения желаемого результата? |
Автор: | 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/ |