ARKANCE - globální Platinum partner Autodesk ARKANCE | KONTAKT - CZ | SK | EN | DE
Registrujte se na 22. ročník konference CADfórum 2025 - 30.9. Zámek Valeč.
Přes 119.000 registrovaných u nás, celkem 1.097.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků. Vyzkoušejte nový přesný Inženýrský kalkulátor a aktualizovaný Generátor čarových kódů.
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

?
CAD diskuze, rady, výměna zkušeností

CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion, 3ds Max, Vault a s dalšími CAD/BIM/PDM aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoMax rozměry ipt

 Odpovědět Odpovědět Stránka  <123> archiv
Autor
Keberdle Václav Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 25.říj.2004
Lokalita: Czech Republic
Používám:
Autocad 2006 LT,Rhinoceros 4,Catia 4
Stav: Offline
Bodů: 152
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 10:46

Reaguji na

na sebe :)

tim vybrat dle velikosti jsem myslel vas chtel popostrcit.

Inventor totiz dokaze vyhledat vsechny dily v sestave jenz maji mensi /vetsi

"telesovou uhlopricku" takze

to nejak jde..

Staci jen zjistit jak to dela..

Zpět nahoru
Keberdle Václav Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 25.říj.2004
Lokalita: Czech Republic
Používám:
Autocad 2006 LT,Rhinoceros 4,Catia 4
Stav: Offline
Bodů: 152
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 10:48

Původně odeslal(a) Otasek Otasek napsal(a):

Lze nějak zjistit největší rozměry dílce ve směrech souřadného systému? Není potřeba rozlišovat jeho tvar, pouze největší opsaný kvádr, do kterého se vejde

Ale to se muze lisit .. nemusi to byt jen kvadr jako nejlepsi polotovar.

Nebylo by lepsi udelat uzivatelske vlastnosti a ty pak definovat > nacist do razitka ..

Zpět nahoru
Otasek Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 14.lis.2004
Lokalita: Czech Republic
Stav: Offline
Bodů: 340
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 11:00
s tím přesným určením polotovaru je to dost těžké, asi programově by to odladit dokonale nešlo, ale chcu to alespon pro kontrolu
nedávno jsem se upsal a ve výrobě uřezaly leštěnou duralovou desku místo 1000x500 tak 1000x400, zjistili to až když to frezafi nějak nevycházelo a to už je celkem pozdě. Tak bych si alespon mohl "ošahat" celkové rozměry a porovnat je s tím co mám napsané v razítku (koty byly v pořádku, jen se na ně nikdo nepodíval) a tím se vyhnout takovým a podobným nepříjemnostem
používám: ASI9 SP4

Ing. Vladimír Janča
Konstrukce strojů a zařízení
Kvasice
Zpět nahoru
Lubomír Baďura Zobrazit panel
Diskutér
Diskutér

Přihlášen: 06.říj.2004
Lokalita: ČR (VY)
Používám:
Inventor 2020
Stav: Offline
Bodů: 52
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 11:15
Původně odeslal(a) Radek Pícha Radek Pícha napsal(a):

Ručně vložit jedno políčko do oblasti roh.razítka je podle mě pro uživatele zatěžující. Spouštění makra jedním tlačítkem před dokončením výkresu se mi zdá jednodušší. Makro, které spouštím, řeší více věcí, například aktualizuje datum poslední změny. Též by se mi líbilo, kdyby to fungovalo bez nutnosti mačkat tlačítko...

Dobrý den!

Automatické spuštění makra lze v Inventoru zajistit jeho správným pojmenováním. Pokud název makra obsahuje "AutoOpen", "AutoNew", "AutoSave", "AutoClose" nebo "AutoEdit", makro se automaticky spustí při provádění příslušné akce, např. při ukládání výkresu (podrobnosti viz. Help v Inventoru).

Pro inspiraci přikládám makro (viz. níže), které řeší zápis hmotnosti modelu a použitých výkresových měřítek do uživatelských parametrů výkresu.

Prosím kohokoliv, kdo je ochoten poskytnout nějaká makra pro Inventor, aby je poslal na mou adresu nebo je zveřejnil v této konferenci (třeba pod nějakým novým tématem). Děkuji.


