Recommended Posts

Posted

Witam 

Potrzebuje pomocy jak zmodyfikować tak, aby instrukcja warunkowa sprawdzała czy jest warstwa "okna".

Jak jest warstwa "okna" to program jej nie tworzy , jak nie ma to ją tworzy.

Oraz mam pytanie czy da się to okno utworzyć jako całość czyli np. jako blok.

Bo w tym momencie to on tworzy mi jako poszczególne linie. 
Z góry dzięki za pomoc. 

 

Pb.lsp

Posted

Takie rozwiązanie, które sam stosuję:

    (if	(not (tblsearch "LAYER" "jakas_warstwa"))
      (entmake (list '(0 . "LAYER")
		     '(100 . "AcDbSymbolTableRecord")
		     '(100 . "AcDbLayerTableRecord")
		     (cons 2 "jakas_nazwa")
		     '(70 . 0)
		     '(62 . 7)
		     '(6 . "Continuous")
		     '(370 . -3)
	       )
      )
    )

 

Posted

A najprościej to załadować sobie CADPL-Pack i tam jest między innymi :

; cd:ACX_AddLayer         - Tworzy nowa warstwe / Creates a new layers                        ;
 

Pozdrowienia dla Kojacek :-)

 

Posted

Dodałem łączenie elementów jako blok


(setq last_mem (entlast) )	; zapamiętujemy co było ostatnio narysowane, przyda się później
; ..... rysowanie
(setq lastent (if (null last_mem) ; (setq lastent (entnext ) )
					(entnext )	
					(entnext last_mem)
			) 
)
		
(setq Selset (ssadd ) )	; przygotowujemy zbiór elementów do dodania do bloku
(while (not(null lastent ) )	
	(setq Selset (ssadd lastent Selset) )	; dodajemy kolejny element do zbioru 
	(setq lastent (entnext lastent))		; szukamy następnego narysowanego elementu
)
	  
(setq nr 1 )
(while (tblsearch "BLOCK" (setq nazwa (strcat "okno" (itoa nr ) ) ))
	(setq nr (1+ nr) )
)
		
; tworzymy blok (definicję) z narysowanych elementów
(command "_.-block" nazwa "_non" PU Selset "")
		
; wstawiamy blok
(command "_insert" nazwa PU "" "" "")
      

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now