Již 10.000+ CAD tipů.
Přes 118.000 registrovaných u nás, celkem 1.091.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků.
Vyzkoušejte nový přesný Inženýrský kalkulátor.
Kompletní příkazy AutoCADu a proměnné AutoCADu 2026.
Diskuzní fórum, poradna
?CAD diskuze, rady, výměna zkušeností

Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
|
Odpovědět ![]() |
archiv |
Autor | |
Adamito ![]() Diskutér ![]() Přihlášen: 11.říj.2012 Lokalita: ČR (JM) Používám: Inventor 2017 Stav: Offline Bodů: 20 |
![]() Zasláno: 12.říj.2012 v 09:54 |
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 Sub Děkuji Adam Blažek |
|
![]() |
|
Adamito ![]() Diskutér ![]() Přihlášen: 11.říj.2012 Lokalita: ČR (JM) Používám: Inventor 2017 Stav: Offline Bodů: 20 |
![]() |
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
|
|
![]() |
|
Navara ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
ARKANCE support ![]() ![]() Arkance Systems Přihlášen: 08.zář.2008 Lokalita: ČR (Pha) Používám: Inventor Stav: Offline Bodů: 1637 |
![]() |
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 ... |
|
![]() |
|
Adamito ![]() Diskutér ![]() Přihlášen: 11.říj.2012 Lokalita: ČR (JM) Používám: Inventor 2017 Stav: Offline Bodů: 20 |
![]() |
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 + "&TangentLayer=IV_TANGENT" _ + "&BendLayer=IV_BEND" _ |
|
![]() |
|
Navara ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
ARKANCE support ![]() ![]() Arkance Systems Přihlášen: 08.zář.2008 Lokalita: ČR (Pha) Používám: Inventor Stav: Offline Bodů: 1637 |
![]() |
Hladiny je potřeba vypnout, ne přejmenovat. sParam = "FLAT PATTERN DXF?AcadVersion=2000&InvisibleLayers=IV_TANGENT;IV_BEND;IV_BEND_DOWN"
|
|
![]() |
|
Adamito ![]() Diskutér ![]() Přihlášen: 11.říj.2012 Lokalita: ČR (JM) Používám: Inventor 2017 Stav: Offline Bodů: 20 |
![]() |
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") |
|
![]() |
|
Navara ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
ARKANCE support ![]() ![]() Arkance Systems Přihlášen: 08.zář.2008 Lokalita: ČR (Pha) Používám: Inventor Stav: Offline Bodů: 1637 |
![]() |
V iVlastnostech se cesta k souboru nevyskytuje. Je ale možné jí získat z plného názvu souboru
Dim fileLocation As String = System.IO.Path.GetDirectoryName(fileName) Upravil Navara - 22.říj.2012 v 13:40 |
|
![]() |
|
Adamito ![]() Diskutér ![]() Přihlášen: 11.říj.2012 Lokalita: ČR (JM) Používám: Inventor 2017 Stav: Offline Bodů: 20 |
![]() |
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. |
|
![]() |
|
Navara ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
ARKANCE support ![]() ![]() Arkance Systems Přihlášen: 08.zář.2008 Lokalita: ČR (Pha) Používám: Inventor Stav: Offline Bodů: 1637 |
![]() |
Odpověď je podobná jako v tomto případě
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)
|
|
![]() |
|
hoboj ![]() TOP uživatel ![]() Přihlášen: 22.led.2008 Lokalita: ČR (HK) Používám: NX; ProE; Creo; I13; AutoCAD2011, SurfCAM, EdgeCAM Stav: Offline Bodů: 811 |
![]() |
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.
|
|
Vojtěch Visingr
|
|
![]() |
|
Navara ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
ARKANCE support ![]() ![]() Arkance Systems Přihlášen: 08.zář.2008 Lokalita: ČR (Pha) Používám: Inventor Stav: Offline Bodů: 1637 |
![]() |
Formát R14 je povlen pouze pro DXF.
|
|
![]() |
|
hoboj ![]() TOP uživatel ![]() Přihlášen: 22.led.2008 Lokalita: ČR (HK) Používám: NX; ProE; Creo; I13; AutoCAD2011, SurfCAM, EdgeCAM Stav: Offline Bodů: 811 |
![]() |
a jak by to šlo napsat pro dxf?
Prosím
![]() |
|
Vojtěch Visingr
|
|
![]() |
|
Adamito ![]() Diskutér ![]() Přihlášen: 11.říj.2012 Lokalita: ČR (JM) Používám: Inventor 2017 Stav: Offline Bodů: 20 |
![]() |
Dobrý den,
u mě stačilo přepsat 2000 na R14 (respektive R12, R14 nemám podporován) |
|
![]() |
|
hoboj ![]() TOP uživatel ![]() Přihlášen: 22.led.2008 Lokalita: ČR (HK) Používám: NX; ProE; Creo; I13; AutoCAD2011, SurfCAM, EdgeCAM Stav: Offline Bodů: 811 |
![]() |
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.
|
|
Vojtěch Visingr
|
|
![]() |
Pro technickou podporu CAD
kontaktujte Helpdesk
Odpovědět ![]() |
|
Přejít na fórum | Oprávnění fóra ![]() Nemůžete vytvářet nová témata v tomto fóru Nemůžete odpovídat na témata v tomto fóru Nemůžete vymazávat vaše příspěvky v tomto fóru Nemůžete upravovat vaše příspěvky v tomto fóru Nemůžete vytvářet ankety v tomto fóru Nemůžete hlasovat v anketách v tomto fóru |
Stránka byla vygenerována za 0,320 sekund.