vrs Opublikowano 3 Lipca 2015 Zgłoś Opublikowano 3 Lipca 2015 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 Cytuj
dmatusz3 Opublikowano 3 Lipca 2015 Zgłoś Opublikowano 3 Lipca 2015 Witam, niestety nie potrafię pomóc od ręki, ale w poniedziałek będzie osoba, która zajmuje się c++ i c#, to postaramy się to sprawdzić. Pozdrawiam Cytuj
kruszynski Opublikowano 6 Lipca 2015 Zgłoś Opublikowano 6 Lipca 2015 Witam Nie korzystałem dotychczas z PointMonitor, więc trudno jest mi powiedzieć coś wiążącego w temacie. Ale chętnie skonsultuję to bezpośrednio z programistami ZWSOFT. Czy mógłby Pan podesłać jakąś większą próbkę kodu? Pozdrawiam Cytuj
vrs Opublikowano 6 Lipca 2015 Autor Zgłoś Opublikowano 6 Lipca 2015 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). } } } Cytuj
kruszynski Opublikowano 6 Lipca 2015 Zgłoś Opublikowano 6 Lipca 2015 Dziękuję Przesłałem to do ZWSOFT. Jak tylko uda mi się dowiedzieć czegoś więcej dam znać Cytuj
vrs Opublikowano 6 Lipca 2015 Autor Zgłoś Opublikowano 6 Lipca 2015 Dzięki wielkie. A tak poza tematem. Mogę znaleźć gdzieś jakieś kursy, szkolenia lub materiały na temat programowania c# w ZwCad ? Cytuj
kruszynski Opublikowano 6 Lipca 2015 Zgłoś Opublikowano 6 Lipca 2015 Nie dysponuję jakąś bazą wiedzy ani innymi zebranymi materiałami dotyczącymi programowania w C# dla ZWCADa. W większości przypadków jest to przez analogię do C# dla AutoCADa. Jeśli natomiast szuka Pan odpowiedzi na konkretne pytania zapraszam do kontaktu na tym forum lub mailowo pod adresem pomoc@dobrycad.pl . Cytuj
kruszynski Opublikowano 8 Lipca 2015 Zgłoś Opublikowano 8 Lipca 2015 Witam Otrzymałem odpowiedź z ZWSOFT. Problem jest w samym ZWCADzie. Niestety nie jest to temat, jaki można łatwo rozwiązać jakimś prostym obejściem. Na chwilę obecną pozostaje poczekać aż ZWSOFT naprawi działanie PointMonitorEventHandler. Pozdrawiam Cytuj
vrs Opublikowano 9 Lipca 2015 Autor Zgłoś Opublikowano 9 Lipca 2015 Szkoda. Bardzo by mi pomogła taka funkcjonalność, ale jak się nie da, to trzeba coś innego wymyślić :) Dzięki wielkie za pomoc. Cytuj
Rekomendowane odpowiedzi
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ą.