Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 12373 
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

 

NápovědaCAD 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 360, 3ds Max a s dalšími CAD 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 Systems (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.cadstudio.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoAutomatické přejmenování těles

 Odpovědět Odpovědět archiv
Autor
madep Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 01.pro.2006
Lokalita: ČR (Pha)
Používám:
Inventor 2022
Stav: Offline
Bodů: 186
Přímý odkaz na tuto zprávu Téma: Automatické přejmenování těles
    Zasláno: 02.led.2022 v 14:25
Ahoj všem,
Rád používám víceobjemová tělesa jako řídící modely pro sestavy. Abych si ušetřil práci s pojmenováváním souborů při exportu do sestavy, nejdříve si všechna tělesa očísluju. Ruční přepisování je trochu nepohodlné. Podařilo se mi najít výborné pravidlo. Takže všem, kdo takto pracujete je k dispozici níže.

Martin Depta
Eltodo a.s.

'------- start of ilogic ------
'check for custom iProperty and add it if not found
Dim prefix As String = "Prefix"
customPropertySet = ThisDoc.Document.PropertySets.Item _
("Inventor User Defined Properties")

Try
        prop= customPropertySet.Item(prefix)
Catch
      ' Assume error means not found
            customPropertySet.Add("", prefix)
End Try

'write the part number to the Prefix iProperty if it is empty
If iProperties.Value("Custom", "Prefix") = "" Then
iProperties.Value("Custom", "Prefix") = iProperties.Value("Project", "Part Number") & "_"
Else
End If

'check that this active document is a part file   
Dim partDoc As PartDocument
If ThisApplication.ActiveDocument.DocumentType <> kPartDocumentObject Then
MessageBox.Show ("Please open a part document", "iLogic")
End If

'define the active document
partDoc = ThisApplication.ActiveDocument
Dim solid As SurfaceBody
Dim i As Integer

'get input from user
prefix = InputBox("Enter a prefix for the solid body names", "iLogic", iProperties.Value("Custom", "Prefix"))

'write input back to custom iProperty
iProperties.Value("Custom", "Prefix") = prefix
i = 1
'rename all solid bodies incrementing suffix
For Each solid In partDoc.ComponentDefinition.SurfaceBodies
solid.Name = prefix + IIf(i < 10, "0" + CStr(i), CStr(i))
i = i + 1
Next
'------- End Of ilogic ------
Zpět nahoru
Boleslav Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 06.led.2009
Lokalita: ČR (Pha)
Používám:
dříve Solidworks, teď Inventor
Stav: Offline
Bodů: 324
Přímý odkaz na tuto zprávu Zasláno: 02.led.2022 v 15:20
Dík, to by mohlo být užitečné.

Zpět nahoru
Navara Zobrazit panel
Arkance Systems support
Arkance Systems support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1636
Přímý odkaz na tuto zprávu Zasláno: 02.led.2022 v 15:49
Moc hezký Clap
Tady jsem jenom udělal pár kosmetických změn
  • Přesunul jsem kontrolu typu dokumentu na začátek
  • Odstranil jsem vícenásobné získávání aktivního dokumentu
  • Sjednotil jsem použití iVlastnosti pro prefix do jedné proměnné
  • Rozdělil jsem použití proměnné prefix pro název iVlastnosti a její hodnotu
  • Zjednodušil jsem formátování finálního názvu tělesa

'------- start of ilogic ------
'check that this active document is a part file   
Dim partDoc As PartDocument
If ThisApplication.ActiveDocument.DocumentType <> DocumentTypeEnum.kPartDocumentObject Then
    MessageBox.Show("Please open a part document", "iLogic")
    Return
End If

'define the active document
partDoc = ThisApplication.ActiveDocument

'check for custom iProperty and add it if not found
Dim prefixPropertyName As String = "Prefix"
Dim customPropertySet = partDoc.PropertySets.Item("Inventor User Defined Properties")

Dim prefixProperty As Inventor.Property
Try
    prefixProperty = customPropertySet.Item(prefixPropertyName)
Catch
    ' Assume error means not found
    prefixProperty = customPropertySet.Add("", prefixPropertyName)
End Try

'write the part number to the Prefix iProperty if it is empty
If String.IsNullOrEmpty(prefixProperty.Value.ToString()) Then
    prefixProperty.Value = iProperties.Value("Project", "Part Number") & "_"
End If

'get input from user
Dim bodyPrefix = InputBox("Enter a prefix for the solid body names", "iLogic", prefixProperty.Value.ToString())

'write input back to custom iProperty
prefixProperty.Value = bodyPrefix

'rename all solid bodies incrementing suffix
Dim i As Integer = 1
For Each solid As SurfaceBody In partDoc.ComponentDefinition.SurfaceBodies
    solid.Name = String.Format("{0}{1:00}", bodyPrefix, i)
    i += 1
Next
'------- End Of ilogic ------

Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 8694:Automatické přejmenování prvků generátoru rámových konstrukcí.
Tip 4794:VIPPřejmenování serveru (PC) s Autodesk Vault server.
Tip 1443:VIPJak otevřít AutoSave soubor v AutoCADu?
Tip 8251:VIPVarování Vault: soubory neobsahují úplné informace o referencích
Tip 7195:VIPPo přejmenování počítače mi přestalo fungovat Obsahové centrum.
Tip 3708:Snadné přejmenování objektů v AutoCADu.


 Odpovědět Odpovědět

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



Stránka byla vygenerována za 0,555 sekund.