双曲螺线
大家好。我一直在寻找一个用于绘制hiperbolic螺旋的通用lisp例程,但找不到它。然而,Fuccaro有一个对数螺旋的脚本。由于我没有编程能力,可以重写脚本以使用以下等式吗r=a/alpha
?
提前感谢
这是Fuccaro的对数螺线脚本(r=a*exp(b*alpha))
;|draw a logarithmic spiral
Miklos Fuccaro mfuccaro@hotmail.com
---------------------August 2006-------|;
(defun c:logsp( / a b a1 ori osmode cmdecho)
;a,b=curve paramethers
;a1 =angular increment
;ori=origin; set to the origin of the UCS
(princ "logarithmic spiral R=a*exp(b*alpha)")
(setq a (getreal "\na=")
b (getreal "\tb="))
(setq a1 0.1 alpha (- a1) ori '(0 0 0))
(if (and a b)
(progn
(setq osmode (getvar "osmode")
cmdecho (getvar "cmdecho"))
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(command "pline")
(repeat 1000 ;nr of points
(command (polar ori (setq alpha (+ alpha a1)) (* a (exp (* b alpha)))))
)
(command "")
(setvar "osmode" osmode)
(setvar "cmdecho" cmdecho)
)
(princ "Invalid input!")
)
(princ)
) 您好,安德烈古斯塔沃,欢迎来到论坛!
这是您编写的执行的Lisp(r=a/alpha):
(defun c:hipsp( / a a1 alpha osmode cmdecho)
(setq a (getreal "\na= ")
a1 0.1
alpha 0
osmode (getvar "osmode")
cmdecho (getvar "cmdecho"))
(mapcar 'setvar '("osmode" "cmdecho") '(0 0))
(command "pline")
(repeat 500
(command (polar '(0 0 0) (setq alpha (+ alpha a1)) (/ a alpha))))
(command "")
(mapcar 'setvar '("osmode" "cmdecho") (list osmode cmdecho))
(princ)
) 你好,Fuccaro!
我看到了你关于对数螺旋的代码,我知道这是一个lisp代码,但因为我在这方面很新,我不太知道如何创建lisp文件来加载它(我见过其他lisp文件,它们看起来不同,这就是为什么我如此困惑)。
我需要代码来创建一个将放置在天线中的螺旋。
真的真的需要你的帮助! 一些螺旋。。。
对数螺线
(defun c:LogSpiral ( / a0 i v p a b l )
(setq a0 0.0;; Start Angle
i0.1;; Increment
v500;; Vertices
)
(princ "\nLogarithmic Spiral: r=ae^(b0)")
(if
(and
(setq a (getreal "\nParameter a="))
(setq b (getreal "\nParameter b="))
(setq p (getpoint "\nBase Point: "))
)
(entmakex
(append
(list
(cons 0 "LWPOLYLINE")
(cons 100 "AcDbEntity")
(cons 100 "AcDbPolyline")
(cons 90 v)
)
(repeat v
(setq l (cons (cons 10 (polar p (setq a0 (+ a0 i)) (* a (exp (* b a0))))) l))
)
)
)
)
(princ)
)双曲螺线
(defun c:HypSpiral ( / a0 i v a p l )
(setq a0 0.0;; Start Angle
i0.1;; Increment
v500;; Vertices
)
(princ "\nHyperbolic Spiral: r=a/x")
(if
(and
(setq a (getreal "\nParameter a="))
(setq p (getpoint "\nBase Point: "))
)
(entmakex
(append
(list
(cons 0 "LWPOLYLINE")
(cons 100 "AcDbEntity")
(cons 100 "AcDbPolyline")
(cons 90 v)
)
(repeat v
(setq l (cons (cons 10 (polar p (setq a0 (+ a0 i)) (/ a a0))) l))
)
)
)
)
(princ)
)
Archimian螺旋
费马螺线
(defun c:FermatSpiral ( / a0 i v p l )
(setq a0 0.0;; Start Angle
i0.1;; Increment
v250;; Vertices
)
(princ "\nFermat Spiral: r=+-0^0.5")
(if (setq p (getpoint "\nBase Point: "))
(entmakex
(append
(list
(cons 0 "LWPOLYLINE")
(cons 100 "AcDbEntity")
(cons 100 "AcDbPolyline")
(cons 90 (* 2 v))
)
(repeat v
(setq l
(append
(list (cons 10 (polar p (setq a0 (+ a0 i)) (- (sqrt a0)))))
l
(list (cons 10 (polar p (setq a0 (+ a0 i)) (sqrt a0))))
)
)
)
)
)
)
(princ)
)
Lituus螺旋
(defun c:LituusSpiral ( / a0 i v p l )
(setq a0 0.0;; Start Angle
i0.1;; Increment
v500;; Vertices
)
(princ "\nLituus Spiral: r=0^-0.5")
(if (setq p (getpoint "\nBase Point: "))
(entmakex
(append
(list
(cons 0 "LWPOLYLINE")
(cons 100 "AcDbEntity")
(cons 100 "AcDbPolyline")
(cons 90 v)
)
(repeat v
(setq l (cons (cons 10 (polar p (setq a0 (+ a0 i)) (/ 1. (sqrt a0)))) l))
)
)
)
)
(princ)
)
很酷的东西李!!
这是一个离题的快速问题,但在本文中有说明:
是什么导致代码符号(如括号)丢失其符号并显示其字母数字代码?
我以前遇到过这个,不想破译它。
关于如何解决和避免这个问题,有什么建议吗?
谢谢Greg
我相信html字符替换发生在旧线程被归档时,或者可能发生在服务器被更改时——这对David来说是个问题。快速查找和替换将解决此问题 谢谢你澄清,李。
有道理。
我将寻找一个参考网上显示什么html字符等于什么。
~格雷格
html字符表达式中的数字只是ASCII码,因此:
7
有很多ASCII引用,我主要使用这个。
有关HTML特殊字符和ASCII参考,请参阅W3 Web标准网站此处和此处。
李 谢谢李,你能早点来,为我的老套路贴出解药。祝您有个美好的一天! ........
页:
[1]
2