Eksport pliku do dxf


vrs

Recommended Posts

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 by vrs
Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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:

Link to comment
Share on other sites

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 ?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 6 months later...

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...