vrs Posted July 13, 2015 Report Share Posted July 13, 2015 (edited) Potrzebuję zapisać / wyeksportować rysunek do formatu dxf. Wiem, że jest metoda DxfOut z poziomu Database, ale jak bym nie podał jej argumentów, to VS ciągle podkreśla mi kod, mówiąc, że metoda ma nieprawidłowe argumenty. database.DxfOut(_sciezka, 16, DwgVersion.AC1021, false); Oczywiście _sciezka to zwykły string. Najprawdopodobniej przyczyną jest określenie wersji pliku. Próbowałem z różnymi wersjami dwg, ale to nic nie dało. Edited July 13, 2015 by vrs Quote Link to comment Share on other sites More sharing options...
kruszynski Posted July 13, 2015 Report Share Posted July 13, 2015 database ma też metodę: saveAs . Czy sprawdzał Pan tez jak ona się zachowa? Quote Link to comment Share on other sites More sharing options...
kruszynski Posted July 13, 2015 Report Share Posted July 13, 2015 Potrzebuję zapisać / wyeksportować rysunek do formatu dxf. Wiem, że jest metoda DxfOut z poziomu Database, ale jak bym nie podał jej argumentów, to VS ciągle podkreśla mi kod, mówiąc, że metoda ma nieprawidłowe argumenty. database.DxfOut(_sciezka, 16, DwgVersion.AC1021, false); Oczywiście _sciezka to zwykły string. Najprawdopodobniej przyczyną jest określenie wersji pliku. Próbowałem z różnymi wersjami dwg, ale to nic nie dało. Podkreśla całą linię? czy tylko jeden z parametrów? Quote Link to comment Share on other sites More sharing options...
vrs Posted July 14, 2015 Author Report Share Posted July 14, 2015 Metoda saveAs działa, ale zapisuje w formacie dwg, a ja potrzebuję koniecznie pliku dxf, ponieważ trafia on później do innego programu, który wymaga pliku dxf. Chyba, że jest możliwość użycia tej metody do zapisu w formacie dxf. W przypadku dxfOut podkreśla całą linię. Quote Link to comment Share on other sites More sharing options...
vrs Posted July 14, 2015 Author Report Share Posted July 14, 2015 Problem stanowi trzeci parametr metody dxfOut, czyli wersja pliku, w jakiej ma być on zapisany. W pryzpadku metody saveAs wersja pliku określana jest klasą DwgVersion, a w dxfOut jest to klasa ZcDb.ZcDbDwgVersion, czyli coś innego. Problem z tym, że ja nie mam w projecie przestrzeni nazw ZcDb. Możliwe, że brakuje mi jakiejś referencji, jednak nie mam pomysłu jakiej. W referencjach mam następujące biblioteki: ZwDatabaseMgd.dll, ZWCAD.exe, ZwManaged.dll. Quote Link to comment Share on other sites More sharing options...
kruszynski Posted July 14, 2015 Report Share Posted July 14, 2015 Otrzymałem odpowiedź z ZWSOFT. Jest to problem w samym ZWCADzie. Natomiast w odpowiedzi ZWSODFTu jest informajca, że problem istnieje tylko w C# i jako obejście możemy wykorzystać vb.net . Sam nie łączyłem nigdy tych języków programowania w ramach jednym projekcie, ale może tą część czy procedurę może Pan opracować w VB.Net? Quote Link to comment Share on other sites More sharing options...
vrs Posted July 14, 2015 Author Report Share Posted July 14, 2015 ehhh kolejny błąd w ZWCADzie. Niedobrze. Co do łączenia VB z C# to również nie miałem okazji ich łączyć w ramach projektu, jednak pewnie jest to możliwe i staje się kolejnym wyzwaniem przedemną :) Tak więc biorę się do roboty. Dzięki wielkie za pomoc. Przedemną jeszcze wiele wyzwań jeśli chodzi o ZWCADa i C#, więc jeszcze nie raz będę pisał i pytał. Dobrze, że mam kogo pytać :) Jeszcze raz dzięki :good: Quote Link to comment Share on other sites More sharing options...
vrs Posted July 15, 2015 Author Report Share Posted July 15, 2015 Udało się zrobić :) Musiałem jedynie kod Vb umieścić w nowym projekcie i dodać go jako referencję do aktualnego projektu. Jednak to nie koniec problemów z exportem. Plik jest tworzony w określonej lokalizacji, nie wyskakują żadne błędy, ale nie mogę go otworzyć. Przy próbie otwarcia pokazuje się komunikat "Plik DXF jest niepoprawny lub niekompletny". Próbowałem różnych wartości w DwgVersion, ale to nic nie dało. Oczywiście jak rysunek, który eksportuję, zapiszę normalnie, przez opcję Zapisz jako, to nie mam problemów z jego otwarciem. Co ciekawe, wyeksportowany plik bez problemów otwiera się w ZWCAD 2012. Ma ktoś pomysł gdzie może leżeć przyczyna ? Quote Link to comment Share on other sites More sharing options...
kruszynski Posted July 15, 2015 Report Share Posted July 15, 2015 Czy może Pan przesłać do mnie mailem pliki przed zapisem i wynikowy DXF? mój adres to pomoc@dobrycad.pl Quote Link to comment Share on other sites More sharing options...
vrs Posted July 15, 2015 Author Report Share Posted July 15, 2015 Pliki wysłane. Quote Link to comment Share on other sites More sharing options...
vrs Posted July 17, 2015 Author Report Share Posted July 17, 2015 Żeby temat zamknąć: Plik generowany przed kod VB, poprzez metodę DxfOut również nie działa. Tak jak wyżej pisałem po wygenerowaniu tak pliku nie można go otworzyć w ZWCADzie, a dokładniej problemem jest BlockTableRocord. Nie wiedzieć czemu, plik jest nieprawidłowo eksportowany. jest jednak rozwiązanie problemu eksportu rysunku do pliku dxf. Działa ono tylko w VB.Net. Działający kod: Public Function exportDatabaseToDxf(_path As String, _document As Document) As Boolean Dim document As Document = _document Dim ss As ZcadSelectionSet = document.ZcadDocument.SelectionSets.Add("sample") document.ZcadDocument.Export(_path, "dxf", ss) document.ZcadDocument.SelectionSets.Item("sample").Delete() Return True End Function Problem rozwiązany. Martin_S 1 Quote Link to comment Share on other sites More sharing options...
cherokee Posted January 24, 2016 Report Share Posted January 24, 2016 problem exportu pliku DWG do DXF celem użycia pojawił się również u mnie ... posiadam zwcad+ 2015 , nie bylo tego problemu w wersji starszej np 2010. ROZWIĄZANIE : należy podczas zapisywania pliku jako DXF , wybrać wersję AUTOCAD R12 , wtedy nasz nowy DXF będzie działał bez zarzutu po otworzeniu w każdym innym programie. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.