Newsgroup: it.comp.software.cad
Titolo: parabole in autocad

vorrei visualizzare un diagramma dei momenti. Qualcuno saprebbe dirmi come
disegnare una parabola in autocad? Usando una spline ci sono pesanti
approssimazioni!
grazie, Luca

approssimazioni!
Non c'è nessuna approssimazione.
Devi disegnare una polilinea. Il primo vertice lo devi mettere sul
pprimo nodo della trave, alzato delv alore del momento. Il terzo
sull'ultimo alzato del valore del momento.
Ora tiri la congiungente questi due punti, ti metti nel punto medio e
ti abbassi di q*L*L/4, questo è il secondo punto della polilinea.
La tracci, e quindi digiti EDITPL (o PEDIT se in inglese)
Dai l'opzioni Spline.
La polilinea è diventata una curva, ma una parabola del secondo ordine
(eq. terzo grado).
Ora selezioni la Spline e dalle Proprietà dai che il tipo di polilinea
è quadratica. Hai fatto la tua parabola.
C'è ancora una cosa strana: la spline viene approssimata con 8
segmenti, dunque per aumentare questo valore bisogna settare la
variabile SPLINESEGS ad un numero congruo (almeno 64).
Hai fatto al tua parabola.
Ora se vuoi fare prima, eccoti un Lisp che ho fatto io, traccia il
diagramma dei moemnti per una trave continua:
;;; MOMCAD.LSP
;;; Copyright 2000 Aniello Annunziata per CADLandia
;;;
;;; Disegna i diagrammi dei momenti e dei tagli ricevendo i parametri
;;; necessari
;;;
;;; La rappresentazione è gia in scala, per stamparla basta settare
;;; la stampa 1:1
;;;
;;;
--------------------------------------------------------------------
;;; Funzione principale
;;;
--------------------------------------------------------------------
(defun C:MOMCAD (/ contatore ds edt ep idt ip lu md mq ms nc oldcmd
		   oldosmode oldspsegs oldsptype p1 p2 p3 pa pb q0 sl
sm st
		   stra td tq ts
		)		       ; Setto le variabili per un
				       ; successivo ripristino
  (setq oldcmd (getvar "cmdecho")
	oldosmode (getvar "osmode")
	oldsptype (getvar "splinetype")
	oldspsegs (getvar "splinesegs")
  )				       ; Acquisisco i parametri
generali
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (initget 7)			       ; Accetta solo valori positivi
e non
				       ; nulli
  (setq sl (getreal "\nScala delle lunghezze 1 : "))
  (initget 7)			       ; Accetta solo valori positivi
e non
				       ; nulli
  (setq sm (getreal "\nScala dei momenti 1 : "))
  (initget 7)			       ; Accetta solo valori positivi
e non
				       ; nulli
  (setq st (getreal "\nScala dei tagli 1 : "))
  (initget 7)			       ; Accetta solo valori positivi
e non
				       ; nulli
  (setq ds (getreal "\nDistanza in cm tra i diagrammi: "))
  (setq ds (/ (* ds sl 10)))	       ; converto al distanza in unità
del
				       ; disegno
  (initget 7)			       ; Accetta solo valori positivi
e non
				       ; nulli
  (setq nc (getreal "\nNumero campate: ")) ; Correggo le scale dei
momenti
				       ; e dei tagli
  (setq sm (/ sm 10)
	st (/ st 10)
  )				       ; Per ogni campata faccio i
calcoli
  (setvar "splinetype" 5)
  (setvar "splinesegs" 512)
  (setq ip (list 0 0))		       ; definisco il punto iniziale
del
				       ; diagramma del momento
  (setq idt (list 0 (- 0 ds)))	       ; definisco l'inizio del
diagramma
				       ; del taglio
  (setq stra (/ 50 sl))		       ; definisco la scala per il
				       ; tratteggio
  (setq contatore 1)		       ; Inizializzo il contatore
				       ; Per ogni campata ...
  (while (<= contatore nc)	       ; Acquisisco i dati necessari
...
    (initget 7)			       ; Accetta solo valori positivi
e non
				       ; nulli
    (setq lu (getdist "\nLuce della campata [m]: "))
    (initget 1)			       ; Non accetta valori nulli
    (setq ms (getreal "\nMomento a sinistra (senso orario positivo)
[Kgm]: "))
    (initget 1)			       ; Non accetta valori nulli
    (setq md (getreal "\nMomento a destra (senso orario positivo)
[Kgm]: "))
    (initget 1)			       ; Non accetta valori nulli
    (setq q0 (getreal "\nCarico sulla campata (positivo verso i basso)
[Kg/m]: ")) ; Calcolo i valori necessari per poi rappresentare il
taglio ed il momento
    (setq mq (/ (* q0 lu lu 0.25) sm 0.1)
	  tq (* q0 lu 0.5)
	  ts (/ (- tq (/ (+ ms md) lu)) st)
	  td (/ (+ (/ (+ ms md) lu) tq) st)
	  lu (/ (* lu 1000) sl)
	  md (/ md sm 0.1)
	  ms (/ ms sm 0.1)
    )				       ; Calcolo i punti necessari per
				       ; rappresentare i momenti ...
    (setq ep (polar ip (dtr 0) lu)
	  p1 (polar ip (dtr 270) ms)
	  p2 (polar ep (dtr 90) md)
	  p3 (list (/ (+ (car p1) (car p2)) 2) (- (/ (+ (cadr p1)
							(cadr p2)
						     ) 2
						  ) mq
					       )
	     )
    )				       ; Disegno la campata con la
curva
				       ; del momento ...
    (command "_-color" 4)
    (command "_line" ip ep "")
    (command "_-color" 2)
    (command "_line" ip p1 "")
    (command "_line" ep p2 "")
    (command "_pline" p1 p3 p2 "")
    (command "_pedit" (entlast) "sp" "") ; Tratteggio l'area interna
al
				       ; diagramma
    (command "_-color" 1)
    (command "_hatch" "ansi31" stra "45" "c" ip ep "") ; Calcolo il
				       ; diagramma del taglio
    (setq edt (polar idt (dtr 0) lu)
	  pa (polar idt (dtr 270) ts)
	  pb (polar edt (dtr 90) td)
    )				       ; Disegno la campata con il
				       ; diagramma del taglio ...
    (command "_-color" 4)
    (command "_line" idt edt "")
    (command "_-color" 2)
    (command "_line" idt pa "")
    (command "_line" edt pb "")
    (command "_line" pa pb "")	       ; Tratteggio l'area interna al
				       ; diagramma
    (command "_-color" 1)
    (command "_hatch" "ansi31" stra "45" "c" pb pa "") ; Aggiorno i
				       ; parametri per il ciclo
successivo.
    (setq ip ep)
    (setq idt edt)
    (setq contatore (1+ contatore))
  )				       ; Fine del ciclo
  (setvar "cmdecho" oldcmd)
  (setvar "osmode" oldosmode)
  (setvar "splinetype" oldsptype)
  (setvar "splinesegs" oldspsegs)
  (princ)
)
;;; Fine della funzione
;;;
--------------------------------------------------------------------
;;; Funzione per convertire i gradi in radianti
;;;
--------------------------------------------------------------------
(defun dtr (numberOfDegrees)
  (* pi (/ numberOfDegrees 180.0))
)
;;; Fine della funzione
;;;
--------------------------------------------------------------------
(princ "\nMOMCAD by Aniello Annunziata")
(princ "\n\tMOMCAD.LSP caricato. per avviare la funzione digitare
MOMCAD")
(princ)
Saluti, Aniello
-- 
Aniello Annunziata
Content Director Manager
www.cadlandia.com
aniello.a...@cadlandia.com
Per rispondermi in privato, togli NOGARBAGE dall'indirizzo

Scarica il lisp parabola.lsp da questo link
http://space.tin.it/edicola/lwcon/autolisp/autolisp.htm
inserisci i coefficienti a, b, c dell'equazione, imposti il fattore di scala
e la parabola è disegnata.