En no ¿Es posible escribir un complemento LSP para CAD que calcule automáticamente la pendiente y la etiquete en función de la elevación etiquetada y la distancia entre las elevaciones o la línea central de la carretera?
(princ "\n¡Bienvenido al programa de etiquetado de pendientes! gysjy 2009.6.27.")
(comando "undo" "g" )
(setq os (getvar "osmode"))
(setvar "osmode" 1)
( initget "G S")
(setq k p>
aw 0.2
;;;;;;ancho de flecha
al3 1.0
;;;;;distancia desde la línea de flecha hasta la línea a marcar
al4 3.5
;;;;;La distancia desde el texto hasta el línea recta
;;Los parámetros anteriores se pueden modificar, los comentarios están debajo y los parámetros están arriba
)
(mm k al1 al2 aw al3 al4)
)
(defun mm (k al1 al2 aw al3 al4)
(setq p1 (getpoint "\n primer punto:")
)
(if ( = nil p1)
( salir)
)
(setq
p2 (getpoint "\n segundo punto:" p1)
)
)
(if (= nil p2)
(salir )
) p>
)(setq
a (ángulo p1 p2)
d (/ (distancia p1 p2) 2)
pmid (polar p1 a d )
at (si (y (gt; a 1.571) (lt; a 4.713))
(- a pi)
a
)
aa (at (* 0,5 PI))
ap1 (polar (pmid polar a (- al1)) aa al3)
; ;; Punto inicial de la flecha
ap2 (polar (pmid polar a al1) aa al3)
;; >
ap3 ( p>
pmid (pmid polar aa al4)
;;; a (* a 57.3)
dx (- (coche p1) (coche p2))
dy (- (cadr p1) (cadr p2))
dx ((cadr p1) (cadr p2))
)
(si ( = k "G")
(setq
i (si (= dx 0)
10000
(*)100 ( abs (/ dy dx)))
)
stri (rtos
i 2 1)
str (if (= dx 0)
"Vertical"
(strcat "i=" stri "")
)
)
(setq i (if (= dx 0)
(abs (/ dy dx))
)
)
stri (rtos i 2 2)