Vytisknout stránku | Zavřít okno

Kopirovani iVlastnosti z IDW do IPT a IAM

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 Professional, Product Design & Manufacturing Collection, Factory Design; digitální prototypy
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=20552
Datum vytištění: 26.čvc.2026 v 15:23


Téma: Kopirovani iVlastnosti z IDW do IPT a IAM
Odeslal: Shum
Předmět: Kopirovani iVlastnosti z IDW do IPT a IAM
Datum odeslání: 22.led.2015 v 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



Odpovědi:
Odeslal: Navara
Datum odeslání: 22.led.2015 v 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 Helpdesku
http://helpdesk.cadstudio.cz/helpdesk.html?id=F146 - http://helpdesk.cadstudio.cz/helpdesk.html?id=F146
 


Odeslal: Shum
Datum odeslání: 22.led.2015 v 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.


Odeslal: Navara
Datum odeslání: 22.led.2015 v 14:55
Nejjednodušší je to pomocí iLogicu, kde kód pro zkopírování hodnoty iVlastnosti MyProperty je následující
iProperties.Value(ThisDrawing.ModelDocument.DisplayName,"Custom", "MyProperty")=iProperties.Value("Custom", "MyProperty")
 
ve VBA je to trochu komplikovanější a nejsou tu ošetřené chyby
 
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").value
End Sub
 


Odeslal: Shum
Datum odeslání: 23.led.2015 v 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 Clap


Odeslal: Navara
Datum odeslání: 23.led.2015 v 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.


Odeslal: Shum
Datum odeslání: 27.led.2015 v 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


Odeslal: Shum
Datum odeslání: 16.úno.2015 v 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 stejne
Const 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 vykres
Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument

'reference na model, ze ktereho je vykres vytvoren (pokud jich je vic, beru prvni)
Dim oModel As Document
Set oModel = oDrawDoc.AllReferencedDocuments(1)

'reference na iVlastnosti vykresu
Dim oDrawPropSet As PropertySet
Set oDrawPropSet = oDrawDoc.PropertySets("Inventor User Defined Properties")

'reference na iVlastnosti modelu
Dim oModelPropSet As PropertySet
Set oModelPropSet = oModel.PropertySets("Inventor User Defined Properties")

On Error Resume Next
Call Err.Clear

'iVlastnost vykresu_1
Dim oDrawProp_1 As Property
Set oDrawProp_1 = oDrawPropSet(iVlastDraw_1)



'iVlastnost modelu_1
Dim oModelProp_1 As Property
Set oModelProp_1 = oModelPropSet(iVlastModel_1)

'prirazeni do vlastnosti_1
oModelProp_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 If



On Error Resume Next
Call Err.Clear



'iVlastnost vykresu_2
Dim oDrawProp_2 As Property
Set oDrawProp_2 = oDrawPropSet(iVlastDraw_2)

'iVlastnost modelu_2
Dim oModelProp_2 As Property
Set oModelProp_2 = oModelPropSet(iVlastModel_2)



'prirazeni do vlastnosti_2
oModelProp_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 If




On Error GoTo CHYBY
Exit Sub

CHYBY:
Call MsgBox("Neco se pokazilo...!", vbCritical, "Copy Number And Description To Model")
Exit Sub

End Sub




Vytisknout stránku | Zavřít okno