Option Explicit
Const SpaceBeforeMassUnit As Integer = 1
Const TotalMassUnit As String = "kg"

'Always use X and Y in the Scale display string
'Example HowToDisplayFirstViewScale=[X:Y] will display as [1:2] in the properties
Const HowToDisplayFirstViewScale As String = "X:Y"

'Always use X and Y in the Scale display string
'Example HowToDisplayAllViewScales=X:Y will display as 1:2 in the properties
Const HowToDisplayAllViewScales As String = "X:Y"
 
'Set the charactor for the All View Scales list separator
'Example ListSparator="," the list will dispaly as [5:1],[1:1]
Const ListSparator As String = " "
 
'Value that will control if the the First View is excluded from the All View Scales list
'True: Exclude the Scale of the First View from the All View Scales list
'False: All View Scales are included in the list
Const ExcludeFirstInAllScales As Boolean = True

'True: Uses the same display style as inventor, Scale 2.5 is shown as 2.5:1
'False: Always find an integer value for both values, Scale 2.5 is shown as 5:2
Const ShowScaleAsInventor As Boolean = True
Const ShowScaleAsInventorDecimals As Integer = 2

Public Sub AutoSave()
    Call UpdateTotalMassInPartsList
    Call ShowFirstViewScale
    Call ShowAllScales
End Sub

 
Public Sub UpdateTotalMassInPartsList()
   
    'ThisApplication.StatusBarText = "Updating Totalmass in the Parts List, Please wait."

    'On Error GoTo WrongPartsList
    ' Set a reference to the drawing document.
    ' This assumes a drawing document is active.
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument
   
    Dim oPropSet As Property
    'Set the custom property "TotalMass" with the Assembly Mass
    Set oPropSet = oDrawDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE }").Item("TotalMass")

    If oDrawDoc.ReferencedFiles.Count <> 0 Then
        Dim oTotalMass As MassProperties
        Set oTotalMass = oDrawDoc.ReferencedFiles.Item(1).ComponentDefinition.MassPro perties
   
        Dim TotalMass As Double
        TotalMass = Round(oTotalMass.Mass, 1)
   
   
        oPropSet.Value = TotalMass & Space(SpaceBeforeMassUnit) & TotalMassUnit
    Else
        MsgBox ("Ve výkresu není pohled")
        oPropSet.Value = ""
    End If
   
End Sub

Private Sub ShowFirstViewScale()
 
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument
    Dim ScaleProp As String
   
    On Error Resume Next
 
    'Find the Scale of the first View on the first Sheet
    ScaleProp = ConvScale2Fraction(oDrawDoc.Sheets.Item(1).DrawingViews.Item (1).Scale, True)
   
    'Add a custom property "Scale" with all the view scales
    Dim oPropSet As PropertySet
   
    Set oPropSet = ThisApplication.ActiveDocument.PropertySets("{D5CDD505-2E9C- 101B-9397-08002B2CF9AE}")
    Call oPropSet.Item("FirstViewScale").Delete
    Call oPropSet.Add(ScaleProp, "FirstViewScale")
   
    'Still having some problems that the last property does not update correct
    Call RefreshProperties
   
End Sub
 

