kaminki

Użytkownik forum
  • Postów

    22
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Odpowiedzi opublikowane przez kaminki

  1. Witam. Co myślicie o przechowywaniu wszystkich danych odnośnie rysunku w zewnętrznej bazie SQLite?

    Załóżmy, że mam pręty zbrojeniowe i ich opisy. Na rysunku będą to zwykłe polilinie i tekst. W bazie bym przechowywał do nich Handle i wszystkie pozostałem dane jak średnica czy liczba sztuk. W momencie jakiejkolwiek zmiany mógłbym wtedy pobrać sobie listę Handle's obiektów i zaktualizować je. Pracuje teraz nad przechowywaniem danych w samym pliku CAD ale potrzeba często sporo kodu aby coś znaleźć czy pracować nad danymi obiektami. Pozdrawiam

  2. Mam okrąg w kilku egzemplarzach na rysunku. Gdy modyfikuję jeden dowolny to pozostałe również zmieniają się. Czy jest inny sposób niż przez bloki? Czy zadziałałoby to poprzez użycie "event handle"? 

    - utworzyć nod do przechowywania informacji o nazwie np. "my_circle"

    - narysowanie okręgu o promieniu r

    - dodanie jego ObjectId do my_circle

    - kopiowanie okręgu oraz dla każdej kopi dodanie Objectid do tego samego my_circle

    - każdy okrąg w xdate będzie zawierał  tekst "my_circle" -> potrzebne do identyfikacji wszystkich okręgów powiązanych z nod o takiej samej nazwie

    - każdy okrąg będzie posiadał załadowany event handle do metody analizuj() (handle wrażliwe na modyfikację obiektu)

    - a w metodzie analizuj():

        * gdy zostanie wywołane to znak, że obiekt został zmodyfikowany. Zapamiętanie zmienionego obiektu. Pobranie z xdata jego nazwy, przejście do nod -> my_circle i w pętli po wszystkich obiektach odczyt ObjectId -> pobranie każdego rzeczywistego obiektu, usunięcie go i podstawienie w to miejsce zmodyfikowanego okręgu. Jeżeli oczywiście można bezproblemowo użyć zapisu o ObjectId jako string do odszukania na rysunku obiektu okręgu.

    Czy jest to dobra droga do rozwiązania problemu? Jeszcze nie pisałem tego, a chciałbym dowiedzieć się czy jest możliwe takie rozwiązanie lub może istnieje lepsze podejście.

     

  3. 36 minut temu, padon napisał:

    ...funkcja bardzo potrzebna, z tego co wiem to nawet autoacad tego nie ma, a wystarczyło by w menadżerze warstw dla danej warstwy dodać dodatkowy atrybut przyciągania lub nie, ewentualnie zmienna dla danego podkładu (rastru).... nie ważne jak ale warto wprowadzić taki "bajer" bo ułatwia to pracę na podkładach....

     

    ... tak na szybko a może da się zrobić mały skrypcik sterujący przyciąganiem dla danego rastra (plik dwg)?

    Mogę coś takiego przygotować C#. Będzie działało tylko na wersji profesjonalnej ZWCad. Ale to najwcześniej wieczorem lub jutro.

    Plan działania:

    Wyłączenie wszystkich obiektów (linii, polilinii) jako zaznaczenie lub wszystko na danej warstwie.

  4. 16 godzin temu, dmatusz3 napisał:

    Hmm, może zapis "niedotykalskich" obiektów do formatu DWF (Plik-->Eksport) i podczytanie w rysunku DWF (Wstaw-->Podkład DWF)?

    Pan pracuje na dużej ilości cyfr po przecinku, proszę się upewnić czy taka konwersja nie powoduje przekłamań.

    Jest to jakieś wyjście ale przy jest przekłamanie. Zmienia skalę i wprowadza mały obrót.

  5. Czy jest możliwe wyłączenie lokalizacji względem obiektu dla części rysunku? ( np. dla obiektów na danej warstwie lokalizacja jest wyłączona ). Przydałoby się to w sytuacji gdy nakłada się dwa rysunki na siebie, a rysunek pod spodem żeby zachowywał się tak jakby był zdjęciem - podkładką. Czasami są przesunięcia wielkości 0.0000002 j.d i kursor łapie niepożądane punkty.

  6. 10 minut temu, dmatusz3 napisał:

    Sprawdziłem plik w AC 2018, ZWCAD 2015 i ZWCAD 2018.

    Wynik jest identyczny. Po rozbiciu elementów i połączeniu poleceniem PEDIT obszar się nie zmienia.

    Nie zmienia się ale dlaczego pole jest niedokładne, jeżeli każdy element jako linia/polilinia posiada równą długość. Gdyby obwód był nierówny to było by to zrozumiałe ale w takiej sytuacji nie powinno tak być. 

    Gdy rysujemy z ręki, podając wymiary każdej linii to jest ok. Ale podczas rysowania używa się funkcji np. odsuń, utnij czy kopiuj. Finalnie łączy się to w całość i powstaje taki problem.

  7. Czy jest jakaś możliwość naprawy takiej sytuacji?

    Długości linii są pełne, natomiast pole jest z błędem. Mamy dostęp do tylko 8 miejsc po przecinku dla wartości. 

    Czy tylko u mnie tak się zdarza? Jest to Polilinia złożona z kilku linii (połączone w jedną całość). Gdy przerysuje się wszystko jedną polilinia to jest ok. Ale przerysowywanie każdego obiektu zajmie wieki. Co może być przyczyną?

    ala1.PNG.92f13ce402d08b81ef98357bb7a5166d.PNG

  8. 3 minuty temu, pawmal napisał:

    Jaka jest zainstalowana wersja? Proszę o podanie vernum wpisując to polecenie w pasku poleceń. Rozumiem, że jest utworzony blok, a pole ma być dodane nad blokiem?

    2017.07.21(19945)_x64_S

    Blok jest utworzony ale nie ma w tej chwili znaczenia miejsce dodania pola gdyż nie chce przejść definicji pola. Np. dodanie daty w ten sposób jest bezproblemowe. Błąd pokazuje się tylko w przypadku bloku (odniesienie do bloku)

  9. 9 minut temu, perlon napisał:

    Niektóre nakładki do zliczania używają bloków opisów z atrybutami. Czyli opis nie jest tekstem tylko blokiem. Dodatkowo można dorzucić do elementu rysunkowego XData ułatwiające wstawianie takich bloków opisowych. Samego pręta nie robiłbym jako bloku. Zobacz przykładowo jak robi to e-cad. Można również pójść drogą PROXY_ENTITY ale zdaje się to znacznie utrudnia wymianę rysunków między użytkownikami.

    A w jaki sposób XData ułatwi wstawianie bloków opisowych? 

    Czyli cały opis jako blok z atrybutami a kształt pręta to zwykła Polilinia obok opisu? 

    Nie można jakoś powiązać opisu z kształtem pręta? 

    Przedstawię co potrzebuję:

    1a.thumb.PNG.143632ddc0fc332fb2f9ae39346011cb.PNG

    Na rysunku zdefiniuję linie jako pręty z opisami. Opis ma być jako blok tak? A co z linią? Na rysunku mam ten sam pręt w kilku miejscach. Na koniec podczas wyciągania pręta zlicza wszystkie sztuki na całym rysunku i tworzy nowy inny opis wraz z długością (wymiar na dole pręta).  Chciałbym aby również była taka możliwość że gdy zmienię średnicę pręta w jednym miejscu na wyciągniętym pręcie to zmieni się to również na całym rysunku. Czy bloki opisów pozwolą na to? Czy nie będzie potrzebne powiązanie linii z opisem?

  10. Jak przechowywać dane w pliku rysunku cad? Mam pręt. Składa się z polilinii oraz opisu. W opisie jest zawarty numer pręta , średnica, długość, liczba sztuk i inne dodatkowe dane. Numer pręta będzie dodawany automatycznie. Gdzie przechowywać takie dane w rysunku aby było do nich stały dostęp (przy każdym uruchomieniu muszą być w pamięci)?  Widziałem, że jest np. XData ale jeśli to jest ta droga to jak to zrobić aby dostosować do tej sytuacji. W dokumentacji czy blogach sprzed kilku lat to tylko pokazują jak dodać jakiś prosty, pojedynczy, tekst do danego Entity. A ja potrzebuję przechowywać całe kolekcje (słownik z dynamicznymi listami).

    Lepiej zrobić pręt jako blok z tekstem i polilinią czy nową klasę z polami Polyline i MText/MLeader?

  11. 17 minut temu, kruszynski napisał:

    Nie pracuje na co dzień w .Net więc mogę się mylić, ale o ile wiem, to wersja Visual Studio w przypadku .Net nie powinna mieć znaczenia. Postaram się sprawdzić jak powinna być wersja .Net . SDK wyślę, w odpowiedzi na mail jaki Pan do nas przysłał.

    W takim razie czekam na SDK i jeśli będą problemy to będę pisał.

  12. 3 minuty temu, kruszynski napisał:

    Może tak być.
    Próbował Pan debugować program ?

    Nic nie wykazywało. Pokazuje, że wszystko powinno być ok. A jakich wersji powinienem użyć do poprawnej pracy ( Visual Studio 2015, Framework .Net  4.6)? Może jakieś dodatkowe opcje?  I czy muszę mieć SDK dla programu czy podpięcie plików ZwDatabaseMgd.dll i ZwManaged.dll jest wystarczające? Na forum znalazłem, że można uzyskać SDK wysyłając wiadomość mailową.

  13. Poprzez zaznaczenie obiektów na rysunku program wybiera tylko MText i go przetwarza, tj pobiera i wyciąga wartości liczbowe przez regex. Sumuje uzyskane liczby i wyświetla numer i sumę w linii komend. W programie AutoCad działa tak jak powinno. W ZWCad ładuję plik .dll, wywołuje komendę i wybieram obiekty, lecz tu tylko pokazuje ile znalazło obiektów i kończy działanie. Może problem jest z samym wyświetleniem wyniku?

  14. Witam, czy ktoś podpowie jak skompilować kod aby działał poprawnie w ZWCAD 2017. Gdy testuję w AutoCad to jest wszystko dobrze.. Podmieniłem referencje do plików z ZWCAD (ZwDatabaseMgd.dll i ZwManaged.dll). Nakładka pobiera wartości z tekstu wieloliniowego MText. W ZWCAD czasami zadziała ale głównie funkcja nie zwraca wyniku. Wczytuje się ale bez uzyskania rezultatu. Co może być błędem? Wersja VS czy .Net, czy coś innego? Myślę, że są to proste funkcje i nie powinny różnić się od AutoCad, gdzie wszystko działa poprawnie.