Académique Documents
Professionnel Documents
Culture Documents
Conjuntos de selecção
Exemplo:
(setq ss1 nil ss2 nil)
(gc)
; (gc) liberta o espaço de memória de qualquer
; conjunto de selecção não associado a variáveis.
Exemplos:
(ssget "X")
; cria um conjunto de selecção com todas as entidades
; do desenho
(ssget "W" pt1 pt2)
; cria um conjunto de selecção com os objectos contidos
; na janela definida por pt1 e pt2
(ssget '((0 . "LINE")))
; cria conjunto de selecção com linhas (LINE) seleccionadas
; individualmente (filtro)
8 2009@JST/JOF CFAC: AutoLISP (VI) - Conjuntos de selecção
Exemplos de funções com ssget
(defun c:sslist()
(Utilizador selecciona os
(setq grupo (ssget))
objectos pretendidos.)
(print grupo)
(setq num (sslength grupo))
(print num)
(setq cont 0)
(repeat num
(setq nome (ssname grupo cont))
(print cont) (Escrita da ordem e do
(princ nome) nome de cada objecto
(setq cont (+ 1 cont))
que constitui o conjunto.)
)
(princ)
)
(defun c:maior (/ gru num cont maior inicio fim dista mai-ent)
(setq gru (ssget "X" '((0 . "LINE"))))
(setq num (sslength gru))
(setq cont 0)
(setq maior 0)
(repeat num
(setq inicio (cdr (assoc 10 (entget (ssname gru cont)))))
(setq fim (cdr (assoc 11 (entget (ssname gru cont)))))
(setq dista (distance inicio fim)) (Comprimento da recta
(if (>= dista maior) com posição cont.)
(progn
(setq maior dista)
(setq mai-ent (ssname gru cont))
)
) ; fecha o if
(setq cont (+ 1 cont))
) ; fecha o repeat
(alert "Clique OK para destacar\n a maior linha...")
(redraw mai-ent 3) ; 3 destaca a entidade mai-ent
(gc)
)