Zobrazit plnou verzi příspěvku: Upravení rozpisky dle filtru a nasledný export

maiklss
05.02.2020, 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.

issin
05.02.2020, 19:17
Tu skupinu máte nastavenou přes nějakou iVlastnost, ať již standardní nebo uživatelskou?

maiklss
05.02.2020, 19:20
Přesně tak přes  ivlastnost

issin
05.02.2020, 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.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

rys-kt4
06.02.2020, 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.
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.

issin
08.02.2020, 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.

issin
08.02.2020, 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.

Navara
18.02.2020, 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.uploads/9996/exportBom.zip