Private Sub ShowAllScales()
   
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument
   
    ' Set a reference to the first drawing view on the active sheet.
    ' This assumes that a parts list is on the active sheet.
   
    Dim ScaleProp As String
    Dim UniqueScales As New Collection
    Dim SortedScales() As Double
    Dim temp As Double
    Dim AllScales As String
   
    On Error Resume Next
   
    Dim i, j As Integer
   
    'Find all unique Scale on all the Sheets
    For j = 1 To oDrawDoc.Sheets.Count
        For i = 1 To oDrawDoc.Sheets.Item(j).DrawingViews.Count
             UniqueScales.Add CStr(oDrawDoc.Sheets.Item(j).DrawingViews.Item(i).Scale), CStr(oDrawDoc.Sheets.Item(j).DrawingViews.Item(i).Scale)
        Next i
    Next j
     
    ' Exclude the Scale of the First View from the All View Scales list
    If ExcludeFirstInAllScales Then UniqueScales.Remove (CStr(oDrawDoc.Sheets.Item(1).DrawingViews.Item(1).Scale))
     
    ReDim SortedScales(UniqueScales.Count - 1)
     
    'Copy the Scales from the Collection to an Array for bubble sort
    For i = 0 To UniqueScales.Count
        SortedScales(i) = CDbl(UniqueScales.Item(i + 1))
    Next i
     
    'Bubble Sortes the Scales
    For i = 0 To UBound(SortedScales) - 1
        For j = 0 To UBound(SortedScales) - 1
             If SortedScales(j) > SortedScales(j + 1) Then
                 temp = SortedScales(j)
                 SortedScales(j) = SortedScales(j + 1)
                 SortedScales(j + 1) = temp
             End If
        Next j
    Next i
   
    ' Add all the Scales to a String
    For i = UBound(SortedScales) To 1 Step -1
        AllScales = AllScales + ConvScale2Fraction(SortedScales(i), False) + ListSparator
    Next i
       
        AllScales = AllScales + ConvScale2Fraction(SortedScales(0), False)
       
    'Add a custom property "Scale" with all the view scales
    Dim oPropSet As PropertySet
   
    Set oPropSet = ThisApplication.ActiveDocument.PropertySets("{D5CDD505-2E9C- 101B-9397-08002B2CF9AE}")
    oPropSet.Item("AllViewScales").Delete
    Call oPropSet.Add(AllScales, "AllViewScales")
   
    'Still having some problems that the last property does not update correct
    Call RefreshProperties
       
End Sub
   
 
Private Function ConvScale2Fraction(ValScale As Double, FirstView As Boolean) As String
 
    Dim TempStr As String
    Dim sx As Long
    Dim sy As Long
    Dim dsx As Double
    Dim dsy As Double

   
    'Convert the deciaml value to a fraction
    Call DecToFrac(ValScale, sx, sy)
   
    dsx = sx
    dsy = sy
   
    If ShowScaleAsInventor Then
        If sx > 1 And sy >= 1 Then
             dsx = Round(ValScale, ShowScaleAsInventorDecimals)
             dsy = 1
        End If
    End If
   
    If FirstView Then
        TempStr = Replace(UCase(HowToDisplayFirstViewScale), "X", CStr(dsx))
        ConvScale2Fraction = Replace(TempStr, "Y", CStr(dsy))
    Else
        TempStr = Replace(UCase(HowToDisplayAllViewScales), "X", CStr(dsx))
        ConvScale2Fraction = Replace(TempStr, "Y", CStr(dsy))
    End If

End Function
 
Private Sub DecToFrac(DecimalNum As Double, Numerator As Long, Denom As Long)
 
   ' The BigNumber constant can be adjusted to handle larger fractional parts
   Const BigNumber = 1000
   Const SmallNumber = 0.0001
 
   Dim Inverse As Double, FractionalPart As Double
   Dim WholePart As Long, SwapTemp As Long
 
   Inverse = 1 / DecimalNum
   WholePart = Int(Inverse)
   FractionalPart = Frac(Inverse)
 
   If 1 / (FractionalPart + SmallNumber) < BigNumber Then
        ' Notice that DecToFrac is called recursively.
        Call DecToFrac(FractionalPart, Numerator, Denom)
        Numerator = Denom * WholePart + Numerator
 
        SwapTemp = Numerator
        Numerator = Denom
        Denom = SwapTemp
   Else ' If 1 / (FractionalPart + SmallNumber) > BigNumber
        ' Recursion stops when the final value of FractionalPart is 0 or
        ' close enough.  SmallNumber is added to prevent division by 0.
        Numerator = 1
        Denom = Int(Inverse)
   End If
  
End Sub
 
' This function is used by DecToFrac and DecToProperFact
 
Private Function Frac(x As Double) As Double
    Frac = Abs(Abs(x) - Int(Abs(x)))
End Function
 
' This additional procedure handles "improper" fractions and returns
' them in mixed form (a b/c) when the numerator is larger than the denominator
 
Private Sub DecToProperFrac(x As Double, a As Long, b As Long, c As Long)
   If x > 1 Then a = Int(x)
   If Frac(x) <> 0 Then
      Call DecToFrac(Frac(x), b, c)
   End If
End Sub
 
