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: 5059 
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

Automatické přejmenování těles

 Odpovědět Odpovědět archiv
Autor
madep Zobrazit panel
Diskutér
Diskutér

Přihlášen: 01.pro.2006
Lokalita: ČR (Pha)
Používám:
Solid Edge 2D
Stav: Offline
Bodů: 95
Možnosti příspěvku Možnosti příspěvku   Poděkování (2) Poděkování2   Citace madep Citace  OdpovědětOdpověď 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ů: 305
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace Boleslav Citace  OdpovědětOdpověď 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ů: 1554
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace Navara Citace  OdpovědětOdpověď 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,531 sekund.