--
Angelo M. Figundio
ang...@figundio.it
www.figundio.it
***********************************************
E il mio signore lo sa
una sola volta non basterà
che l'avvoltoio divori il mio corpo
per far tacere per sempre il mio cuore
(A. Branduardi)
*******************************************
comunque, il lisp, secondo me, andrebbe corretto così:
;;;-------------------------------------------------------
(defun c:div (/ a ent pnt)
(graphscr)
(prompt "spezza una linea/polilinea!\n")
;; seleziona una entità e le coordinate di selezione:
(setq a (entsel))
;; separo l'entità e la metto in ent:
(setq ent (car a))
;; separo le coordinate e le metto in pnt:
(setq pnt (nth 0 (cdr a)))
;; attivo il comando spezza con i dati in mio possesso:
(command "_break" ent pnt "@")
(princ)
)
;;;-------------------------------------------------------
Ciao Claudio
--
--
"Angelo Massimo Figundio" <figundi...@windNOSPAM.it> ha scritto nel
messaggio news:c3ccc5$v58$1...@lacerta.tiscalinet.it...
Maci
> Allora, ho scritto un semplice comando in autolisp che dovrebbe spezzare
una
> linea/polilinea nel punto in cui uno la seleziona:
Il lisp corretto fa proprio questo. Però se ho interpretato male....
Ciao Claudio
> Salve, avrei bisogno di un aiuto.
> Noi, in studio, usiamo molto spezzare le linee e polilinee per costruzioni
> in autocad, però risulta molto antipatico l'uso del comando spezza
ciao!
io uso un lisp (bk) che ho trovato in rete..ti posto il codice
l'unica cosa fastidiosa è che elimina tutti gli osnap per lasciare solo
intersezione,quindi dopo li devi risettare. Si può modificare affinchè
dopo rimetta gli osnap precedenti? (io di lisp non so nulla...)
ciao e grazie...
;BK
;BREAKER.LSP *** VERSION 1.2 *** (4/11/89)
;
;WILL BREAK A LINE AT AN INTERSECTION WITH ANOTHER LINE. AUTOMATICALLY SETS
;OSNAP TO "INTERSECT". *[LL]
;
(defun C:BK (/ ln bkpt)
(setq om (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 32)
(setq ln (entsel "\nChoose Line to Break..."))
(setq bkpt (getpoint "\nPick Break Point.. "))
(command "break" ln "f" bkpt "@")
(setvar "osmode" om)
(setvar "cmdecho" 1)
(prin1)
)
--
Angelo M. Figundio
figun...@tiscali.it
--
--
"Angelo Massimo Figundio" <figundi...@windNOSPAM.it> ha scritto nel
messaggio news:c3ee3g$irk$1...@lacerta.tiscalinet.it...
> AIUTO il lisp di Claudio non funziona!!
> Qualcuno sa dirmi perchè?
(defun c:div (/ ent pnt)
(graphscr)
(setq ent (entsel "\n seleziona la linea dove vuoi dividerla \n"))
(setq pnt (getpoint (cdr ent)))
(command "_break" ent "_f" pnt "@" )
)
;BK
;BREAKER.LSP *** VERSION alpha ***
(19/03/2004)
;
;WILL BREAK A LINE
(defun C:BK (/ ln bkpt)
(setq ln (entsel "\n Scegli una linea da spezzare..."))
(setq bkpt (getpoint "\nseleziona il punto di divisione.. "))
(command "_break" ln "_f" bkpt "@")
)
Al comando _break:
- se gli passi la variabile ENT gli passi in realtà il nome dell'entità e il
punto di selezione, per cui è necessario poi il "_F"
- se invece gli passi (car ENT) gli dai solo il nome dell'entità e non è
necessario "_F".
Per sistemare il tuo LISP ti basta quindi togliere GETPOINT perchè non devi
chiedere nulla all'utente
Lo puoi scrivere quindi:
(defun c:div (/ ent)
(graphscr)
(setq ent (entsel "\n seleziona la linea dove vuoi dividerla \n"))
(command "_break" ent "_f" (cadr ent) "@" )
)
oppure:
(defun c:div (/ ent)
(graphscr)
(setq ent (entsel "\n seleziona la linea dove vuoi dividerla \n"))
(command "_break" (car ent) (cadr ent) "@" )
)
Ciao Claudio
--
--
"Angelo Massimo Figundio" <figundi...@windNOSPAM.it> ha scritto nel
messaggio news:c3ehtg$nkp$1...@lacerta.tiscalinet.it...
"SePrAm.com" <in...@sepramNOSPAM.com> ha scritto nel messaggio
news:umA6c.87969$O31.3...@news4.tin.it...
>(defun c:div (/ ent)
> (graphscr)
> (setq ent (entsel "\n seleziona la linea dove vuoi dividerla \n"))
> (command "_break" ent "_f" (cadr ent) "@" )
>)
Secondo me la versione corretta è:
(defun c:div (/ ent)
(graphscr)
(setq ent (entsel "\n seleziona la linea dove vuoi dividerla \n"))
(command "_break" (car ent) "_f" (cadr ent) "@" )
)
Il comando Break mi chiede la selezione di un oggetto (car ent),
l'opzione primo punto, il punto (cadr ent) e la ripetizione del punto
stesso.
Saluti, Aniello
--
Aniello Annunziata
Content Director Manager
www.cadlandia.com
aniello.a...@cadlandia.com
Per rispondermi in privato, togli NOGARBAGE dall'indirizzo
--
Angelo M. Figundio
figun...@tiscali.it
"Aniello Annunziata" <aniello.annun...@cadlandia.com> ha scritto
nel messaggio news:di7o50dnuu9gf4f5c...@4ax.com...
--
--
"Angelo Massimo Figundio" <figundi...@windNOSPAM.it> ha scritto nel
messaggio news:c3fg70$pco$1...@lacerta.tiscalinet.it...
> Cara Annuziata, speravo che ti facessi viva anche tu, purtroppo Claudio
Allora, inizamo riconrdanod che Aniello è il nome, ed Annunziata il
cognome.
Cmq, questa routine a me funziona:
(defun c:div (/ ent)
(graphscr)
(setq ent (entsel "\n seleziona la linea dove vuoi dividerla \n"))
(command "_break" (car ent) (cadr ent) "@" )
)
Qual'è il problema, ora, che funziona solo se il punto di selezione si
trova direttamente sull'oggetto.
Il che significa che si debba fare la selezione usando uno degli snap
impostati in AutoCAD, altrimenti il comando fallisce miserevolmente
(nels enso che si conclude ma senza nessun risultato).
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
P.S.: A proposito ma Aniello che etimologia ha?
"Aniello Annunziata" <aniello.a...@cadlandia.com> ha scritto nel
messaggio news:d1bf8f4d0aa68ac985c...@mygate.mailgate.org...
> "Angelo Massimo Figundio" <figundi...@windNOSPAM.it> wrote in
> message news:c3m5qv$cpu$1...@lacerta.tiscalinet.it
>
> > Cara Annuziata, speravo che ti facessi viva anche tu, purtroppo Claudio
> Allora, inizamo riconrdanod che Aniello č il nome, ed Annunziata il
> cognome.
> Cmq, questa routine a me funziona:
>
> (defun c:div (/ ent)
> (graphscr)
> (setq ent (entsel "\n seleziona la linea dove vuoi dividerla \n"))
> (command "_break" (car ent) (cadr ent) "@" )
> )
>
> Qual'č il problema, ora, che funziona solo se il punto di selezione si
> P.S.: A proposito ma Aniello che etimologia ha?
Sfatiamo sta storia... Aniello č un nome tipicamente napoletano, deriva
da Agnello che nel primo dialetto napoletano si diceva Ajniello, quindi
Ainiello da cui č nato il nome Aniello.
Il santo patrono č Sant'Aniello, cade il 14 dicembre (il giorno dopo
Santa Lucia, e per molto tempo il giorno piů breve dell'anno), il santo
Aniello č statto vescovo di Sorrento nel 1400.