lispy, lispy i inne lispy


Rekomendowane odpowiedzi

Opublikowano

Bardzo dziękuję za szybkie napisanie skryptu.

Pobrałem i mam jedną uwagę. Wstawiane kreseczki powinny być zawsze rysowane rodzajem linii "Continuous" bo czasami są wstawiane na głównej przerywanej linii, a nie powinny być nigdy przerywane.

  • Odpowiedzi 52
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

Opublikowano

Jeżeli długość kreski głównej waha się w granicach: od >niż odsunięcie a <= niż dwa odsunięcia to skrypt rysuje dwie kreski

myślę że w skrypcie napisał pan że wstawiamy tylko jedną kreskę prostopadłą gdy główna linia jest krótsza niż odsunięcie (powinno być krótsza niż dwa odsunięcia).

Więcej błędów na razie nie zauważyłem.

Opublikowano

kreseczki są już "continuous" ale na odcinkach długości od 14.142 do 28.284 wstawiają się dwie a nie jedna.

proszę do testu wstawić kreseczki na głównych liniach o długościach 14.14 oraz 14.15

pozdrawiam i dziękuję za cierpliwe wprowadzanie poprawek :-)

Opublikowano

Zabrałem się za naukę lispa i od razu mam problemy :mrgreen:

Nie wiem jak sprawdzić lispem czy dana warstwa istnieje, jaki warunek zastosować?

Poniżej zamieszczam kod którego końcówka działa ale początek niestety nie.

Może ktoś jest w stanie mnie poprawić, lub nakierować gdzie mogę znaleźć informację co robię nie tak. Zamierzam zrobić podobną funkcje do wstawienie stylu tekstu (ale najpierw chcę skończyć ten tutaj).

(defun c:test ()


; wybieramy warstwe IS_opisy jako aktualną lub gdy jej nie ma tworzymy ją i ustawiamy jako aktualną

; sprawdzamy listę warstw ====================
(setq lista-warstw
(list (command "_layer" "?" "*" "" "");command
);list
);setq
;=============================================


(if (/= nil (member "IS_opisy" lista-warstw))

; od tego miejsca wg mnie jest OK

(progn
(command "_clayer" "IS_opisy")
);progn  do zdarzenia na tak

(progn
(command "_layer"
	"_N" "TEMP-LAYER"
	"_C" "41" "TEMP-LAYER"
	"_L" "Continuous" "TEMP-LAYER"
	"_LW" "0.13" "TEMP-LAYER" "")
(command "_rename" "_LA" "TEMP-LAYER" "IS_opisy")
(command "_clayer" "IS_opisy")
);progn do zdarzenia na nie 
);if
);defun test

Opublikowano

Również czekam na samouczek.

Ze sprawdzaniem warstw i stylów tekstu sobie poradziłem. Z ewentualnym tworzeniem nowych o określonych parametrach również.

Mam za to problem z zakończeniem pętli. Teraz wstawiłem na sztywno 100 powtórzeń ale chciałbym aby pętla powtarzała się dopóki będę wybierał punkt. Jeśli kliknę "prawym" przyciskiem myszy pętla powinna się zakończyć. Teraz co prawda po kliknięciu prawym też się pętla przerywa ale jest to spowodowane błędnie wprowadzoną daną :???:

Poniżej kod pętli, którą chciałbym przerywać "prawym" przyciskiem myszy.

Da się to jakoś zgrabnie poprawić?

 (repeat 100
 ;teraz petla do odczytywania wspulrzednych i wypisywania tekstu pod tabelką.
 ; ustawiamy zmienną PUNKT1 z wpółrzędnymi punktu na rozwinieciu
 ; zwcad prosi o klikniecie punktu i odczytuje współrzedne tego punktu i przypisuje je do PUNKT1
 (setq PUNKT1 (getpoint "\nWskaż punkt na rozwinięciu.")
 X1 (car PUNKT1)
 Y1 (cadr PUNKT1)
 punktA punktA2
 punktB punktB2
 punktC punktC2
 )

; ustawiamy zmienne ODLEGLOSC i RZEDNA
 (setq ODLEGLOSC (+ (/ (- X1 X0) 100) odl0)
	RZEDNA (+  POZIOM (/ (- Y1 Y0) 100))
 )

; zwcad wpisuje text odległość i rzedna w tabelce
   (setq X2 (- X1 5.0)
	  Y2 (- Y0 40)
      PUNKT2 (list X2 Y2)
   )
      (command "_.text" "_J" "_C" PUNKT2 "18" "90" (rtos ODLEGLOSC 2 2) )
      (print ODLEGLOSC)

     (setq X3 (- X1 5.0)
	    Y3 (- Y0 120)
           PUNKT3 (list X3 Y3)
     )
 (command "_.text" "_J" "_C" PUNKT3 "18" "90" (rtos RZEDNA 2 2) )
 (print RZEDNA)

 ;rysowanie linii tabelki
     (setq X4 X1
	    Y4 (- Y0 160)
           PUNKT4 (list X4 Y4);punkt4 jest dolnym punktem pionowej linii tabelki
		X5 X1
	    Y5 (- Y1 15)
           PUNKT5 (list X5 Y5);punkt5 jest górnym punktem pionowej linii tabelki
		punktC2 PUNKT4
		punktB2 (list X4 (+ Y4 80))
		punktA2 (list X4 (+ Y4 160))
   )
 (command "_line" PUNKT4 PUNKT5 "")
 (command "_line" punktA punktA2 "")
 (command "_line" punktB punktB2 "")
 (command "_line" punktC punktC2 "")
 ; koniec rysowania linii tabelki

 )

