vrs

Użytkownik forum
  • Postów

    11
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Treść opublikowana przez vrs

  1. vrs

    Eksport pliku do dxf

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

    Eksport pliku do dxf

    Pliki wysłane.
  3. vrs

    Eksport pliku do dxf

    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 ?
  4. vrs

    Eksport pliku do dxf

    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:
  5. vrs

    Eksport pliku do dxf

    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.
  6. vrs

    Eksport pliku do dxf

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

    Eksport pliku do dxf

    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.
  8. Szkoda. Bardzo by mi pomogła taka funkcjonalność, ale jak się nie da, to trzeba coś innego wymyślić :) Dzięki wielkie za pomoc.
  9. Dzięki wielkie. A tak poza tematem. Mogę znaleźć gdzieś jakieś kursy, szkolenia lub materiały na temat programowania c# w ZwCad ?
  10. Poniżej kod dla AAutoCad, na podstawie którego ja próbuję to samo zrobić w ZwCad. using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Geometry; public class PointMonitorTooltips { [CommandMethod("SM")] public static void StartMonitor() { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.PointMonitor += new PointMonitorEventHandler(ed_PointMonitor); } [CommandMethod("XM")] public static void StopMonitor() { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.TurnForcedPickOn(); ed.PointMonitor -= new PointMonitorEventHandler(ed_PointMonitor); } static void ed_PointMonitor(object sender, PointMonitorEventArgs e) { Editor ed = (Editor)sender; Document doc = ed.Document; try { FullSubentityPath[] paths = e.Context.GetPickedEntities(); // Go through the results of the selection // and detect the curves string curveInfo = ""; Transaction tr = doc.TransactionManager.StartTransaction(); using (tr) { // Open each object, one by one foreach (FullSubentityPath path in paths) { ObjectId[] ids = path.GetObjectIds(); if (ids.Length > 0) { ObjectId id = ids[ids.GetUpperBound(0)]; DBObject obj = tr.GetObject(id, OpenMode.ForRead); if (obj != null) { // If it's a curve, get its length Curve cv = obj as Curve; if (cv != null) { double length = cv.GetDistanceAtParameter(cv.EndParam) - cv.GetDistanceAtParameter(cv.StartParam); // Then add a message including the object // type and its length curveInfo += obj.GetType().Name + "'s length: " + string.Format("{0:F}", length) + "\n"; } } } } // Cheaper than aborting tr.Commit(); } // Add the tooltip of the lengths of the curves detected if (curveInfo != "") e.AppendToolTipText(curveInfo); } catch { // Not sure what we might get here, but not real action // needed (worth adding an Exception parameter and a // breakpoint, in case things need investigating). } } }
  11. Witam, Od jakiegoś czasu tworzę własną bibliotekę dll do ZwCada w C#. Potrzebuję mieć możliwość po najechaniu kursorem myszki na obiekt (linia, blok itp.) wyświetlenia, w okienku na palecie, informacji o obiekcie znajdującym się pod kursorem. Wiem, że jest coś takiego jak Point Manager, jednak to nie działa. Może coś robię źle, ponieważ bazuję na informacji jak go wykorzystać w AutoCad a nie ZwCad. Dotychczas nie miałem problemów z przenoszeniem kodu z AutoCad do ZwCad, wszystko zawsze działało. Oczywiście w Google szukałem, jednak nie mogę nic znaleźć. Point Monitor dodaję w następujący sposób: editor.PointMonitor += new PointMonitorEventHandler(pointMonitor); private void pointMonitor(object sender, PointMonitorEventArgs e) { // mój kod } Niestety nie ma żadnej reakcji. Pracuję na: Visual Studio Community 2013 Update 4 W projekcie ustawiony .NET Framework 4.5 ZwCad+ 2015