Red de conocimiento informático - Material del sitio web - 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?

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?

(defun c:nn (/ a a1 d dx dy i os p1 p2 pmid str stri)

(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 )

)

)(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)