Private Sub RefreshProperties()
   
    Dim oPropSet As PropertySet
    Dim oPropSets As PropertySets
   
    Set oPropSet = ThisApplication.ActiveDocument.PropertySets("{D5CDD505-2E9C- 101B-9397-08002B2CF9AE}")
    Call oPropSet.Add("", "MyDummy")
    oPropSet.Item("MyDummy").Delete
   
    Call oPropSets.FlushToFile
 
End Sub

Zpět nahoru
Otasek Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 14.lis.2004
Lokalita: Czech Republic
Stav: Offline
Bodů: 340
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 11:22
jj přesně něco takového (mám takový pocit že dokonce doslovně) obsahuje utilitka iProperty Collection, a je dokonce uživatelsky velmi příjemná, celé nastavení je v jednom ini souboru


jen mě začíná čím dál tím štvát fakt, že takové makra si musí nějak složitě uživatelé navzájem zprostředkovávat a autodesk se hezky směje jak mu platíme za updaty a nic takového nám nenabízí.

hodně lidem by stačilo, kdyby přeložily help k API, pokud by to bylo lokalizované, tak si tam hromadu věcí člověk najde u udělá podle svých představ, ale takhle...!!

Upravil Otasek
používám: ASI9 SP4

Ing. Vladimír Janča
Konstrukce strojů a zařízení
Kvasice
Zpět nahoru
Augustyn Zobrazit panel
Nováček
Nováček

Přihlášen: 07.bře.2005
Lokalita: ČR (VY)
Stav: Offline
Bodů: 11
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 11:35
Původně odeslal(a) Lubomír Baďura Lubomír Baďura napsal(a):

Původně odeslal(a) Radek Pícha Radek Pícha napsal(a):

Ručně vložit jedno políčko do oblasti roh.razítka je podle mě pro uživatele zatěžující. Spouštění makra jedním tlačítkem před dokončením výkresu se mi zdá jednodušší. Makro, které spouštím, řeší více věcí, například aktualizuje datum poslední změny. Též by se mi líbilo, kdyby to fungovalo bez nutnosti mačkat tlačítko...

Dobrý den!

Automatické spuštění makra lze v Inventoru zajistit jeho správným pojmenováním. Pokud název makra obsahuje "AutoOpen", "AutoNew", "AutoSave", "AutoClose" nebo "AutoEdit", makro se automaticky spustí při provádění příslušné akce, např. při ukládání výkresu (podrobnosti viz. Help v Inventoru).

Pro inspiraci přikládám makro (viz. níže), které řeší zápis hmotnosti modelu a použitých výkresových měřítek do uživatelských parametrů výkresu.

Prosím kohokoliv, kdo je ochoten poskytnout nějaká makra pro Inventor, aby je poslal na mou adresu nebo je zveřejnil v této konferenci (třeba pod nějakým novým tématem). Děkuji.


Option Explicit
Const SpaceBeforeMassUnit As Integer = 1
Const TotalMassUnit As String = "kg"

'Always use X and Y in the Scale display string
'Example HowToDisplayFirstViewScale=[X:Y] will display as [1:2] in the properties
Const HowToDisplayFirstViewScale As String = "X:Y"

'Always use X and Y in the Scale display string
'Example HowToDisplayAllViewScales=X:Y will display as 1:2 in the properties
Const HowToDisplayAllViewScales As String = "X:Y"
 
'Set the charactor for the All View Scales list separator
'Example ListSparator="," the list will dispaly as [5:1],[1:1]
Const ListSparator As String = " "
 
'Value that will control if the the First View is excluded from the All View Scales list
'True: Exclude the Scale of the First View from the All View Scales list
'False: All View Scales are included in the list
Const ExcludeFirstInAllScales As Boolean = True

'True: Uses the same display style as inventor, Scale 2.5 is shown as 2.5:1
'False: Always find an integer value for both values, Scale 2.5 is shown as 5:2
Const ShowScaleAsInventor As Boolean = True
Const ShowScaleAsInventorDecimals As Integer = 2

Public Sub AutoSave()
    Call UpdateTotalMassInPartsList
    Call ShowFirstViewScale
    Call ShowAllScales
End Sub


