Vytisknout stránku | Zavřít okno

Upravení rozpisky dle filtru a nasledný export

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=29998
Datum vytištění: 13.kvě.2026 v 23:17


Téma: Upravení rozpisky dle filtru a nasledný export
Odeslal: maiklss
Předmět: Upravení rozpisky dle filtru a nasledný export
Datum odeslání: 05.úno.2020 v 08:34
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.


-------------
Když můžu pomůžu:)



Odpovědi:
Odeslal: issin
Datum odeslání: 05.úno.2020 v 19:17
Tu skupinu máte nastavenou přes nějakou iVlastnost, ať již standardní nebo uživatelskou?


Odeslal: maiklss
Datum odeslání: 05.úno.2020 v 19:20
Přesně tak přes  ivlastnost

-------------
Když můžu pomůžu:)


Odeslal: issin
Datum odeslání: 05.úno.2020 v 19:25
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.


Odeslal: krupicka
Datum odeslání: 06.úno.2020 v 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


Odeslal: rys-kt4
Datum odeslání: 06.úno.2020 v 08:49
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.


Odeslal: krupicka
Datum odeslání: 06.úno.2020 v 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" rel="nofollow - uploads/65047/BOM_exportIfPropertyIs.txt
uploads/65047/BOM_exportStateOfAssembly.txt" rel="nofollow - uploads/65047/BOM_exportStateOfAssembly.txt
uploads/65047/BOM_importStateOfAssembly.txt" rel="nofollow - uploads/65047/BOM_importStateOfAssembly.txt

Pravidlo 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.


Odeslal: issin
Datum odeslání: 08.úno.2020 v 10:27
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.


Odeslal: issin
Datum odeslání: 08.úno.2020 v 10:40
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.


Odeslal: Navara
Datum odeslání: 18.úno.2020 v 16:35
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.
Wink

uploads/9996/exportBom.zip" rel="nofollow - uploads/9996/exportBom.zip



Vytisknout stránku | Zavřít okno