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

CAD tip CAD tip # 13210:

   
Otázka CAD 
 %  platforma  kategorie 
Q - otázka

Automatické očíslování/přejmenování víceobjemových těles v součásti.

A - odpověď Pokud rádi používáte víceobjemová tělesa jako řídící modely pro sestavy, můžete si ušetřit práci s pojmenováváním souborů při exportu do sestavy, kdy je potřeba tělesa odlišit, např. očíslovat. Ruční přepisování názvů/čísel by bylo nepohodlné. Pomocí následujícího iLogic pravidla (makra) si můžete takovéto 'přejmenování očíslováním' zautomatizovat.

Objemy budou pojmenovány (přejmenovány) podle zadaného prefixu následovaného číselnou řadou.

'------- start of iLogic ------
'original idea: B.Han
'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 ------

Podnět: M.Depta, děkujeme

Inventor
100% *  CAD 
3.2.2022    297×   Expert
export font ilogic inventor model sestava
 
Související CAD produkty:
Ceny - CAD eShop:
platí pro: Inventor ·

Zpět   Všechny další tipy



Pomohl vám tento tip? Provoz služby CADForum.cz podpoříte i nákupem produktů Autodesk u provozovatele tohoto serveru a Platinum partnera Autodesku, firmy Arkance Systems.
Můžete si také přidat odkaz na vaše stránky: CAD Fórum - diskuze, tipy, bloky a utility
CAD:    OS:    Kateg: 
Text:  FAQ   






Tipy a triky prosím využívejte na vlastní zodpovědnost.
Provozovatel (Arkance Systems CZ s.r.o.) nenese odpovědnost za případné potíže vzniklé v souvislosti s použitím kteréhokoliv z uvedených tipů.
Pro plné zvládnutí dané aplikace doporučujeme absolvování některého z nabízených CAD školení.
Další publikování obsahu je dovoleno jen se souhlasem autora.
TOPlist