Public Sub UpdateTotalMassInPartsList()
   
    'ThisApplication.StatusBarText = "Updating Totalmass in the Parts List, Please wait."

    'On Error GoTo WrongPartsList
    ' Set a reference to the drawing document.
    ' This assumes a drawing document is active.
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument
   
    Dim oPropSet As Property
    'Set the custom property "TotalMass" with the Assembly Mass
    Set oPropSet = oDrawDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE }").Item("TotalMass")

    If oDrawDoc.ReferencedFiles.Count <> 0 Then
        Dim oTotalMass As MassProperties
        Set oTotalMass = oDrawDoc.ReferencedFiles.Item(1).ComponentDefinition.MassPro perties
   
        Dim TotalMass As Double
        TotalMass = Round(oTotalMass.Mass, 1)
   
   
        oPropSet.Value = TotalMass & Space(SpaceBeforeMassUnit) & TotalMassUnit
    Else
        MsgBox ("Ve výkresu není pohled")
        oPropSet.Value = ""
    End If
   
End Sub

Private Sub ShowFirstViewScale()
 
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument
    Dim ScaleProp As String
   
    On Error Resume Next
 
    'Find the Scale of the first View on the first Sheet
    ScaleProp = ConvScale2Fraction(oDrawDoc.Sheets.Item(1).DrawingViews.Item (1).Scale, True)
   
    'Add a custom property "Scale" with all the view scales
    Dim oPropSet As PropertySet
   
    Set oPropSet = ThisApplication.ActiveDocument.PropertySets("{D5CDD505-2E9C- 101B-9397-08002B2CF9AE}")
    Call oPropSet.Item("FirstViewScale").Delete
    Call oPropSet.Add(ScaleProp, "FirstViewScale")
   
    'Still having some problems that the last property does not update correct
    Call RefreshProperties
   
End Sub
 

Private Sub ShowAllScales()
   
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument
   
    ' Set a reference to the first drawing view on the active sheet.
    ' This assumes that a parts list is on the active sheet.
   
    Dim ScaleProp As String
    Dim UniqueScales As New Collection
    Dim SortedScales() As Double
    Dim temp As Double
    Dim AllScales As String
   
    On Error Resume Next
   
    Dim i, j As Integer
   
    'Find all unique Scale on all the Sheets
    For j = 1 To oDrawDoc.Sheets.Count
        For i = 1 To oDrawDoc.Sheets.Item(j).DrawingViews.Count
             UniqueScales.Add CStr(oDrawDoc.Sheets.Item(j).DrawingViews.Item(i).Scale), CStr(oDrawDoc.Sheets.Item(j).DrawingViews.Item(i).Scale)
        Next i
    Next j
     
    ' Exclude the Scale of the First View from the All View Scales list
    If ExcludeFirstInAllScales Then UniqueScales.Remove (CStr(oDrawDoc.Sheets.Item(1).DrawingViews.Item(1).Scale))
     
    ReDim SortedScales(UniqueScales.Count - 1)
     
    'Copy the Scales from the Collection to an Array for bubble sort
    For i = 0 To UniqueScales.Count
        SortedScales(i) = CDbl(UniqueScales.Item(i + 1))
    Next i
     
    'Bubble Sortes the Scales
    For i = 0 To UBound(SortedScales) - 1
        For j = 0 To UBound(SortedScales) - 1
             If SortedScales(j) > SortedScales(j + 1) Then
                 temp = SortedScales(j)
                 SortedScales(j) = SortedScales(j + 1)
                 SortedScales(j + 1) = temp
             End If
        Next j
    Next i
   
    ' Add all the Scales to a String
    For i = UBound(SortedScales) To 1 Step -1
        AllScales = AllScales + ConvScale2Fraction(SortedScales(i), False) + ListSparator
    Next i
       
        AllScales = AllScales + ConvScale2Fraction(SortedScales(0), False)
       
    'Add a custom property "Scale" with all the view scales
    Dim oPropSet As PropertySet
   
    Set oPropSet = ThisApplication.ActiveDocument.PropertySets("{D5CDD505-2E9C- 101B-9397-08002B2CF9AE}")
    oPropSet.Item("AllViewScales").Delete
    Call oPropSet.Add(AllScales, "AllViewScales")
   
    'Still having some problems that the last property does not update correct
    Call RefreshProperties
       
