Zobrazit plnou verzi příspěvku: Formaty vykresu

CADCAPONE
20.05.2014, 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 pomocTu 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.FitEnd SubFunction 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    NextEnd FunctionFunction ChangeList()kLandscapePageOrientation = 10242kPortraitPageOrientation = 10243If Format_vykresu = "CEP A4" ThenActiveSheet.ChangeSize("A4", MoveBorderItems := True)ThisApplication.ActiveDocument.ActiveSheet.Orientation  = kPortraitPageOrientationElse If Format_vykresu = "CEP A3" ThenActiveSheet.ChangeSize("A3", MoveBorderItems := True)ThisApplication.ActiveDocument.ActiveSheet.Orientation  = kLandscapePageOrientationElse If Format_vykresu = "CEP A2" ThenActiveSheet.ChangeSize("A2", MoveBorderItems := True)ThisApplication.ActiveDocument.ActiveSheet.Orientation  = kLandscapePageOrientationElse If Format_vykresu = "CEP A1" ThenActiveSheet.ChangeSize("A1", MoveBorderItems := True)ThisApplication.ActiveDocument.ActiveSheet.Orientation  = kLandscapePageOrientationElse If Format_vykresu = "CEP A0" ThenActiveSheet.ChangeSize("A0", MoveBorderItems := True)ThisApplication.ActiveDocument.ActiveSheet.Orientation  = kLandscapePageOrientationEnd IfEnd Function

Navara
20.05.2014, 15:28

Kdo vám tuhle hrůzu napsal?Zkuste tohle[code]  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[/code]

CADCAPONE
20.05.2014, 21:43
Ďakujem. To čo znamená nastaviť správnu hodnotu?Akú? tomu som nepochopil.Ďakujem za vysvetlenie.

CADCAPONE
21.05.2014, 07:04
Nefunguje to.Rámček mi uplne vymaže. ja mám nadefinované rámčeky svoje.

Navara
21.05.2014, 08:28

Z vašeho příspěvku není jasné, jak se dostanete k proměnné Format_vykresuPoužité pro nastavování formátu[code]If Format_vykresu = "CEP A4" Then[/code]a volby rámečku[code]Dim nodenode = FindBorderNode(Format_vykresu, bp.TopNode.BrowserNodes)[/code]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.[code]Dim borderDef As BorderDefinition = oSheet.Parent.BorderDefinitions(Format_vykresu)[/code] 

Navara
22.05.2014, 11:27


Tady je funkční prototyp. Pro změnu formátu použijte Formulář1uploads/9996/ZmenaFormatu.zip