-
Postów
1 427 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
83
Odpowiedzi opublikowane przez kruszynski
-
-
-insert nnnn \x y;
gdzie:
nnnn - nazwa bloku
x - skala x
y - skala y
punkt wstawienia i kąt obrotu określa użytkownik
-
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.
-
-
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.
-
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.
-
Niestety nie wiem jakie są plany twórców ZWCADa, ale obiecuje że kiedy pojawią się te funkcje zamieszcze tę informację na forum.
-
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ć
-
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
-
Tak wprost nie ma. A przynajmniej nie instaluje się automatycznie z ZWCADem. Które funkcje Pana interesją?
-
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/
-
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ć.
-
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
-
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.
-
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.
-
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
-
Wymienione przez pana problemy konsultujemy z producentami ZWCADa. Prawdopodobnie do jutra powinniśmy otrzymać odpowiedź. Jeśli pojawią się nowe informacje zamieścimy je.
-
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ę.
Problem z czcionkami
w ZWCAD i ZWCAD+ 2012
Opublikowano
Czy mógłby Pan wysłać nam tą czcionkę? Powinno wystarczyć skopiowanie czcionki do katalogu Fonts, ale jeśli nie działa, postaramy się sprawdzić przyczynę.