End Sub
   
 
Private Function ConvScale2Fraction(ValScale As Double, FirstView As Boolean) As String
 
    Dim TempStr As String
    Dim sx As Long
    Dim sy As Long
    Dim dsx As Double
    Dim dsy As Double

   
    'Convert the deciaml value to a fraction
    Call DecToFrac(ValScale, sx, sy)
   
    dsx = sx
    dsy = sy
   
    If ShowScaleAsInventor Then
        If sx > 1 And sy >= 1 Then
             dsx = Round(ValScale, ShowScaleAsInventorDecimals)
             dsy = 1
        End If
    End If
   
    If FirstView Then
        TempStr = Replace(UCase(HowToDisplayFirstViewScale), "X", CStr(dsx))
        ConvScale2Fraction = Replace(TempStr, "Y", CStr(dsy))
    Else
        TempStr = Replace(UCase(HowToDisplayAllViewScales), "X", CStr(dsx))
        ConvScale2Fraction = Replace(TempStr, "Y", CStr(dsy))
    End If

End Function
 
Private Sub DecToFrac(DecimalNum As Double, Numerator As Long, Denom As Long)
 
   ' The BigNumber constant can be adjusted to handle larger fractional parts
   Const BigNumber = 1000
   Const SmallNumber = 0.0001
 
   Dim Inverse As Double, FractionalPart As Double
   Dim WholePart As Long, SwapTemp As Long
 
   Inverse = 1 / DecimalNum
   WholePart = Int(Inverse)
   FractionalPart = Frac(Inverse)
 
   If 1 / (FractionalPart + SmallNumber) < BigNumber Then
        ' Notice that DecToFrac is called recursively.
        Call DecToFrac(FractionalPart, Numerator, Denom)
        Numerator = Denom * WholePart + Numerator
 
        SwapTemp = Numerator
        Numerator = Denom
        Denom = SwapTemp
   Else ' If 1 / (FractionalPart + SmallNumber) > BigNumber
        ' Recursion stops when the final value of FractionalPart is 0 or
        ' close enough.  SmallNumber is added to prevent division by 0.
        Numerator = 1
        Denom = Int(Inverse)
   End If
  
End Sub
 
' This function is used by DecToFrac and DecToProperFact
 
Private Function Frac(x As Double) As Double
    Frac = Abs(Abs(x) - Int(Abs(x)))
End Function
 
' This additional procedure handles "improper" fractions and returns
' them in mixed form (a b/c) when the numerator is larger than the denominator
 
Private Sub DecToProperFrac(x As Double, a As Long, b As Long, c As Long)
   If x > 1 Then a = Int(x)
   If Frac(x) <> 0 Then
      Call DecToFrac(Frac(x), b, c)
   End If
End Sub
 
Private Sub RefreshProperties()
   
    Dim oPropSet As PropertySet
    Dim oPropSets As PropertySets
   
    Set oPropSet = ThisApplication.ActiveDocument.PropertySets("{D5CDD505-2E9C- 101B-9397-08002B2CF9AE}")
    Call oPropSet.Add("", "MyDummy")
    oPropSet.Item("MyDummy").Delete
   
    Call oPropSets.FlushToFile
 
End Sub

Zpět nahoru
Radek Pícha Zobrazit panel
Diskutér
Diskutér

Přihlášen: 04.říj.2004
Lokalita: Czech Republic
Používám:
Inventor
Stav: Offline
Bodů: 66
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 12:11

Jsem jen příležitostný "použivatel" VBA a z helpu jsem pochopil, že automaticky spustitelné makro může být pouze v DocumentProject (musí být součástí souboru - idw, ipt). Protože nemůžu zajistit, že všechny soubory budou z mé dílny rozhodl jsem se pro AplicationProject a to neumím spustit jinak než třeba tlačítkem. Jak to dokáže Patrick de Stobbeleir nevím. Spáchachl jsem si udělátko, které mi pomáhá s vyplňováním kusovníků (můžu z hlavní sestavy upravovat všechny podřízené kusovníky).

Návrh "poskytnout nějaká makra pro Inventor" je zajímavý, ale dost mi připomíná příběh někdy okolo roku 1990, kdy jsem měl hromádku prospěšných lispů a poskytl jsem je zakladateli Mechsoftu (MP). Jeho odpověď byla asi tato: Budiž vám odměnou, že vaše lispy budou zahrnuty do nové verze našeho programu (tehdy myslím Profi). Pak jsem si svoje utility kupoval vrámci balíku Profi...

