Zobrazit plnou verzi příspěvku: Upravení rozpisky dle filtru a nasledný export
Dobrý den dá se njěka snadno z intoru vyexportovat rozpiska jen nějakých dílců ze sestavy? Mám u každého dílce nastavenou skupinu( spojovák,elektro,plech huťák) je možné jednodušé vyexportovat kusovniky pro každou skupinu? vim že to mužu dělat exportem všeho dohromady ale kdyby to šlo nějak automatizovat tak by mi to bodlo.
Tu skupinu máte nastavenou přes nějakou iVlastnost, ať již standardní nebo uživatelskou?
Přesně tak přes ivlastnost
Napadlo mně využít makra v Excelu.Prvním krokem by byl export všeho do list 1.Potom spustit makro a nechat to rozházet na jednotlivé listy spojovák, hutní, …atd.Možná by to dokázalo iLogic makro inventoru, ale to nijak zvlášť zatím neovládám. Mám za to, že by šlo o podmínku jestliže vlastnost A = xy potom export do excel "abc" atd.issin2020-02-05 19:30:15
krupicka
06.02.2020, 08:24
Zdravím, co takhle měnit strukturu rozpisky na Referenční a Normální u všech součástí sestavy, bez ohledu na to, ve které podsestavě se nachází? Pravidlo by pak mohl o vypadat nějak takto.Samozřejmě by bylo vhodné před tím použít jiné pravidlo, které někam (excel) zapíše výchozí nastavení rozpisky všech komponent a poté ji zase obnoví.Pravidlem změníte strukturu rozpisky u všech dílců a pak ručně standardně vyexportujete rozpisku.Lehce lze pravidlo nastavit tak, aby se chovalo opačně, tedy že všechny díly, které nemají vyhledávanou hodnotu iVlastnosti, se nastaví na referenční. Class ThisRule
Dim counter As Integer
Sub Main()
Dim oAsmDoc As AssemblyDocument = ThisApplication.ActiveDocument
Dim myUserPropName As String = "nazevUzivatelskeVlastnosti"
Dim myUserPropValue As String = InputBox("Zadejte přesnou hodnotu iVlastnosti", "Zadejte přesnou hodnotu iVlastnosti", "hodnotaVlastnosti")
Call TraverseAssembly(oAsmDoc.ComponentDefinition.Occurrences, 1, myUserPropName, myUserPropValue)
MsgBox("Bylo zmeneno " & counter & "komponent na referencni")
End Sub
Private Sub TraverseAssembly(Occurrences As ComponentOccurrences,Level As Integer, myUserPropName As String, myUserPropValue As String)
Dim oOcc As ComponentOccurrence
For Each oOcc In Occurrences
If oOcc.DefinitionDocumentType = kAssemblyDocumentObject Then
GoTo nextLevel
End If
Dim oDoc As Document
oDoc = oOcc.Definition.Document
On Error Resume Next
Dim oOccPropValue = iProperties.Value(oOcc.Name, "Custom", myUserPropName)
If Err.Number <> 0 Then
MsgBox("Komponenta " & oOcc.Name & " nema ivlastnost s nazvem " & myUserPropName )
Else
If oOccPropValue = myUserPropValue Then
oOcc.BOMStructure = "kReferenceBOMStructure"
counter = counter + 1
'MsgBox("menim ivlastnost")
Else
'Pokud komponenta nema spravnou hodnotu nasi ivlastnosti, struktura rozpisky bude normalni
oOcc.BOMStructure = "kNormalBOMStructure"
End If
End If
Err.Number = 0 ' errors reset
nextLevel :
If oOcc.DefinitionDocumentType = kAssemblyDocumentObject Then
Call TraverseAssembly(oOcc.SubOccurrences, Level + 1, myUserPropName, myUserPropValue)
End If
Next
End Sub
End Class
Zdravím, krása je v jednoduchosti, ale toto není jednoduchý výmysl.Nejjednodušší je využívat pohledové reprezentace, obávám se ale, že Inventor neumí počet kusů pohledové reprezentaci přizpůsobit. (Možná nové verze?)Máte li ale tyto skupiny odlišené iVlastností (i uživatelskou), tak není opravdu nic jednoduššího než vše exportovat do Excelu najednou a tam to v příslušném sloupci třídit - jde to i automatizovat.Excel je na toto dělaný, lepší než násilnit CAD hromským makrem nebo spoustou pohledů a skupin.
rys-kt42020-02-06 08:54:02
krupicka
06.02.2020, 10:13
Zdravím, samozřejmě excel je uživatelsky nejjednodušší řešení, není potřeba nic vymýšlet.I přes to, že by kolega trval na řešení na straně CADu, mohlo by to vypadat cca nějak takto.Tři pravidla.V adresáři, kde se nachází hlavní sestava musí být také vytvořený prázdný Excel s názvem "BOMexportedState.xlsx"uploads/65047/BOM_exportIfPropertyIs.txt
uploads/65047/BOM_exportStateOfAssembly.txtuploads/65047/BOM_importStateOfAssembly.txtPravidlo exportState vyexportuje do excelu počáteční stav struktur rozpisky všech součástí v sestavě(je to nastaveno pouze na součásti, dá se upravit).Pravidlo exportIfPropertyIs prohledává iVlastnosti součástí v sestavě, a pokud najde iVlastnost s daným názvem a kokrétní hodnotou, přenastaví strukturu rozpisky.V tento moment můžete provést export rozpisky ručně dle šablony do excelu.Poslední pravidlo importState navrátí původní struktury rozpisky všech dílů v sestavě.Aby to řešení bylo celkově přívětivější a tzv. na kliknutí, je samozřejmě potřeba na těchto makrech ještě zapracovat.
Výhodou toho exportu do excelu je možnost rozdělit to na jednotlivé listy. Takže vznikne jeden dokument a v něm budou rozpisky: Kompletní, Hutní, Spojovák, … (podle vlastní fantazie). To vše tříděno makrem přímo v Excelu. Další potenciální výhodou je, že spousta programů pro vedení skladů, pro plánování, … dokáží excelovská data používat (někdy potřebují doprogramovat svoje makra pro čtení excel dat).Takže v tomto směru se fantazii meze nekladou.
Bylo by možné vložit sem ukázku iLogic makra, které1. Vytvoří dokument Excel s názvem podle sestavy.2. Vytvoří list s názvem "Kompletní sestava".3. Do tohoto listu exportuje rozpisku.4. Uloží dokument do stejného umístění jako je sestava.A asi by bylo dobré vědět jak by se v takovém makru definovali iVlastnosti, které chci exportovat do rozpisky. Věřím, že nejen autora tohoto vlákna by to zaujalo.Návodů na makra pro Excel je na internetu spousta tak by to nemusel být problém, navíc je to mimo CAD.
Exportovat kusovník na různé listy v Excelu se dá, ale už to vyžaduje trochu víc programování, protože to třídění si každý musí obsloužit sám, podle své potřeby. Další kapitola je zakládání nových listů v Excelu a to už je hodně nad rámec běžných iLogiců. Možná se k tomu někdy dostanu, ale v uvedeném příkladu se předpokládá, že cílový soubor a potřebné listy už existují.Uvedený příklad provádí export kusovníku sestavy na základě hodnoty iVlastnosti "Kategorie". Díly s hodnotou "1" se exportují na první list, s hodnotou "2" na druhý list a ostatní se ignorují. Je tam i ukázka výběru vlastních sloupců.Je to první přiblížení jak takový export provést tak snad to někomu pomůže.uploads/9996/exportBom.zip