Opublikowano

Trzeba to zrobić przez sprawdzenie tego z zwróci getpoint

Ja bym to zrobił tak:

(setq Px (getpoint "Wskaż pierwszy punkt"))

(while Px

.

.

.

(setq Px (getpoint "Wskaż kolejny punkt"))

)

Jeśli wciśnie Pan [ENTER] kliknięcie prawym powinno dać ten sam skutek, to getpoint zwróci nil a pętla więcej się nie wykona.

Jeśli wciśnie Pan [ESC] Program się wywali. To też można obsłużyć przez vl-catch-all-apply .

Opublikowano

Mój pierwszy skrypt napisany. Może nie jest idealny ale działa.

Przyda się projektantom instalacji sanitarnych.

Skrypt opisuje rzędne i odległości na rozwinięciu kanalizacji sanitarnej. Opisy tworzą się specjalnie stworzonym stylem tekstu "IS_SIMPLEX" na warstwie "IS_opisy".

Za pomoc przy pisaniu skryptu dziękuję Panu o nicku :"kruszynski".

Skrypt uruchamiamy poleceniem: PKS

PKS_v1.00.zel

  • 2 tygodnie później...
Opublikowano

Co prawda nigdy nie robiłem rozwinięcia inst. kanalizacyjnej wewnętrznej w innej skali niż 1:100 ale w wolnym czasie (chwilowo brak) pomyślę nad dodaniem takiej funkcji.

Opublikowano
Co prawda nigdy nie robiłem rozwinięcia inst. kanalizacyjnej wewnętrznej w innej skali niż 1:100 ale w wolnym czasie (chwilowo brak) pomyślę nad dodaniem takiej funkcji.

ale zewnętrzne to skala 1:100/1000 lub mniej (pionowa w "decymetrach")..

wymiarowanie profili jest problemem, bo albo trzeba mieć osobny program do tego albo dziergać na piechotę. Nie spotkałam jeszcze jeszcze nakładki na cadowy program, która by wymiarowała profile.. :???:

Opublikowano

do profili zewnętrznych jest program "Kreślarz"

http://www.kreslarz.hydrosystem.lublin.pl/

wersja demo ma ograniczenie czasowe (bardzo długie, mi się nigdy nie skończyło, nie wiem czemu)

Kilka osób prosiło już mnie o przerobienie tego skryptu tak aby nadawał się do zewnętrznych profili, bo kreślarza nie używają.

Zapewne w wolnych chwilach powstanie taki skrypt, dodam kilka linijek tabeli typu: zagłębienie, przykrycie, spadek itp. i udostępnię go na forum.

Będzie trzeba klikać dwa razy więcej (na przewodzie wymiarowanym oraz na rzędnej terenu) ale dzięki temu uzupełni się cała tabelka :-)

  • 2 miesiące temu...
Opublikowano

Witam,

temat dosyć stary ale może jeszcze ktoś tu zagląda.

Mam jedno pytanie dotyczące numerowania. Czy jest możliwe, żeby numeracja się odbywała w kolejności zaznaczenia tekstu? Domyślam się, że teraz działa to na zasadzie kolejności wstawienia.

Z góry dzięki za odpowiedź.

  • 2 lata później...
Opublikowano

W załączniku plik zawierający zdefiniowaną funkcję podającą sumę długości wskazanych elementów.

Po wczytaniu pliku, funkcję uruchamia się poleceniem Sumlen

Czy można by było polecenie zaadaptować do 2014+? bo stary plik nie działa ..z góry dziekuję

Opublikowano

Witam,

Czym różni się funkcja SumLen od wbudowanej funkcji _linesum z narzędzi dodatkowych?

Nie działa polecenie SCALELISTEDIT również z narzędzi dodatkowych.

Pozdrawiam

Opublikowano

Witam

Istotnie, polecenie _scalelistedit nie działa w wersji polskiej -przekażemy informację do producenta. W wersji angielskiej polecenie to działa.

W porównaniu do polecenia _linesum, funkcja sumlen pozwala na sumowanie m.in. linii, polilinii, łuków, okregów.

Pozdrawiam

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.