<font color=BLUE>Ing. Radek Pícha[/COLOR] (konstruktér)

ITS BENDA s.r.o.
Zpět nahoru
Otasek Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 14.lis.2004
Lokalita: Czech Republic
Stav: Offline
Bodů: 340
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 12:40
jak sem to tak zkoumal tak Patrik se napichnul do registrů a pomocí nic při volání "save" zpouští svou rutinku a je mu celkem jedno jestli je to ipt, iam, idw.. podle druhu souboru doplňuje volitelné proměnné

S tím poskytování vylepšení by chtělo přejít na úplně jinou politiku. Nikoliv prodávat vylepšení, ale vylepšení by měla být volně dostupná, aby každý potencionální uživatel viděl, že když si koupí tento soft, tak dopředu ví co tím získá a že nekupuje zajíce v pytli s těm co takové fičurky vymýšlí by měli ještě poskytovat slevy na upgrade.

Tedka pokud bych chtěl přejít ke konkurenci, tak vím přesně na co se zaměřit, co mě tady chybí a jaké jsou nedostatky a sondoval jak tyto problémy řeší oni.
používám: ASI9 SP4

Ing. Vladimír Janča
Konstrukce strojů a zařízení
Kvasice
Zpět nahoru
Jan Liska Zobrazit panel
Diskutér
Diskutér

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
Inventor,Producstream
Stav: Offline
Bodů: 65
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 12:47

Dobrý den,

poznámka ohledně automatického spouštění - aplikace pro Inventor může být kromě makra také ve formě tzn. add-inu. Add-in má schopnost reagovat na různé události, mj. např. na uložení dokumentu.

Technicky je třeba pro add-in používat Visual Basic, popř. C++, C#, VB.Net atd. pro makra postačuje VBA, které je součásti instalace.

S pozdravem

Jan Liška
Autodesk Consulting
Zpět nahoru
Radek Pícha Zobrazit panel
Diskutér
Diskutér

Přihlášen: 04.říj.2004
Lokalita: Czech Republic
Používám:
Inventor
Stav: Offline
Bodů: 66
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 13:12

hmm tak to už jsem vysunut out... nemám ambice tvořit profi rutiny pomocí "Visual Basic, popř. C++, C#, VB.Net atd." a VBA mi autospouštění v AplicationProject neumožní (jako třeba starý lisp)...

K návrhu politiky poskytování prospěšných rutin by se mohl vyjádřit třeba pan Michl...

<font color=BLUE>Ing. Radek Pícha[/COLOR] (konstruktér)

ITS BENDA s.r.o.
Zpět nahoru
Ľubomír Pápay Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 04.říj.2004
Lokalita: Slovensko
Používám:
AIS2009, AIS 2012
Stav: Offline
Bodů: 961
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 13:17

p. Janča, som rád že vás iProperty Collection dostal úplne mimo realitu...

Keď som si to ja stiahol z Webu anainštaloval, zažil som podobnú eufóriu...Od radosti som napísal ´dakovný mail Patrickovi. Potešilo ho to...

 

Ľubomír Pápay

Inventor 2009,2012
Zpět nahoru
Otasek Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 14.lis.2004
Lokalita: Czech Republic
Stav: Offline
Bodů: 340
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 13:22
tolik radosti co způsobyly 100kB text sem dlouho nezažil, a když člověk smaže ten ini soubor, tak při následném uložení si ten "zázrak" po sobě pouklízí
používám: ASI9 SP4

Ing. Vladimír Janča
Konstrukce strojů a zařízení
Kvasice
Zpět nahoru
Radek Pícha Zobrazit panel
Diskutér
Diskutér

Přihlášen: 04.říj.2004
Lokalita: Czech Republic
Používám:
Inventor
Stav: Offline
Bodů: 66
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 15:27
Jak jste docílili toho, že SM_Extents_Width a SM_Extents_Length v aplikaci plech, vytvořené pomocí iProperties, nejsou nulové?
<font color=BLUE>Ing. Radek Pícha[/COLOR] (konstruktér)

