Zobrazit plnou verzi příspěvku: Kopirovani iVlastnosti z IDW do IPT a IAM

Shum
22.01.2015, 13:46
Jde v Inventoru 2012 (pozdeji i ve verzi 2015 ) nejak jednoduse pridat ve vykresu ikonu s nejakym makrem nebo funkci, ktrera by mi zkopirovala z iVlastnosti  IDW souboru do IPT nebo IAM souboru?Priklad: v iVlastnosti IDW souboru (napr. pokus.idw) mam  "AES_MD_NAME"   s hodnotou 7777777  a tuto hodnotu bych chtel zkopirovat do IPT (IAM) souboru (pokus.ipt nebo pokus.iam) do iVlastnosti  "AES_MM_LEG_ERP_PSAP"Dekuji

Navara
22.01.2015, 14:14

Běžný postup je obrácený. Vlastnosti z modelu se zobrazují na výkrese. Tam potom není ani potřeba nic programovat. Pokud jde opravdu o dotaz zda jde přidat ikonu s vlastním makrem, tak lze.V ribbonu pod pravým tlačítkem je volba Přizpůsobit uživatelské příkazy a tam si můžete vybrat hotové VBA makro.Podrobnější návod je u nás v Helpdeskuhttp://helpdesk.cadstudio.cz/helpdesk.html?id=F146 

Shum
22.01.2015, 14:30
Opravdu musim kopirovat opacne (iVlastnosti v IDW souboru jsou generovany automaticky a ja je musim kopirovat do IPT AIM souboru)Ted jen udelat to VBA makro. Sice s Inventorem nejaky ten patek delam, ale tohle normalne nepouzivam. Ma s makry nekdo zkusenosti? Kdo by mi s tim mohl pomoci? Myslim si, ze kdo s makry dela, tak by to pro meho mohla byt hracka.

Navara
22.01.2015, 14:55

Nejjednodušší je to pomocí iLogicu, kde kód pro zkopírování hodnoty iVlastnosti MyProperty je následující[code]iProperties.Value(ThisDrawing.ModelDocument.DisplayName,"Custom", "MyProperty")=iProperties.Value("Custom", "MyProperty")[/code] ve VBA je to trochu komplikovanější a nejsou tu ošetřené chyby [code]Sub CopyPropertyValueToModel()    Dim drawing As DrawingDocument    Set drawing = ThisApplication.ActiveDocument        Dim model As Document    Set model = drawing.AllReferencedDocuments(1)        model.PropertySets("Inventor User Defined Properties")("MyProperty").value = drawing.PropertySets("Inventor User Defined Properties")("MyProperty").valueEnd Sub[/code] 

Shum
23.01.2015, 07:14
Dekuji moc. Funguji me obe varianty. Pomoci iLogicu jsem ale nenasel jak si jednoduse pridat ikonu do ribbonu, kdezto pro VBA to jde vcelku jednoduse.Jeste jednou diky

Navara
23.01.2015, 08:14

Tvorba vlastních tlačítek pro iLogic je zatím možná pouze pomocí iLogic formulářů. Snad v příští verzi X-Tools bude možnost si tvořit i vlastní tlačítka pro iLogic do ribbonu.

Shum
27.01.2015, 10:59
Jeste se mi tu vyskytl mensi problem. U novych IPT (IAM) souboru mi v iVlastnostech konkretni iVlastnost chybi a tudiz makro nefunguje. Lze do kodu makra pridat funkci, ktera by mi v IPT (IAM) souboru pred samotnym kopirovanim tuto iVlastnost vytvorila?  Pripadna existujici iVlastnost by mohla byt prepsana.  Muze mi tento prikaz nekde poradit?A pote uz by melo vse fungovat jak ma.Dekuji vsem

Shum
16.02.2015, 14:43
Tak mam makro hotove - kopirovani 2 hodnot z IDW do IPT (IAM)Kdyby se nekomu hodilo tak je tu.Sub CopyNumberAndDescriptionToModel()On Error GoTo CHYBY'nazvy prislusnych iVlastnosti - pokud by byly jine, staci je zmenit tady a zbytek programu bude fungovat stejneConst iVlastDraw_1 As String = "AES_MD_NAME"Const iVlastModel_1 As String = "AES_MM_LEG_ERP_PSAP"Const iVlastDraw_2 As String = "AES_MD_DRW_DESCR_L2_EN"Const iVlastModel_2 As String = "AES_MM_INT_COMMENT"'reference na vykresDim oDrawDoc As DrawingDocumentSet oDrawDoc = ThisApplication.ActiveDocument'reference na model, ze ktereho je vykres vytvoren (pokud jich je vic, beru prvni)Dim oModel As DocumentSet oModel = oDrawDoc.AllReferencedDocuments(1)'reference na iVlastnosti vykresuDim oDrawPropSet As PropertySetSet oDrawPropSet = oDrawDoc.PropertySets("Inventor User Defined Properties")'reference na iVlastnosti modeluDim oModelPropSet As PropertySetSet oModelPropSet = oModel.PropertySets("Inventor User Defined Properties")On Error Resume NextCall Err.Clear'iVlastnost vykresu_1Dim oDrawProp_1 As PropertySet oDrawProp_1 = oDrawPropSet(iVlastDraw_1)'iVlastnost modelu_1Dim oModelProp_1 As PropertySet oModelProp_1 = oModelPropSet(iVlastModel_1)'prirazeni do vlastnosti_1oModelProp_1.Value = oDrawProp_1.Value'pokud vznikla chyba, nepodarilo se priradit do promennych, tak chci nejdrive iVlastnost vytvorit (rovnou i s prislusnou hodnotou) !predpokladam, ze iVlasnost ve vykrese existuje!If Err.Number <> 0 Then   On Error GoTo CHYBY   Set oModelProp_1 = oModelPropSet.Add(oDrawProp_1.Value, iVlastModel_1)End IfOn Error Resume NextCall Err.Clear'iVlastnost vykresu_2Dim oDrawProp_2 As PropertySet oDrawProp_2 = oDrawPropSet(iVlastDraw_2) 'iVlastnost modelu_2Dim oModelProp_2 As PropertySet oModelProp_2 = oModelPropSet(iVlastModel_2)'prirazeni do vlastnosti_2oModelProp_2.Value = oDrawProp_2.Value'pokud vznikla chyba, nepodarilo se priradit do promennych, tak chci nejdrive iVlastnost vytvorit (rovnou i s prislusnou hodnotou) !predpokladam, ze iVlasnost ve vykrese existuje!If Err.Number <> 0 Then   On Error GoTo CHYBY   Set oModelProp_2 = oModelPropSet.Add(oDrawProp_2.Value, iVlastModel_2)End IfOn Error GoTo CHYBYExit SubCHYBY:Call MsgBox("Neco se pokazilo...!", vbCritical, "Copy Number And Description To Model")Exit SubEnd Sub