如何输入球面和圆柱体
我想编写一个例程,将笛卡尔坐标的文本文件转换为球坐标或柱坐标。例如,命令函数使用球坐标和柱坐标在autolisp中绘制直线的方法和格式是什么。我知道如何手动输入这些坐标,但不知道如何使用AutoLISP自动输入。
任何帮助都将不胜感激。
谢谢
安得烈 使用函数:
(sin x)和(cos x) 球坐标的一般语法为
长
或相对坐标
@长度
柱坐标的一般语法为
相对圆柱坐标的长度或
@长度
您可以在Lisp中使用它-参见示例
(setq l1 1000)
(setq w1 90)
(setq w2-90)
(setq pt(strcat“@”(rtos l1)”
@1000.0000
希望这有帮助
当做
约亨
http://www.ant-ares.de 你好,scj,
你给了我需要的方法。有时球形和圆柱形使我更容易创建对象。
非常感谢。
安得烈 我建议研究AutoLISP极函数。 李,你好,
我正在使用球形和圆柱形例程将三维对象输入AutoCAD。我只想将例程更改为AutoLISP中球形和圆柱形输入的语法。我不明白为什么研究极函数会有帮助。scj理解我想表达的意思。
很多人都是这个网站的专家,你也是其中之一,然而scj给了我我想要的。翻译某人的电子邮件可能会出错。
欢迎您的帮助。
谢谢
安得烈 我同意李和马可的观点,通过研究极性函数可以进一步回答问题。
基本角度函数
o/h=正弦(ang)
a/h=cos(ang)
o/a=tan(ang)
其他人有回答的习惯
(defun dtr (a)
(* pi (/ a 180.0))
)
(defun tan (a)
(setq a (dtr a))
(/ (sin a)(cos a))
)
(setq orgpt (list 0 0 0)) ; set your base pt
(setq pt (polar orgpt (dtr w1) L1))
(setq z (* l1 (tan (dtr w2))))
(setq pt (list (car pt)(cadr pt)(+ z (caddr pt)))
有点好玩
(defun dtr (a)
(* pi (/ a 180.0))
)
(defun tan (a)
(setq a (dtr a))
(/ (sin a)(cos a))
)
(setq cenpt (list 0 0 0))
(setq ang1 0.0)
(setq ang2 0.0)
(setq rad 1000.0)
(repeat 59
(repeat 59
(setq pt (polar cenpt ang1 rad))
(setq pt (list (car pt)(cadr pt)(+ (* rad (tan (dtr ang2)))) ))
(command "point" pt)
(setq ang1 (+ ang1 6.0))
)
(setq ang2 (+ ang2 6.0))
)
(command "-vpoint" "1,1,1")
现有建议仅限于基本命令行输入,但是,如果要使用任何其他方法(例如ActiveX或entmake)生成对象,则需要将点表示为笛卡尔点列表。因此,AutoLISP极轴函数将允许您从基点以给定角度和半径计算点。
仅供参考,极性函数是从(sin-ang)和(cos-ang)函数导出的。。。所以实际上不需要极坐标系。。。
页:
[1]
2