Vytisknout stránku | Zavřít okno

ilogic

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: Inventor
Popis fóra: Otázky k programům Autodesk Inventor, Inventor Professional a Inventor LT, Product Design Collection a Suite, Factory Design Suite; a digitální prototypy
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=25498
Datum vytištění: 12.kvě.2026 v 19:17


Téma: ilogic
Odeslal: assaxio
Předmět: ilogic
Datum odeslání: 08.led.2018 v 09:33
Zravím všechny,
mam malinkou prozbu, obdrželi jsme od zákazníka veliké sestavy kde jsou všechny díly namodelovány z plechu.
Ale ani u jednoho dílu není zaškrtnuto v parametrech políčko "Exportovat parametr" Thickness.
Chtěl bych přes ilogic vše najednou zašrtnout jelikož to dělat po jednou kuse tak to bych dělal do příštích vánoc.
Podařilo se mi sehnat tento kod ale nějak mi nejde, možná tam je někde chybička ale já jí nevidim.

Dim oAsmDoc As AssemblyDocument

         oAsmDoc = ThisApplication.ActiveDocument

    If ThisApplication.ActiveDocument.DocumentType <> kAssemblyDocumentObject Then

        MsgBox("Toto není sestava!"vbExclamation)

               Return

        Exit Sub

    End If

  

    Dim oRefDocs As DocumentsEnumerator

         oRefDocs = oAsmDoc.AllReferencedDocuments

 

    For Each oRefDoc As PartDocument In oRefDocs

          Try

        Parameter.Param(oRefDoc.DisplayName"Thickness").ExposedAsProperty = True

        Catch

           End Try

    Next




Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 08.led.2018 v 10:33
Možná něco jako (moc nezkoušeno):
 
Dim oAsmDoc As AssemblyDocument
oAsmDoc = ThisApplication.ActiveDocument
Dim userParam As UserParameter
Dim oRefDocs As DocumentsEnumerator
Dim oRefDoc As Object
oRefDocs = oAsmDoc.AllReferencedDocuments
For Each oRefDoc In oRefDocs
Try
  For Each userParam In oRefDoc.ComponentDefinition.Parameters.UserParameters
    If userParam.Name = "Thickness"
       userParam.ExposedAsProperty = True
    End If
  Next
Catch
End Try
Next


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: assaxio
Datum odeslání: 08.led.2018 v 10:46
Děkuji za radu ale pořád mi to nechce zaškrtávat Thickness.
Napadlo jestli by někdo nevěděl udělat aby to zašktlo všechny ty okýnka v parametrech.
Já bych si pak vybral které budu používat dále.
Děkuji


Odeslal: Vladimír Michl
Datum odeslání: 08.led.2018 v 11:35
Pokud to není uživatelský, ale běžný geometrický parametr, pak:
 
Dim oAsmDoc As AssemblyDocument
oAsmDoc = ThisApplication.ActiveDocument
Dim userParam As Parameter
Dim oRefDocs As DocumentsEnumerator
Dim oRefDoc As Object
oRefDocs = oAsmDoc.AllReferencedDocuments
For Each oRefDoc In oRefDocs
Try
  For Each userParam In oRefDoc.ComponentDefinition.Parameters
   ' MsgBox(oRefDoc.DisplayName & "=" & userParam.Name)
     If userParam.Name = "Thickness"
       userParam.ExposedAsProperty = True
     End If
  Next
Catch
End Try
Next


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: assaxio
Datum odeslání: 08.led.2018 v 11:44
Děkuji moc už to běhá, jste dobrej.


Odeslal: assaxio
Datum odeslání: 10.led.2018 v 14:11
Ještě jednou chci poprosit. To zašrtnutí "Thickness" už běží, ale věděl by někdo jak napsat aby to zašrtlo všechny parametry. Zkusil jsem to takto ale nedělá to co má.

