kruszynski

Moderatorzy
  • Content Count

    1186
  • Joined

  • Last visited

  • Days Won

    44

kruszynski last won the day on November 13 2019

kruszynski had the most liked content!

4 Followers

About kruszynski

  • Rank
    Ekspert

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Wygląda na to, że nie trzeba dodawać, usuwać i przesuwać. Wystarczy dodać do bazy, otworzyć do zapisu i będzie OK. Twój kod przerobiłbym tak: using ZwSoft.ZwCAD.DatabaseServices; using ZwSoft.ZwCAD.EditorInput; using ZwSoft.ZwCAD.Geometry; using ZwSoft.ZwCAD.GraphicsInterface; using ZwSoft.ZwCAD.ApplicationServices; using ZwSoft.ZwCAD.Runtime; namespace JigTest { public class Jig : DrawJig { private readonly Point3d basePoint; private readonly Entity entity; private Point3d currentPoint; public Matrix3d transformation; public Jig(Entity txt, Point3d point) : base() { entity = txt; basePoint = point; } protected override SamplerStatus Sampler(JigPrompts prompts) { JigPromptPointOptions jigOpt = new JigPromptPointOptions("Wskaż punkt wstawienia:") { UserInputControls = UserInputControls.Accept3dCoordinates, BasePoint = basePoint }; PromptPointResult res = prompts.AcquirePoint(jigOpt); currentPoint = res.Value; return SamplerStatus.OK; } protected override bool WorldDraw(WorldDraw draw) { transformation = Matrix3d.Displacement(basePoint.GetVectorTo(currentPoint)); var geometry = draw.Geometry; if (geometry != null) { geometry.PushModelTransform(transformation); geometry.Draw(entity); } return true; } } public class JigCommands { [CommandMethod("JIG")] public void Jig() { try { var tx1 = new DBText(); tx1.SetDatabaseDefaults(); tx1.TextStyle = Application.DocumentManager.MdiActiveDocument.Database.Textstyle; tx1.Height = 2; tx1.Position = new Point3d(0, 0, 0); tx1.TextString = "Tekst"; tx1.VerticalMode = TextVerticalMode.TextVerticalMid; SaveToDatabase(tx1); Document doc = Application.DocumentManager.MdiActiveDocument; using (var tr = doc.TransactionManager.StartTransaction()) { var txt = tr.GetObject(tx1.Id, OpenMode.ForWrite) as DBText; var jig = new Jig(txt, new Point3d(0, 0, 0)); Application.DocumentManager.MdiActiveDocument.Editor.Drag(jig); txt.TransformBy(jig.transformation); tr.Commit(); } } catch (Exception ex) { Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(ex.Message); } } public static void SaveToDatabase(Entity ent) { Document doc = Application.DocumentManager.MdiActiveDocument; using (var tr = doc.TransactionManager.StartTransaction()) { var btr = tr.GetObject(doc.Database.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord; btr.AppendEntity(ent); tr.AddNewlyCreatedDBObject(ent, true); tr.Commit(); } } } } Choć zaznaczam, że wcale nie czuję się tu jakoś bardzo kompetentny.
  2. Skrypt w załączniku. ExtraExplode.zelx
  3. Przygotuję takiego lispa. A tak przy okazji: w jakich sytuacjach taka operacja może się przydać?
  4. kruszynski

    Dokowanie panelu (C#)

    Zgłoszone.
  5. kruszynski

    Dokowanie panelu (C#)

    Można dodać obsługę zdarzenia na zamknięcie palety _ps.StateChanged += new PaletteSetStateEventHandler(OnPaletteClose); Tam zapisać położenie panelu static void OnPaletteClose(object sender, PaletteSetStateEventArgs e) { if (e.NewState == StateEventIndex.Hide) { ; tutaj zapisujemy położenie panelu w jakimś "pamiętniku" np zmiennej środowiskowe. } } A przy wczytywaniu sprawdzić co jest zapisane w "pamiętniku".
  6. kruszynski

    Dokowanie panelu (C#)

    Sztuczka polega na tym, żeby ustawić np _ps.Dock = DockSides.Left; ale dopiero PO _ps.Visible = true; Czyli np: _ps = new PaletteSet("Group Manager"); _ps.DockEnabled = (DockSides)((int)DockSides.Left + (int)DockSides.Right); _ps.Visible = true; _ps.Dock = DockSides.Left;
  7. Nazbierało się tych tematów. Dziękuję. Kilka wygląda prosto, kilka wymaga konsultacji z ZWSOFT. Ale chciałbym dopytać: Proszę napisać coś więcej. Wyświetlanie ilości grup to prosta sprawa, ale po co lista rozwijalna? liczba porządkowa w dodatkowej kolumnie dla każdej grupy? też nic wielkiego, a do czego to może się przydać? Czy dobrze się domyślam, że chodzi o to, żeby w miejsca które zaznaczyłem czerwoną strzałką wstawić ikonkę wyświetlającą panel?
  8. kruszynski

    Zwcad 2019 .NET publisher

    Mam przykład, który tworzy PDFa z aktualnego rysunku. Może się przydać. Nie wykorzystuje Dsd, ale tworzy PDFa. TestPlot.rar
  9. kruszynski

    Zwcad 2019 .NET publisher

    Nie pracowałem wcześniej z DSD, więc nie umiem powiedzieć nic pewnego, ale chciałem dopytać w ZWSOFT o szczegóły. Przesłany kod, to tylko fragment większej całości. Zakładam, że mógłbym obudować ten fragment całością, którą dałoby się skompilować, i przetestować, ale mogłoby się okazać, że coś zrobiliśmy inaczej, co da różne wyniki. W związku z tym proszę o przesłanie szerszego fragmentu, pozwoli na wierne odtworzenie sytuacji.
  10. kruszynski

    Zwcad 2019 .NET publisher

    Proszę napisać coś więcej. Co się dzieje ? A co dziać się powinno, ale się nie dzieje?
  11. kruszynski

    ZWTraffic_2020 zestawienie znaków

    Rozwiązane w aktualizacji dostępnej do pobrania tutaj: https://cad.szansa.net.pl/?dir=ZWTraffic_2020
  12. kruszynski

    ZWTraffic_2020 zestawienie znaków

    Czy może Pan przesłać fragment pliku, który mógłbym przeanalizować pod kątem różnic w wyliczanej powierzchni ? jeśli to możliwe proszę usunąć z rysunku wszystko poza tymi elementami oznakowania, które mają niezgodną powierzchnię. Pozdrawiam.
  13. kruszynski

    ZWTraffic 2020

    Dziękuję, poprawię przy okazji najbliższej aktualizacji
  14. kruszynski

    Kopiowanie z szykiem

    W tym przypadku : 1. zaznaczamy okrąg 2. wpisujemy wartość 50, (albo zaznaczamy dwa punkty) 2. wpisujemy wartość 500, (albo zaznaczamy dwa punkty) Pozostaje nam określić kierunek. Czy to ma być wzdłuż osi X, czy jeszcze podajemy kierunek? Czy dobrze rozumiem, że tak ma to działać?