Newsgroup: it.comp.software.cad
Titolo: Autocad14 filtrare solo alcune linee

E' possibile in A14 filtrare solo tutte le linee ad
esempio orizzontali e lunghe 1cm, per poi essere
cancellate.
N.B. Tali linee appartengono allo stesso livello
delle altre linee di disegno che devono restare.
Ho provato con i filtri ma non mi sembra che
sia possibile scegliere la dimensione (in lunghezza)
delle linnee da filtrare.
By by

 delle linnee da filtrare.
Non so dirti, io filtro a suon di lispate. :-)
c'e' chi se ne intende pero', magari aspettiamo
altre risposte.
Fammi sapere, ma non mettermi fretta,
soprattutto se le tue risposte tendono a complicare la cosa.
Comunque il lisp non e' cosi' ostico...
... e potrebbe essere un buon inizio per imparare questo.
comincia con questo:
scriviti al prompt, se vuoi copiaincolla:
(setq lin (entget(car(entsel))))
dai invio e seleziona una linea, ti apparira' la linea per come e' fatta
realmente!
(setq PT1 (cdr(assoc 10 lin )))
dai invio queste sono le coordinate del primo estremo
(setq PT2 (cdr(assoc 11 lin )))
dai invio queste sono le coordinate del secondo estremo
(setq lun-lin (distance PT1 PT2))
dai invio questo e' gai un elemento che ti serve, la lunghezza della linea.
(progn(if (= 1 lun-lin) (princ "\nt'ho beccato!") (princ "\npassa
pure!"))(princ))
dai invio qua puo' gia' esserci un erase, al posto del messaggino stupido.
--
Ti saluto per il momento.
Ciao Giovanni Anzani
--
Ciao Giovanni

dai invio qua puo' gia' esserci un erase, al posto del messaggino stupido.
Scusa, dove va messa esattamente il comando e come va scritto:
con apici, doppi apici, barre inclinate ecc.
Ipotizzo che siano anche queste le linee di codice dove inserire il comando
che colora le linee selezionate; come si scrive esattamente il codice?
N.B. Uso Autocad14 vers. Italiana
Per il momento devo provare se funziona.
Poi, ma solo in una fase successiva: è possibile
fare un pulsante che esegue in automatico il tutto
senza scrivere per ogni disegno tutte le righe di codice?
Thank you
By By da robviv

 senza scrivere per ogni disegno tutte le righe di codice?
certo, il codice, l'ho messo per farti interessare a come
funge la cosa, ma a te che te frega! :-)
per non riscrivere il tutto, basta impastare il tutto,
metterlo in un contenitore speciale, che per intendersi
e' semplicemente un (defun c:contenitore () [contenuto])
e lanciato autocad gridare "CONTENITORE!". :-)
Te l'ho preparato.
I Pulsanti, come del resto i menu, sono tanto bellini,
ma li considero un surplus che esula dall'idea che ho
di piccoli contributi gratuiti; soprattutto perche' ti basta
digitare il nome della procedura che ti passo (BLOV),
o guardarti come si possono assegnare dei comandi
a dei bottoni, trovi informazioni pure sotto i sassi a tal proposito,
se le cerchi, mi pare pure su Cadlandia del buon Aniello
ci sia qualcosa: va' un po' a vedere!
comunque:  0:-)
tastodestra sulle toolbars e ...
seleziona costomize e ...
poi ancora seleziona costomize ...
dalle categories scegli custom ...
ci sono due buttoni,
trascina fuori quello di sinistra che non si vede quasi
et voila' ti sei fatto la tua prima toolbar
tastodestraci sopra
Name: dagli il nome che vuoi
Help: scrivici una frasina che descriva il comando
Macro:  ^C^CBLOV
Button icon: scegli quella che piu' ti aggrada o disegnatela
clicca Apply
ciudi le finestra
Se sei arrivato fino a qua prova questo: taglincolla e salva
in un file con estensione.lsp, se non ho capito qualcosa male,
e' cio' che ti serve, occhio che non guarda in faccia nessuno
e butta tutte le l. orizz. lunghe quanto la lungh. orizz. passatagli
e butta tutte le l. vert. lunghe quanto la lungh. vert. passatagli.
Tu pero' per ringraziarmi potresti raccontarmi/ci da cosa nasce
questa tua esigenza, il lispino e' di quelli nella fascia dei 30 min.
e mi costa piu' rincorrerti con la parcella dell'eventuale somma
riscossa.
Quindi il suddetto non e' tuo, ma patrimonio dell'umanita',
e scritto da me. :-)
Pero' su questa letterina ci sono stato un pochetto e non
mi dispiacerebbe un buon feedback.
---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---
(defun c:BLOV (/ cont) ; che sta per butta linee oriz. / vert
  (princ "\n----------------------------------------")
  (princ "\n Utility di eliminazione di linee dal disegno")
  (princ "\n in funzione della loro direzione e lunghezza")
  (princ "\n sviluppata da Giovanni Anzani Set2000")
  (princ "\n 
giova...@tiscalinet.it
 ")
  (princ "\n----------------------------------------")
(initget 4)
(setq lx (getdist "\n Digitare la lunghezza orizzontale o due punti <1>: "))
(if (not lx) (setq lx 1))
(initget 4)
(setq ly (getdist "\n Digitare la lunghezza verticale o due punti <0.5>: "))
(if (not ly ) (setq ly 0.5))
(setq sl (ssget "x" '((0 . "LINE")))
      #l (sslength sl))
(setq cont 0)
(repeat #l
  (setq nl  (ssname sl cont)
        ll  (entget nl))
  (setq PT1 (cdr (assoc 10 ll))
 PT2 (cdr (assoc 11 ll))
        dPT (distance PT1 PT2))
  (if (or (and (equal (cadr PT1) (cadr PT2)) (equal dPT lx))
          (and (equal (car  PT1) (car  PT2)) (equal dPT ly)))
      (command "_erase" nl ""))
  (setq cont (1+ cont))))
---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---
--
Ciao Giovanni

 e sulla direzione y = 0,5, no vero?
vero
nel senso che: non sto parlando di proiezioni
ma di:
1)       linee orizzontali  1 unità  lunghe
2)       linee verticali  0,5  lunghe
by by

Ciao robviv (Roberto Viviani ?),
sei incontentabile!
prova questo ora te le presenta una per una tratteggiate
come da selezione doc e ti dice: che fo' la butto?,
di default la butta (chi tace acconsente),
se non la vedi puoi zoommare real-time senza problema alcuno,
senno' ti ci metto un ZW PT1 PT2 e uno ZP in uscita, di piu' no.
l'altra fa molto prima, ma con questa forse ti senti piu' tranquillo! :-)
i punsantini ti ho gia' detto come farli...
--
Ciao Giovanno
---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---
(defun c:sblov (/ cont) ; che sta per seleziona e butta linee
  (princ "\n----------------------------------------")
  (princ "\n Utility di eliminazione di linee dal disegno")
  (princ "\n in funzione della loro direzione e lunghezza")
  (princ "\n previa verifica visiva")
  (princ "\n sviluppata da Giovanni Anzani Set2000")
  (princ "\n 
giova...@tiscalinet.it
 ")
  (princ "\n----------------------------------------")
(initget 4)
(setq lx (getdist "\n Digitare la lunghezza orizzontale o due punti <1>: "))
(if (not lx) (setq lx 1))
(initget 4)
(setq ly (getdist "\n Digitare la lunghezza verticale o due punti <0.5>: "))
(if (not ly ) (setq ly 0.5))
(setq sl (ssget "x" '((0 . "LINE"))) #l (sslength sl))
(setq cont 0)
(repeat #l
  (setq nl  (ssname sl cont) ll (entget nl))
  (setq PT1 (cdr (assoc 10 ll))
 PT2 (cdr (assoc 11 ll))
        dPT (distance PT1 PT2))
  (if (or (and (equal (cadr PT1) (cadr PT2)) (equal dPT lx))
          (and (equal (car  PT1) (car  PT2)) (equal dPT ly)))
      (progn (command "_select" nl)
      (initget "S N")
      (if (= (getkword "\n Cancellare la linea selezionata? [Si/No] <Si>")
"S")
          (command "" "_erase" nl "")(command "" ))))


 thank you di nuovo (il mio inglese si ferma alla 2a parola)
anche i mio si ferma alla seconda, che vuol dire thank? :-)
hai un nome che sia un nome?
--
Ciao Giovanni Anzani

 Ciao Giovanno
Vedo che a fare il lisp siete in tanti
Scusa ma in Giovanni quanti Giovanno ci sono :-)
Ciao e Thank you

 hai un nome che sia un nome?
tutti hanno un nome c'è chi si chiama Lisp
(conosciuto da poco, un tipo tosto, ma se preso
dal verso giusto è sempre disposto a darti una mano)
e chi Roberto
By By