Dim oAsmDoc As AssemblyDocument
oAsmDoc = ThisApplication.ActiveDocument
Dim userParam As Parameter
Dim oRefDocs As DocumentsEnumerator
Dim oRefDoc As Object
oRefDocs = oAsmDoc.AllReferencedDocuments
For Each oRefDoc In oRefDocs
Try
  For Each userParam In oRefDoc.ComponentDefinition.Parameters
   ' MsgBox(oRefDoc.DisplayName & "=" & userParam.Name)
            userParam.ExposedAsProperty = True
     Next
Catch
End Try
Next

Já bych si pak vybral které budu používat dále.
Děkuji


Odeslal: Vladimír Michl
Datum odeslání: 10.led.2018 v 15:21
Takto by to fungovat mělo - možná zkuste odkomentovat ten MsgBox, abyste viděl k jakému parametru to dojde - možná vám ten Try vypadne na nějaké chybě.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: assaxio
Datum odeslání: 10.led.2018 v 15:57
Nevim proč ale po odmazaní "MsgBox" to šlape, opět děkuji.


Odeslal: assaxio
Datum odeslání: 10.led.2018 v 16:25
tak ještě malinkou pomoct, chtěl bych aby u všech zaškrtnutých parametrů se mi nastavilo "přesnost - na celá čísla" a pak odškrtnout řetězec jednotek a koncové nuly.
vše niz příloha


Odeslal: Navara
Datum odeslání: 11.led.2018 v 10:03
třeba takhle:
 
Dim part As PartDocument = ThisDoc.Document
Dim userParam As Inventor.Parameter = part.ComponentDefinition.Parameters(1)
 
'...
Dim propertyFormat  = userParam.CustomPropertyFormat
userParam.ExposedAsProperty = True
part.Update
propertyFormat.Precision = Inventor. custompropertyprecisionenum.kZeroDecimalPlacePrecision
propertyFormat.ShowTrailingZeros = False
propertyFormat.ShowUnitsString = False
'...
 


Odeslal: assaxio
Datum odeslání: 12.led.2018 v 15:07
mohu ještě jednou poprosit, mam asi při pátku zatmění a nějak si nevim rady jak to spasovat dohromady. předem moc děkuji.

Dim oAsmDoc As AssemblyDocument

oAsmDoc = ThisApplication.ActiveDocument

Dim userParam As Parameter

Dim oRefDocs As DocumentsEnumerator

Dim oRefDoc As Object

oRefDocs = oAsmDoc.AllReferencedDocuments

For Each oRefDoc In oRefDocs

Try

  For Each userParam In oRefDoc.ComponentDefinition.Parameters

            userParam.ExposedAsProperty = True

     Next

Catch

End Try

Next

 

Dim part As PartDocument = ThisDoc.Document
Dim userParam As Inventor.Parameter = part.ComponentDefinition.Parameters(1)

 

'...
Dim propertyFormat  = userParam.CustomPropertyFormat

userParam.ExposedAsProperty = True
part.Update

propertyFormat.Precision = Inventor. custompropertyprecisionenum.kZeroDecimalPlacePrecision
propertyFormat.ShowTrailingZeros = False
propertyFormat.ShowUnitsString = False
'...



Odeslal: Vít Marčík
Datum odeslání: 15.led.2018 v 13:19
zkuste takhle po drobné úpravě:
Dim oAsmDoc As AssemblyDocument

oAsmDoc = ThisApplication.ActiveDocument

Dim userParam As Parameter

Dim oRefDocs As DocumentsEnumerator

Dim oRefDoc As Object

oRefDocs = oAsmDoc.AllReferencedDocuments

For Each oRefDoc In oRefDocs

Try

	For Each userParam In oRefDoc.ComponentDefinition.Parameters

            userParam.ExposedAsProperty = True
			Dim propertyFormat  = userParam.CustomPropertyFormat
			oRefDoc.Update
			propertyFormat.Precision = Inventor. custompropertyprecisionenum.kZeroDecimalPlacePrecision
			propertyFormat.ShowTrailingZeros = False
			propertyFormat.ShowUnitsString = False

	Next

Catch

End Try

Next



Vytisknout stránku | Zavřít okno