andregustavo 发表于 2022-7-6 09:26:33

双曲螺线

大家好。我一直在寻找一个用于绘制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)
)

fuccaro 发表于 2022-7-6 09:36:51

您好,安德烈古斯塔沃,欢迎来到论坛!
 
这是您编写的执行的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)
)

leninne 发表于 2022-7-6 09:41:50

你好,Fuccaro!
 
我看到了你关于对数螺旋的代码,我知道这是一个lisp代码,但因为我在这方面很新,我不太知道如何创建lisp文件来加载它(我见过其他lisp文件,它们看起来不同,这就是为什么我如此困惑)。
 
我需要代码来创建一个将放置在天线中的螺旋。
 
真的真的需要你的帮助!

Lee Mac 发表于 2022-7-6 09:48:35

一些螺旋。。。
 
对数螺线
 


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

troggarf 发表于 2022-7-6 09:54:25

很酷的东西李!!
 
这是一个离题的快速问题,但在本文中有说明:
是什么导致代码符号(如括号)丢失其符号并显示其字母数字代码?
我以前遇到过这个,不想破译它。
关于如何解决和避免这个问题,有什么建议吗?

Lee Mac 发表于 2022-7-6 09:59:55

谢谢Greg
 
我相信html字符替换发生在旧线程被归档时,或者可能发生在服务器被更改时——这对David来说是个问题。快速查找和替换将解决此问题

troggarf 发表于 2022-7-6 10:03:13

谢谢你澄清,李。
有道理。
我将寻找一个参考网上显示什么html字符等于什么。
~格雷格

Lee Mac 发表于 2022-7-6 10:11:46

 
html字符表达式中的数字只是ASCII码,因此:
 
7
 
有很多ASCII引用,我主要使用这个。
 
有关HTML特殊字符和ASCII参考,请参阅W3 Web标准网站此处和此处。
 

fuccaro 发表于 2022-7-6 10:18:01

谢谢李,你能早点来,为我的老套路贴出解药。祝您有个美好的一天!

Lee Mac 发表于 2022-7-6 10:26:33

........
页: [1] 2
查看完整版本: 双曲螺线