ITS BENDA s.r.o.
Zpět nahoru
Otasek Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 14.lis.2004
Lokalita: Czech Republic
Stav: Offline
Bodů: 340
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 15:30
a máte udělaný rozvin? bez toho te nejde
používám: ASI9 SP4

Ing. Vladimír Janča
Konstrukce strojů a zařízení
Kvasice
Zpět nahoru
Radek Pícha Zobrazit panel
Diskutér
Diskutér

Přihlášen: 04.říj.2004
Lokalita: Czech Republic
Používám:
Inventor
Stav: Offline
Bodů: 66
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 15:46

dík, už to jede...

... hmm, ještě by to chtělo, aby Patrick reagoval na naše další návrhy, když se do toho nechce Autodesku...

<font color=BLUE>Ing. Radek Pícha[/COLOR] (konstruktér)

ITS BENDA s.r.o.
Zpět nahoru
Otasek Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 14.lis.2004
Lokalita: Czech Republic
Stav: Offline
Bodů: 340
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 16:39
Tedka mě tak trklo, že AI zjistit velikost dílce nějakým způsobem umí.
Když dělám plechařinu a nejsem zarovnaný do souřadného systému (kreslím nějak zešika) tak pak je rozvin také zašikma, a když se podívám na jeho velikost tak to hlásí největší rozměry vzhledem k osám souř.systému. a to je ta vlastnost co chci, jenže standartně je jen u plechů.
Každý dílec jde zapnout jako plech, ale to je trošku difné řešení...
používám: ASI9 SP4

Ing. Vladimír Janča
Konstrukce strojů a zařízení
Kvasice
Zpět nahoru
Jan Liska Zobrazit panel
Diskutér
Diskutér

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
Inventor,Producstream
Stav: Offline
Bodů: 65
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 17:17

Dobrý den,

pokud by vám nevadilo použití VBA, tak lze ke zjištění max. rozměru použít metodu RangeBox objektu SurfaceBody, např.

Sub PrintRange()
    Dim oApp As Inventor.Application
   
    Set oApp = ThisApplication
    Dim oPartDoc As PartDocument
   
    Set oPartDoc = ThisDocument
    Dim oCompDef As ComponentDefinition
       
    Set oCompDef = oPartDoc.ComponentDefinition
    Dim oSurfBody As SurfaceBody
   
    Set oSurfBody = oCompDef.SurfaceBodies.Item(1)
    Dim oBox As Box
   
    Set oBox = oSurfBody.RangeBox
    MsgBox "X=" & oBox.MaxPoint.X - oBox.MinPoint.X & "," & vbCrLf & _
        "Y=" & oBox.MaxPoint.Y - oBox.MinPoint.Y & "," & vbCrLf & _
        "Z=" & oBox.MaxPoint.Z - oBox.MinPoint.Z
End Sub

Uvedené makro bylo testováno pouze v souboru součásti (IPT, v ThisDocument), pro sestavu by bylo třeba rozšířit.

S pozdravem

Jan Liška
Autodesk Consulting
Zpět nahoru
Otasek Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 14.lis.2004
Lokalita: Czech Republic
Stav: Offline
Bodů: 340
Přímý odkaz na tuto zprávu Zasláno: 08.bře.2005 v 17:27
Jo, to je přesně to co celou dobu chci o sestavu se mi nejedná.
No tedka ještě zjistit jak načíst hodnotu z položky "POPIS" v ipt a mám vyřešeno což se mi s pomocí p. Lisky hravě zdařilo...díky moc
Až budu mít udělátor hotový tak určitě dám vědět

Upravil Otasek
používám: ASI9 SP4

Ing. Vladimír Janča
Konstrukce strojů a zařízení
Kvasice
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 8044:VIPNastavení počáteční velikosti pohledu pro první náčrt.
Tip 7617:Jak načíst CAD model z Inventoru do 3ds Max?
Tip 1696:Jak spočíst potřebné rozlišení stínovaného obrázku pro tisk na určitý formát papíru?
Tip 1698:Jak v 3D Studiu umístit Slunce do "nekonečna"?
Tip 377:Jak načíst soubory Autodesk Inventoru do 3D Studia VIZ?
Tip 12738:3ds Max mi přestal importovat IPT/IAM soubory Inventoru.


 Odpovědět Odpovědět Stránka  <123> archiv

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 1,336 sekund.