kruszynski

Moderatorzy
  • Postów

    1457
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    87

Treść opublikowana przez kruszynski

  1. Witam Z ustawieniem kamery w punkcie można sobie poradzić przez zapisanie widoków. Robi sie to przez polecenie: "view" następnie opcja "S" i wpisanie nazwy identyfikującej widok. Można w ten sposób zdefiniować kilka widoków. następnie można wczytać te widoki analogicznie przez polecenie "View" opcja "R" i nazwa. Co do słoneczka, to ze współrzędnymi mam wątpliwość. Nie można określić współrzędych kartezjańskich położenia źródła tego typu światła. Dla świateł typy distant określa się Azimuth i Elevation, to są współrzędne sferyczne jeśli sie nie myle. współrzędne kartezjańskie można określać tylko dla świateł typu punktowego. Co do tego że ich nie widać to niestety ale nie jest to widoczne, a przynajmniej nie znam sposobu jak można to włączyć. Mam nadzieję że w późniejszych wersjach się pojawi.
  2. Może "-" przy wartosci pomoże, u mnie działa
  3. A może tak: Dim SS As ZwcadSelectionSet Set SS = Thisdocument.SelectionSets.Add("NazwaSelekcji") ' Tego brakowało w Pańskim kodzie a jest to niezbędne Dim FilterType() As Integer Dim FilterData() As Variant ReDim FilterType(0) ReDim FilterData(0) FilterType(0) = 0 FilterData(0) = "INSERT" ' dla bloków Mode = zcSelectionSetAll SS.Select Mode, , , FilterType, FilterData Jednym z ograniczeń SelectionSets jest to, że selekcjonowane mogą być tylko te obiekty, które są widoczne na ekranie. Umieszczenie obiektów na niewidocznych warstwach, lub poza wyświetlanym obszarem może powodować że część obiektów nie będzie zaznaczona. Nie jestem pewnie jak te cechy ograniczają tryb "zcSelectionSetAll", ale może to byc powodem Pańskich problemów. Jeśli te informacje nie rozwiążą Pańskich problemów, proszę bliżej opisac w czym jest problem ( czy nic nie wybiera? czy jest jakis komunikat błędu, jeśli jest to jaki? ). Ewentualnie proszę przekopiować dokładnie fragment kodu (włącznie z definicją filtrów). PS. Napisał Pan że chce zaznaczyć wszystkie obiekty, w tym wypadku określanie jakichkolwiek filtrów nie jest konieczne.
  4. Stworzenie filtrów warstw w LISPie jest dość skomplikowane. Zamierzamy opracować coś podobnego w niedalekiej przyszłości. W AutoCADzie żeby stworzyć filtry warstw, musimy pobrać słowniki z warstw ("vla-GetExtensionDictionary") i poszczególne filtry dodawać przez "AddXRecord". Oddzielną sprawą jest ustawianie filtru jako aktywnego, w tej kwestii narazie nie potrafię pomóc.
  5. kruszynski

    LISPY

    Niestety nie wiem jakie są plany twórców ZWCADa, ale obiecuje że kiedy pojawią się te funkcje zamieszcze tę informację na forum.
  6. kruszynski

    LISPY

    To z punktem środkowym jest bardzo proste, wystarczy policzyć srednie między poszczególnymi współrzędnymi (defun midpoint (p1 p2 /) (list (/ (+ (car p1) (car p2))2) (/ (+ (cadr p1) (cadr p2))2) (/ (+ (caddr p1) (caddr p2))2)) ) (setq mid(midpoint x1 x2)) Z funkcjami vlax- jest znacznie poważniejszy problem. Producenci zwcada pracują nad tymi funkcjami, ale nie są one jeszcze dostępne. Nie znam sposobu jak można to inaczej zapisać
  7. kruszynski

    LISPY

    Ale przykłady czego Pana interesują? w ZWCADzie nie da sie używać geomcal. a w AutoCADzie to jest dosyć dobrze opisane z przykładami w helpie użytkownika AutoCADa (nie w helpie VisualLISP). Część funkcji z biblioteki geomcal można w miarę prosto napisać w LISPie, dlatego pytałem co Pana interesuje
  8. kruszynski

    LISPY

    Tak wprost nie ma. A przynajmniej nie instaluje się automatycznie z ZWCADem. Które funkcje Pana interesją?
  9. kruszynski

    LISPY

    Jak już rozmawiamy o programowaniu w lispie, to niedawno znalazłem dobrą stronę wyjaśniającą wiele mechanizmów lispowych. Polecam: http://www.afralisp.net/
  10. kruszynski

    Set_tile

    Nie wiem czy dobrze zrozumiałem problem, ale jeśli tak to: Przez "Set_tile" ustawia się to co ma być wyświetlone w górnym pasku okienka Być może wystarczy tak zdefiniować kontrolkę "edit_box": (w pliku DCL) : edit_box { label = "Wyświetlana etykieta"; key = "Identyfikator"; edit_width = 6;// to jest szerokość value="1"; // to jest domyślna wartość } Jeśli to nie wyjaśnia problemów proszę zamieścić jakieś dodatkowe informacje o tym jaki efekt chce pan uzyskać.
  11. kruszynski

    Numer seryjny

    Numer seryjny można odczytac z ze zmiennej systemowej _PKSER: (getvar "_PKSER") zmienna ta zawiera wartosć dopiero po zarejestrowanii ZWCADa. Nie znam sposobu na odczytanie numeru klucza. Sposób odczytania tej wartosci z klucza jest w jakiś sposób zaszyty w programie i nie ma do tego łatwego dostępu
  12. kruszynski

    LISPY

    Niestety nie ma takiej możliwości. Plik geomcal nie jest plikiem ZWCADowym. nie można go też przekopiować z AutoCADa, ponieważ AutoCAD operuje na plikach *.arx natomiast ZWCAD analogicznie używa plików *.drx. Te pliki nie są takie same.
  13. HKEY_CURRENT_USER\Software\Chinaweal Longteng\ZWCAD 2008i Plk\Profile\zwprofil\Config to tylko przykład gdzie: 'ZWCAD 2008i Plk' to wersja zainstalowanego ZWCADa 'zwprofil' to profil użytkownika dla którego wprowadzamy zmiany, domyślnie jest to Default, (tylko przez przypadek skopiowałem to co mam u siebie) Profile - to też sie może różnić. np dla ZWCAD2009 to jest 'Profiles' w Pańskim przypadku będzie to: HKEY_CURRENT_USER\Software\Chinaweal Longteng\ZWCAD 2008i Plk\Profile\Default\Config Po otwarciu tego rejestru w tabelce po prawej stronie, w kolumnie 'Nazwa' proszę znaleźć 'Blocks' i ten wpis modyfikować Proszę pamiętać o tym, że nieostrożne obchodzenie z rejestrami może grozić trwałym kalectwem systemu.
  14. Instalator można zrobić uzywając programu Inno setup. Dostępny na stronie http://www.innosetup.prv.pl/ Program jest darmowy, również do użytku komercyjnego 1) Żeby programy uruchamiały się autoamtycznie przy starcie, należy edytować plik zwcad.lsp Pojawiają się tu dwie ważne kwestie a)plik ten jest umieszczony w głównym katalogu ZWCADa domyśnie jest to c:\Program Files\ZWCAD 2008i Plk\ ale ścieżka ta może się różnić B) inne aplikacje również mogą edytować ten plik, nie można więc instalować swojego pliku zwcad.lsp, należy go edytować dodając do niego linię (vl-load-all "sciezka dostępu do pańskich plików *.lsp") 2)ścieżka wyszukiwania bloków jest zapisana w rejestrze, więc żeby dodać Pański katalog, należy wpisać do odpowiedniego rejesttru ścieżkę do Pańskich bloków. rejestr w którym zapisano ścieżki to: HKEY_CURRENT_USER\Software\Chinaweal Longteng\ZWCAD 2008i Plk\Profile\zwprofil\Config Rejestr może się różnić w zależności od wersji ZWcada Key = Blocks przykładowa wartosć = C:\ABC;C:\AAC czyli kolejne ścieżki wpisuje się po średnikach przy zapisie należy pamiętać o pozostawieniu tam wcześniejszych wartości, czyli dopisujemy do rejestru a nie wstawiamy tam własne ścieżki (chyba że celowo chcemy usunąć poprzednie) 3) żeby stworzyć menu z własnymi ikonkami należy stworzyć plik *.mnu. w nim definiujemy wszystkie ikonki. taki plik musimy wczytać do zwcada - tylko raz, przy kolejnych uruchomieniach programu menu będzie juz wczytane. Reasumująć 1) Wszystkie pliki łączymy w jeden instalator setup.exe. Oprucz naszych plików dodajemy tam również plik np: setup.lsp 2) W ZWCADzie wczytujemy (_appload) plik setup.lsp plik setup.lsp - ustawia potrzebne rejestry (to można również robić w instalatorze) - edytuje plik zwcad.lsp (nie znam prostego sposobu na edycje pliku w czasie działania instalatora) - wczytuje plik *.mnu (to jest konieczne w czasie działania zwcada, więc nie może być w instalatorze, musi być w pliku setup.lsp Po zainstalowaniu naszego programu z instalatora stworzonego przy użyciu Inno Setup automatycznie powstanie też plik uninstal.exe
  15. kruszynski

    LISPY

    Wymienione przez pana problemy konsultujemy z producentami ZWCADa. Prawdopodobnie do jutra powinniśmy otrzymać odpowiedź. Jeśli pojawią się nowe informacje zamieścimy je.
  16. kruszynski

    LISPY

    Witam Jestem tym nowym pracownikiem i postaram się w miarę moich możliwości pomóc w rozwiązywaniu takich problemów. Aktualny stan osnapów zapisany jest w zmiennej systemowej "osmode" więc jedno z możliwych rozwiązań pańskiego problemu jet następujące 1. zapisujemy do zmiennej aktualne ustawienia osnapów 2. zmieniamy aktualne ustawienia 3. na końcu procedury przywracamy stan początkowy przykład: (setq LastOSNAPs (getvar "osmode" )) ; tutaj piszemy własne procedury, mogące również zmieniac ustawienia osnapów . . . ;---------------------------------------------- (setvar "osmode" LastOSNAPs) ; przywraca początkową konfigurację. Jeśli to nie pomoże to proszę o przesłanie kodu pańskiej procdury. Interesują mnie tylko te linijki, w których zmienia Pan osnapy. Co do zmiennych systemowych to ich listę można znaleźć helpie Niestety nie ma narazie żadnego narzędzia do tworzenia procedur lispowych (poza podstawowymi programami do edycji plików tekstowych). Można jedynie rejestrować makra [Narzędzia -> Rejestruj skrypt ] -> Wpiać nazwę pliku. Po zakończeniu rysowania [Narzędzia -> Stop..]. Powstanie plik z rozszerzeniem scr, który można edytować jak plik tekstowy. Plik w którym zarejestrowane zostanie makro zawiera jedynie polecenia rysowania obiektów oraz listę wskazanych współrzędnych. Jeśli w czasie rejestracji makra zostaną zmienione np ustawienia osnapów informacja ta nie zostanie zapisana w makrze. Jeśli w którejś z nowych wersji ZWCADa zostanie dodany edytor zamieszczę tu odpowiedią informację.