Vytisknout stránku | Zavřít okno

Formaty vykresu

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: iLogic a ETO
Popis fóra: Funkce a makra iLogic, Inventor Engineering to Order (ETO), automatizace a konfigurace výrobků
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=19322
Datum vytištění: 07.kvě.2026 v 17:18


Téma: Formaty vykresu
Odeslal: CADCAPONE
Předmět: Formaty vykresu
Datum odeslání: 20.kvě.2014 v 09:47
Dobrý den.
Potreboval by som poradiť s Ilogic na zmenu velkosti výkresu.
Problém je v tom že ked zmením výkes z A4 na A2 tak ho zmení ale nepridelí mi tam rámik. Titulný blok pridelí v poriadku aj velkosť listu aj orientáciu.

Ďakujem za pomoc


Tu je iLogic:

____
Sub Main()


    Dim cd
    cd = ThisApplication.CommandManager.ControlDefinitions("DrawingBorderInsertNoDlgCtxCmd")
   
    Dim bp
    bp = ThisApplication.ActiveDocument.BrowserPanes.Item("Model")
    ChangeList()
    Dim node
    node = FindBorderNode(Format_vykresu, bp.TopNode.BrowserNodes)
   
    If Not ThisDoc.Document.ActiveSheet.Border Is Nothing Then
    ThisDoc.Document.ActiveSheet.Border.Delete
    End If
   
    node.DoSelect
    cd.Execute2 (True)   
    InventorVb.DocumentUpdate
    iLogicVb.UpdateWhenDone = True
    ThisApplication.ActiveView.Fit
End Sub

Function FindBorderNode(name, nodes)
    Dim node
    For Each node In nodes
        If name = node.BrowserNodeDefinition.Label Then
            FindBorderNode = node
            Exit Function
        End If
   
        FindBorderNode = FindBorderNode(name, node.BrowserNodes)
        If Not FindBorderNode Is Nothing Then
            Exit Function
        End If
    Next
End Function

Function ChangeList()
kLandscapePageOrientation = 10242
kPortraitPageOrientation = 10243
If Format_vykresu = "CEP A4" Then
ActiveSheet.ChangeSize("A4", MoveBorderItems := True)
ThisApplication.ActiveDocument.ActiveSheet.Orientation  = kPortraitPageOrientation

Else If Format_vykresu = "CEP A3" Then
ActiveSheet.ChangeSize("A3", MoveBorderItems := True)
ThisApplication.ActiveDocument.ActiveSheet.Orientation  = kLandscapePageOrientation


Else If Format_vykresu = "CEP A2" Then
ActiveSheet.ChangeSize("A2", MoveBorderItems := True)
ThisApplication.ActiveDocument.ActiveSheet.Orientation  = kLandscapePageOrientation

Else If Format_vykresu = "CEP A1" Then
ActiveSheet.ChangeSize("A1", MoveBorderItems := True)
ThisApplication.ActiveDocument.ActiveSheet.Orientation  = kLandscapePageOrientation

Else If Format_vykresu = "CEP A0" Then
ActiveSheet.ChangeSize("A0", MoveBorderItems := True)
ThisApplication.ActiveDocument.ActiveSheet.Orientation  = kLandscapePageOrientation

End If

End Function




Odpovědi:
Odeslal: Navara
Datum odeslání: 20.kvě.2014 v 15:28
Kdo vám tuhle hrůzu napsal?
Zkuste tohle
  Sub Main()
      Dim Format_vykresu As String = "CEP A2" 'TODO: Nastavit spravnou hodnotu
      Dim oSheet As Sheet = ThisDrawing.ActiveSheet.Sheet
      ChangeSheetSize(Format_vykresu, oSheet)
  End Sub
  Sub ChangeSheetSize(Format_vykresu As String, oSheet As Sheet)
      Select Case Format_vykresu
          Case "CEP A1"
              oSheet.Size = DrawingSheetSizeEnum.kA1DrawingSheetSize
              oSheet.Orientation = PageOrientationTypeEnum.kLandscapePageOrientation
          Case "CEP A2"
              oSheet.Size = DrawingSheetSizeEnum.kA2DrawingSheetSize
              oSheet.Orientation = PageOrientationTypeEnum.kLandscapePageOrientation
          Case "CEP A3"
              oSheet.Size = DrawingSheetSizeEnum.kA3DrawingSheetSize
              oSheet.Orientation = PageOrientationTypeEnum.kLandscapePageOrientation
          Case "CEP A4"
              oSheet.Size = DrawingSheetSizeEnum.kA4DrawingSheetSize
              oSheet.Orientation = PageOrientationTypeEnum.kPortraitPageOrientation
      End Select
      Dim borderDef As BorderDefinition = oSheet.Parent.BorderDefinitions(Format_vykresu)
      oSheet.Border.Delete()
      oSheet.AddBorder(borderDef)
  End Sub


Odeslal: CADCAPONE
Datum odeslání: 20.kvě.2014 v 21:43
Ďakujem. To čo znamená nastaviť správnu hodnotu?Akú? tomu som nepochopil.

Ďakujem za vysvetlenie.


Odeslal: CADCAPONE
Datum odeslání: 21.kvě.2014 v 07:04
Nefunguje to.Rámček mi uplne vymaže. ja mám nadefinované rámčeky svoje.


Odeslal: Navara
Datum odeslání: 21.kvě.2014 v 08:28

Z vašeho příspěvku není jasné, jak se dostanete k proměnné Format_vykresu
Použité pro nastavování formátu


If Format_vykresu = "CEP A4" Then

a volby rámečku

Dim node
node = FindBorderNode(Format_vykresu, bp.TopNode.BrowserNodes)

Ten kód taky předpokládá, že rámeček se jmenuje stejně jako je hodnota té proměnné.
Pokud máte jinak pojmenované rámečky, je potřeba upravit 4. řádek odspodu mého kódu tak, aby to odpovídalo vašim pojmenovaným rámečkům.


Dim borderDef As BorderDefinition = oSheet.Parent.BorderDefinitions(Format_vykresu)

 



Odeslal: Navara
Datum odeslání: 22.kvě.2014 v 11:27
Tady je funkční prototyp. Pro změnu formátu použijte Formulář1
uploads/9996/ZmenaFormatu.zip" rel="nofollow - uploads/9996/ZmenaFormatu.zip



Vytisknout stránku | Zavřít okno