Newsgroup: it.comp.software.cad
Titolo: [Acad2004-lisp] Tubi flessibili

Ecco il mio primo lisp, è una bozza ma mi sta già dando grandi
soddisfazioni! Serve a disegnare dei tubi flessibili, molto utile per chi fa
termotecnica.
Ho due problemi però. Innanzi tutto, mistero dei misteri, non mi funziona
sempre! In pratica ho notato che se apro un disegno nuovo e lo eseguo mi
dice "funzione annullata" dopo avermi chiesto il [nomeblocco] e in debug mi
segnala l'errore quando crea il primo arco. La cosa strana è che se zoommo e
poi eseguo funziona alla perfezione! Why??
Un'altra cosa che vorrei modificare è nel disegnare la spline, non so come
fare a dirgli di fermarsi di inserire i punti. Per ovviare ho inserito 10
pause ritenendo tale numero più che sufficiente, il fatto è che se voglio
fare un spline da tre punti devo dare un sacco di enter... funziona lo
setesso, ma è davvero poco elegante!!
Grazie mille.
-- 
See You,
    Gian.
;;==================================================================
;;*************** Gianluca Morena's FLEX Creator ***************************
(defun c:fle ()
  ;; Assegno il valore delle variabili per i punti ;;
;;;  (initget 3)
  (setq nomeblocco (getstring "\n Nome del blocco "))
  (setq a "-0.125,0.1560")
  (setq b "-0.125,0.3739")
  (setq c "0.125,0.1554")
  (setq d "0.125,0.3739")
  (setq centroalto "0.0,0.3739")
  (setq f "-0.125,-0.1583")
  (setq g "-0.125,-0.3761")
  (setq h "0.125,-0.1576")
  (setq i "0.125,-0.3761")
  (setq centrobasso "0.00,-0.3761")
  (setq gruppo (ssadd))
  ;; ORA DISEGNO IL PEZZO DEL TUBO FLEX E AGGIUNGO TUTTO AL GRUPPO [gruppo]
;;
  (command "_.line" a b "")
  (setq gruppo (ssadd (entlast) Gruppo));aggiungo l'ultima entità al gruppo
  (command "_.line" c d "")
  (setq gruppo (ssadd (entlast) Gruppo));aggiungo l'ultima entità al gruppo
  (command "_.line" f g "")
  (setq gruppo (ssadd (entlast) Gruppo));aggiungo l'ultima entità al gruppo
  (command "_.line" h i "")
  (setq gruppo (ssadd (entlast) Gruppo));aggiungo l'ultima entità al gruppo
  (command "_.arc" "c" centroalto d b)
  (setq gruppo (ssadd (entlast) Gruppo));aggiungo l'ultima entità al gruppo
  (command "_.arc" "c" centrobasso g i)
  (setq gruppo (ssadd (entlast) Gruppo));aggiungo l'ultima entità al gruppo
  ;; scalo il gruppo delle dimensioni che mi occorrono ;;
  (setq dim (getreal "\n Dimensione del Tubo (ø) "))
  (command "_.scale" gruppo "" "0,0" "r" "1" dim)
  (setq larg (* dim 0.25))
  ;; creo il blocco chiamato [nomeblocco]         ;;
  (command "_.-block" nomeblocco "0,0" Gruppo "")
  ;; creazione del tubo vero e proprio            ;;
  (alert "Spline di max 10 punti")
  (command "_.spline"    pause   pause   pause   pause   pause
    pause   pause   pause   pause   pause   ""    ""
    ""
   )
  (alert "\n selezionare la spline ")
  (command "_.measure" pause "b" nomeblocco "s" larg)
     ; chiede solo di selezionare la linea o plinea per inserire i blocchi
  (command "_.erase" pause "")  ;Chiede di nuovo di selezionare la polilinea
per cancellarla
  (princ "\n FATTO! ")
)
;;==========================================================================
=

 termotecnica.
(...cut)
Ho rimosso le richieste di selezione e di cancellazione della spline alla
fine, grazie al comando "entlast", però i due problemi di pima sussistono...
;(
Help me!
-- 
See You,
    Gian.


... ;(((
-- 
See You,
    Gian.

 poi eseguo funziona alla perfezione! Why??
E' probabile che il lisp usi routine esterne.
Aggiungi al .lisp questo
(arxload "geomcal.arx" [nil])
(arxload "geom3d.arx" [nil])
se non funzione forse si tratta di altra libreria arx .

 se non funzione forse si tratta di altra libreria arx .
Ho risolto il problema imponendo lo "OSMODE" a zero. Ma se in effetti questi
arx sono i responsabili dei miei "disturbi" proverò a fare come hai detto.
Grazie mille ti farò sapere.
P.S: Alla fine serve "arxunload" o posso lasciarli caricati??
-- 
See You,
    Gian.


Ho provato. Non funziona! A quanto pare sembra proprio che siano gli osnap a
dare errori, č un problema che hanno riscontrato diversi programmatori Lisp.
Beh, poco male, per fortuna c'č la variabile OSMODE!! ;))
-- 
See You,
    Gian.