Zobrazit plnou verzi příspěvku: Hromadný převod do DXF
Dobrý den,v současnosti používám kód pro převod plechových součástí do DXF, který je v každé součásti zvlášť. Chtěl bych všechny plechové součásti převést pomocí jednoho pravidla napsaného v sestavě (moje představa je, aby kód vyhledal pouze plechové součásti a ty následně uložil jako DXF). Ještě v kódu potřebuji vypnout některé hladiny.Tady je kód, který používám.Public Sub Main() ' Získat aktivní dokument, musí to být součást, rozvinutý tvar Dim invDoc As Inventor.Document invDoc = ThisApplication.ActiveDocument ' Jméno dokumentu Dim sFileName As String sFileName = invDoc.DisplayName sFileName = Left(sFileName, Len(sFileName) - 1) 'bez .IPT ' Vytvořit objekt DataIO Dim oDataIO As DataIO oDataIO = invDoc.ComponentDefinition.DataIO ' Parametry definující formát výstupního souboru DWG nebo DXF Dim sParam As String sParam = "FLAT PATTERN DXF?AcadVersion=2000"'dostupné formáty: AcadVersion = "2005","2004","2002", "2000", "R14", "R13", "R12" (R12 jen pro DXF) ' Vytvořit výstupní DWG nebo DXF soubor v adresáři C:\TEMP Dim sDXFFileName As String sDXFFileName = "c:\temp\" & sFileName & ".dxf" oDataIO.WriteDataToFile (sParam, sDXFFileName)End SubDěkujiAdam Blažek
Normal
0
21
false
false
false
MicrosoftInternetExplorer4
Vytvořil jsem kód pro hromadné uložení všech souborů do jiného typu, s malou záměnou je funkční pro různé tipy přípon, problém nastane když chci ukládat do dxf. Předpokládám, že je problém v cestě k rozvinu. Neví někdo co s tím?Sub Main()
Dim sFile As String, sInDir As String, sOutDir As String, I As String
Dim oDocs As Documents, oDoc As Document
oDocs = ThisApplication.Documents
'Cesta pro otevření a uložení souboru
sInDir = (ThisDoc.Path & "\")
sOutDir = (ThisDoc.Path & "\DXF\")
sFile = Dir(sInDir)
While (sFile <>
"")
'Definice formatu souboru pro otevření
(IPT, IAM, IDW...)
If (Right(sFile, 3) =
"ipt") Then
Debug.Print (sFile)
oDoc = oDocs.Open(sInDir & sFile, False)
' Vytvořit objekt
DataIO
Dim oDataIO As DataIO
oDataIO = oDoc.ComponentDefinition.DataIO
' Parametry
definující formát výstupního souboru DXF
Dim sParam As String
sParam = "FLAT
PATTERN DXF?AcadVersion=2000"
' Vytvořit
výstupní DXF soubor v adresáři
Dim sDXFFileName As String
sDXFFileName = (sOutDir & Left(sFile, Len(sFile) - 3) & "DXF")
MessageBox.Show(sDXFFileName, " CESTA
SOUBORU")
oDataIO.WriteDataToFile (sParam, sDXFFileName)
End If
sFile = Dir
End While
End Sub
Problémy jsou tu dva.1) Adresář pro DXF musí existovat, jinak to skončí s chybou při zápisu do souboru...oDataIO.WriteDataToFile (sParam, sDXFFileName)... 2) Pokud není otevíraná součást plech, skončí to s chybou tamtéž.A jedna poznámka na závěr: Otevřený soubor je po dokončení vhodné zavřít. ...oDoc.Close(true)End If...
Děkuji za rady.Přidal jsem pravidlo pro testování plechu a už to běhá.Ještě při převodu potřebuji vypnout některé hladiny, cary ohybu a nejak se mi to nedari....sParam = "FLAT
PATTERN DXF?AcadVersion=2000" + "&TangentLayer=IV_TANGENT" _ + "&BendLayer=IV_BEND" _
Hladiny je potřeba vypnout, ne přejmenovat.sParam = "FLAT PATTERN DXF?AcadVersion=2000&InvisibleLayers=IV_TANGENT;IV_BEND;IV_BEND_DOWN"
Dobrý den,děkuji za výše uvedené připomínky a chtěl bych se ještě zeptat jestli je možné získat cestu k souboru jako iVlastnost např. takto: cesta = iProperties.Value("Project", "Location")
V iVlastnostech se cesta k souboru nevyskytuje. Je ale možné jí získat z plného názvu souboru
SyntaxEditor Code SnippetDim fileName As String = ThisDoc.Document.FullFileName
Dim fileLocation As String = System.IO.Path.GetDirectoryName(fileName)
Navara2012-10-22 13:40:42
Lze toto použít pro získání cesty k jednotlivým souborům v sestavě, přičemž by pravidlo bylo zapsáno pouze v hlavní sestavě?Momentálně to obcházím přes kusovník, kde získávám cestu k souborům.Jsou dostupné nějaké návody a popis pro API v češtině.Děkuji.
Odpověď je podobná jako v tomto případěhttp://www.cadforum.cz/forum/forum_posts.asp?TID=15924&PID=73409#73409 Pro API žádné návody ani popisy v češtině nejsou (naštěstí, protože nechci vědět, jak by ty překlady dopadly)
Chtěl bych se zeptat na řádek, kde se nastavuje objekt DataIO a potom na sParam, jestli by to šlo poupravit pro export výkresu idw na dwg verze R14. Šlo by to? Mám makro na export idw -> dwg , ale pouze verze 2000 a to bych potřeboval změnit na R14. Děkuji za rady.
Formát R14 je povlen pouze pro DXF.
a jak by to šlo napsat pro dxf? Prosím
Dobrý den,u mě stačilo přepsat 2000 na R14 (respektive R12, R14 nemám podporován)
To funguje pro rozvin, já to ale potřebuji pro normální výkres idw bez rozvinu.. Na to už mám makro, ale v makru nevím, jak nastavit starší verzi.