Eksport pliku do dxf


vrs

Rekomendowane odpowiedzi

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.

Edytowane przez vrs
Odnośnik do komentarza
Udostępnij na innych stronach

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?

Odnośnik do komentarza
Udostępnij na innych stronach

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ę.

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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?

Odnośnik do komentarza
Udostępnij na innych stronach

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:

Odnośnik do komentarza
Udostępnij na innych stronach

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 ?

Odnośnik do komentarza
Udostępnij na innych stronach

Ż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.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 6 miesięcy temu...

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.

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie