-
Postów
1474 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
93
Treść opublikowana przez kruszynski
-
Może zapis w formacie MNU zamiast XML pomoże
-
W pasku stanu na przycisku "DYN".
-
Przepraszam, mój błąd, pisałem to z pamięci. ssetObj.Select mode, , , Ftype, Fdata Tak powinno być dobrze. Różnica jest tylko w 2 przecinkach, ale bez nich kompilator traktuje zmienne filtrów jako pukty.
-
ssetObj.SelectOnScreen Ftype, Fdata proszę zamienić na : ssetObj.Select zcSelectionSetAll Ftype, Fdata jeśli to nie zadziała, to problem może być w ustawieniach fitrów, wtedy nie będzie wyświetlało błędu, ale może nic nie selekcjonować np jeśli filtry ustawią selekcje wszystkich czerwonych linii a w rysunku będą tylko niebieskie
-
Nabrałem wątpliwości co do tego, że polilinia musi być zamknięta, być może niezamknięta też może być. Nie znam zmiennej w której zapisywane są długości linii, łuków i innych typów obiektów. Szukałem alternatywnych rozwiązań, i jedyne co znalazłem to obliczanie długosci dla każdego typu obiektu. W przypadku linii to jest dośc proste wystarczy użyć funkcji (distance) i jako parametry podać współrzędne punktów początku i końca, które odczytać można z linii (DXF kod 10 i 11 jeśli sie nie mylę) dla łuków to jest troche bardziej skomplikowane. Cała procedura jest opisana na forum www.cad.pl, np tu: http://www.cad.pl/wwwboard/about68297.html&highlight=liczlin+lsp
-
Procedura "chodzi" (oprócz Attedit) tylko robi coś innego niż Pan zamierza nią zrobić. Wartość zmiennej PERIMETER nie zmienia się, bo funkcjia "lengthen" jej nie zmienia Polecam lekturę helpa do zmiennej PERIMETER. Jeśli udało się Panu użyć tej procedury, to przed zakomentowaniem linijki "(command "list" pause)". Zmienna systemowa "Perimeter" określa obwód ostatnio zmierzonego obiektu. Jej wartość zmienia się tylko w wypadku użycia funkcji "LIST" i "AREA", a wskazany obiekt musi być zamkniętą polilinią, lub okręgiem, w przypadku innych niezamkniętych obiektów, ta zmienna nie zmieni wartości.
-
Polskie komendy i skróty klawiaturowe
kruszynski odpowiedział(a) na dmatusz3 temat w ZWCAD i ZWCAD+ 2012
W czasie instalacji użytkownik zostaje zapytany, czy zainstalować aliasy. Jeśli zaznaczy że tak, to zostatną zmienione. -
Polskie komendy i skróty klawiaturowe
kruszynski odpowiedział(a) na dmatusz3 temat w ZWCAD i ZWCAD+ 2012
Dziękuję za uwagi. Poprawimy to w kolejnej wersji -
W DXF'ach nie jestem biegły, ale jeśli miałbym używać warstw z lispa, szukałbym sposobu na wykorzystanie funkcji tblnext, (tblnext "layer" T) gdzie: - tblnext używane w pętli pobiera kolejne definicje z kolekcji, - kolekcja to nazwa kolekcji do przeszukiwania, - ostatni parametr jest opcjonalny i powoduje "przesunięcie wskaźnika na początek" dziwnie to brzmi, ale chodzi o to, że na początku należy wywołać funkcję z tym parametrem (wtedy odczytana zostanie pierwsza wartość), a przy kolejnych wywołaniach nie mozna tego parametru ustawiać, ponieważ zawsze czytałoby pierwszy element. Ta funkcja zwraca informację w postaci ((0 . "LAYER") (2 . "0") (70 . 0) (62 . 7) (6 . "CONTINUOUS")) lub nil, na końcu Dodam jeszcze, że kolekcje dostępne, to: "LAYER", "LTYPE", "VIEW", "STYLE", "BLOCK", "UCS", "APPID", "DIMSTYLE", and "VPORT".
-
Polskie komendy i skróty klawiaturowe
kruszynski odpowiedział(a) na dmatusz3 temat w ZWCAD i ZWCAD+ 2012
Może uda się po zainstalowaniu bibliotek z załącznika vba6en.zip -
Już mam czcionke. Jak w ZWCADzie stworzyłem sobie text i do to jego stylu tekstu wpisałem tą czcionkę, to zadziałało. A czy Pan tą czcionkę kopiuje do katalogu Fonts ZWCADa? czy Windowsa? powinno być do ZWCADa.
-
A gdzie ten załącznik?
-
Kody DXF są trochę bardziej skomplikowane. Ich znaczenie nie zależy tylko od numerum ale jeszcze od typu obiektu jakiego dotyczy. Np 41 to dla atrybutów skala X, a dla kreskowań to jest skala kreskowania, dla strzałki to szerokość tekstu opisu, dla polilini to szerokosc końca określonego segmentu. A dla stylu wymiaru wielkość strzałki. Więc do wyjaśnienia jaki kod ma jakie znaczenie, proszę o sprecyzowanie jakiego typu obiektu to dotyczy. Jeśli sie nie mylę, to kąt raczej nie będzie podany w entycji linii, ( nie mam opisanej takiej pozycji w helpie).
-
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ę.
-
-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ć.