All Forums
 Категория Visio
 Форум Вопросы и ответы
 Пакетно конвертировать ряд чертежей dwg->vsd
Author Previous Topic Topic Next Topic  

bdfy

Belarus
267 Posts

Posted - 03/19/2010 :  19:12:32
В визио есть адд-он. конвертирует автокадовские чертежи.
есть у меня несколько десятков чертежей. я их хочу пакетно обработать.
- открыть новый документ визио
- конвертировать dwg->vsd
- получившийся чертеж сохранить на новом листе с опред. именем.

из всего этого наиболее насущная проблема это как конвертировать dwg->vsd из под макроса ?

bdfy

Belarus
267 Posts

Posted - 03/19/2010 :  21:20:34
автокадовский файл можно просто открыть через open. в меню по правому клику тогда будет конвертация. но в макрос она не записывается (( как ее вызвать ?
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 03/20/2010 :  08:13:58
сделал. вот так вот кривенько правда ))
Sub test()

nums = Array(2, 3, 5, 10, 12, 13, 16, 18, 19, 20, 22, 27, 29, 30, 32, 33, 34, 38, 40)

For Each num In nums
 
 
 found = False
 
    Dim strMasterNames() As String
    Dim intLowerBound As Integer
    Dim intUpperBound As Integer


    ActiveDocument.Pages.GetNames strMasterNames
    intLowerBound = LBound(strMasterNames)
    intUpperBound = UBound(strMasterNames)
    Debug.Print ActiveDocument; " Lower bound:"; intLowerBound; "Upper bound:"; intUpperBound

 
    While intLowerBound <= intUpperBound
    
        
       ' Debug.Print strMasterNames(intLowerBound) & vsoPage1

        If strMasterNames(intLowerBound) = CStr(num) Then
        found = True
        End If
        
        intLowerBound = intLowerBound + 1
    Wend

Debug.Print found

If Not (found) Then
    Set vsoPage1 = ActiveDocument.Pages.Add
    vsoPage1.Name = CStr(num)
    vsoPage1.Background = False
    vsoPage1.Index = ActiveDocument.Pages.Count + 1
End If


Set vsoPage1 = ActiveDocument.Pages.ItemU(CStr(num))
 
    
Visio.Application.Addons("Convert CAD Drawings...").Run ("I:\sx " & num & ".DWG")


ActiveWindow.SelectAll


ActiveWindow.Selection.Cut

Application.AlertResponse = 7

ActiveWindow.Close

Application.AlertResponse = 0

Application.ActiveWindow.Page = Application.ActiveDocument.Pages.ItemU(CStr(num))

ActiveWindow.Paste
Next num

'Application.Settings.ShowFileSaveWarnings = True
End Sub

предложения по доработке приветсвуются )
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 03/20/2010 :  20:25:15
А что именно кажется кривым?
Со стороны посмотреть - вроде все в рамках приличия... :)
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 10/27/2010 :  19:50:03
Кто нибудь знает как наиболее корректно сконвертировать dwg в vsd ? Пробовал в визио 2010 конвертировать - чертеж выходит маленьким (но это поправимо масштабом), хуже то что весь текст плывет - ибо по размеру намного больше картинки. что с этим делать ?
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)