Parabola en Visual Lisp

Parabola en Visual Lisp

alessiozavaldi
Observer Observer
186 Vistas
6 Respuestas
Mensaje 1 de 7

Parabola en Visual Lisp

alessiozavaldi
Observer
Observer

Esiste  un comando che disegna una parabola?

 

Existe un comando que diseñe una parabola?

0 Me gusta
Soluciones aceptadas (3)
187 Vistas
6 Respuestas
Respuestas (6)
Mensaje 2 de 7

joaquim.moral
Community Manager
Community Manager
Solución aceptada

Ciao Alessio @alessiozavaldi,

Grazie per aver partecipato alla comunità Autodesk.

 

A quale software ti riferisci per disegnare la parabola?

 

Grazie,


You found a post helpful? Then feel free to give likes to these posts!
Your question got successfully answered? Then just click on the 'Mark as solution'

¿Te ha parecido útil este post? ¡Deja un like!
¿Tu pregunta ha sido solucionada? Selecciona 'Marcar como solución' y ayuda a las demás a encontrar fácilmente la información.


Joaquim Moral
Senior Community Manager

Mensaje 3 de 7

alessiozavaldi
Observer
Observer

ad uno script in visul lisp che mi crea una parabola o catenaria con dati di ingresso.

Un script en Visual LISP que me cree una parábola o una catenaria con datos de entrada.

 

0 Me gusta
Mensaje 4 de 7

Edwin.Saez
Advisor
Advisor
Solución aceptada

@alessiozavaldi ,

 

Intenta con el siguiente lisp:

 

(defun c:PARABOLA (/ vert a f h k x x-min x-max y step pts)
  (setq vert (getpoint "\nEspecifica el vértice de la parábola: ")) ; (h k)
  (setq h (car vert))
  (setq k (cadr vert))

  (initget "Arriba Abajo")
  (setq dir (getkword "\nDirección de apertura [Arriba/Abajo]: "))

  (setq f (getreal "\nDistancia focal (f): "))
  (if (= dir "Abajo")
    (setq a (/ -1.0 (* 4.0 f)))
    (setq a (/ 1.0 (* 4.0 f)))
  )

  (setq x-min (- h 10.0))
  (setq x-max (+ h 10.0))
  (setq step 0.2)
  (setq x x-min)
  (setq pts '())

  (while (<= x x-max)
    (setq y (+ (* a (* (- x h) (- x h))) k))
    (setq pts (append pts (list (list x y 0.0))))
    (setq x (+ x step))
  )

  (entmakex
    (list
      '(0 . "LWPOLYLINE")
      (cons 100 "AcDbEntity")
      (cons 100 "AcDbPolyline")
      (cons 90 (length pts)) ; Número de vértices
      (cons 70 0) ; No cerrado
      (append
        (mapcar (function (lambda (pt) (list 10 (car pt) (cadr pt)))) pts)
      )
    )
  )
  (princ "\nParábola creada.")
  (princ)
)

Edwin Saez


LinkedIn / AutoCAD Certified Professional


EESignature


 


Si mi respuesta fue una solución para usted, por favor seleccione "Aceptar Solución", para que también sirva a otro usuarios.

Mensaje 5 de 7

calderg1000
Mentor
Mentor
Solución aceptada

Saludos @alessiozavaldi 

Hice unos pequeños cambios a la rutina presentado por el compañero @Edwin.Saez 

Espero que te pueda ser de ayuda...

(defun c:PARABOLA (/ vert a f h k x x-min x-max y step pts)
  (setq vert (getpoint "\nEspecifica el vértice de la parábola: ")
        h    (car vert)
        k    (cadr vert)
        f    (getreal "\nDistancia focal (f): ")
  )
  (initget "Arriba aBajo")
  (setq dir (getkword "\nDirección de apertura:Arriba/aBajo [A/B]: "))
  (if (= dir "aBajo")
    (setq a (/ -1.0 (* 4.0 f)))
    (setq a (/ 1.0 (* 4.0 f)))
  )
  (setq x-min (- h 10.0)
        x-max (+ h 10.0)
        step  0.2
        x     x-min
        pts   '()
  )
  (while (<= x x-max)
    (setq y (+ (* a (* (- x h) (- x h))) k))
    (setq pts (append pts (list (list x y 0.0))))
    (setq x (+ x step))
  )
  (entmakex (append
              (list
                '(0 . "LWPOLYLINE")
                (cons 100 "AcDbEntity")
                (cons 100 "AcDbPolyline")
                (cons 90 (length pts))           
                (cons 70 0)                     
              )
              (mapcar '(lambda (pt) (cons 10 pt)) pts)
            )
  )
  (princ "\n1 Parábola creada.")
  (princ)
)

 


Carlos Calderon G
EESignature
>Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

Mensaje 6 de 7

Valentin_CAD
Mentor
Mentor

@alessiozavaldi ,

 

Estos enlaces también pueden ayudar:

 

 

 



Select the "Mark as Solution" if my post solves your issue or answers your question.

Seleccione "Marcar como solución" si mi publicación resuelve o responde a su pregunta.


Emilio Valentin

0 Me gusta
Mensaje 7 de 7

arturopolanco
Mentor
Mentor

Hola @alessiozavaldi 

Es util tambien para nosotros tener una idea de para que la quieres usar.

Por ejemplo puede ser para redes de transmision electrica.

 

En estos casos hemos tenido algunos hilos aqui en el foro que explican este proceso:

https://forums.autodesk.com/t5/autocad-todos-los-productos-foro/dibujo-de-parabola/td-p/6321866

 

Por otro lado, lo mas comun es usar alguna aplicacion para estos fines, como son 

Pero si eliges usar la opcion de crear un LISP tambien es util conocer las fórmulas matemáticas para calcular las coordenadas de puntos que definen la curva de la catenaria.

Mas detalles aqui: 

http://www.sc.ehu.es/sbweb/fisica/solido/din_rotacion/catenaria/catenaria.htm

 

Espero que esta informacion sea de utilidad.


Arturo Polanco
AEC Solutions Specialist - Civil Infrastructure

Youtube | Twitter

0 Me gusta