乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 28|回复: 10

[编程交流] 如何输入球面和圆柱体

[复制链接]

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 17:11:12 | 显示全部楼层 |阅读模式
我想编写一个例程,将笛卡尔坐标的文本文件转换为球坐标或柱坐标。例如,命令函数使用球坐标和柱坐标在autolisp中绘制直线的方法和格式是什么。
 
我知道如何手动输入这些坐标,但不知道如何使用AutoLISP自动输入。
 
任何帮助都将不胜感激。
 
谢谢
 
安得烈
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 17:21:23 | 显示全部楼层
使用函数:
(sin x)和(cos x)
回复

使用道具 举报

scj

0

主题

29

帖子

31

银币

限制会员

铜币
-2
发表于 2022-7-5 17:26:37 | 显示全部楼层
球坐标的一般语法为

或相对坐标
@长度
 
柱坐标的一般语法为
相对圆柱坐标的长度或
@长度
 
您可以在Lisp中使用它-参见示例
 
(setq l1 1000)
(setq w1 90)
(setq w2-90)
(setq pt(strcat“@”(rtos l1)”
 
@1000.0000
 
希望这有帮助
当做
约亨
http://www.ant-ares.de
回复

使用道具 举报

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 17:30:20 | 显示全部楼层
你好,scj,
 
你给了我需要的方法。有时球形和圆柱形使我更容易创建对象。
 
非常感谢。
 
安得烈
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:39:19 | 显示全部楼层
我建议研究AutoLISP极函数。
回复

使用道具 举报

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 17:43:18 | 显示全部楼层
李,你好,
 
我正在使用球形和圆柱形例程将三维对象输入AutoCAD。我只想将例程更改为AutoLISP中球形和圆柱形输入的语法。我不明白为什么研究极函数会有帮助。scj理解我想表达的意思。
 
很多人都是这个网站的专家,你也是其中之一,然而scj给了我我想要的。翻译某人的电子邮件可能会出错。
 
欢迎您的帮助。
 
谢谢
 
安得烈
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:49:16 | 显示全部楼层
我同意李和马可的观点,通过研究极性函数可以进一步回答问题。
 
基本角度函数
o/h=正弦(ang)
a/h=cos(ang)
o/a=tan(ang)
其他人有回答的习惯
 
  1. (defun dtr (a)
  2. (* pi (/ a 180.0))
  3. )
  4. (defun tan (a)
  5. (setq a (dtr a))
  6. (/ (sin a)(cos a))
  7. )
  8. (setq orgpt (list 0 0 0)) ; set your base pt
  9. (setq pt (polar orgpt (dtr w1) L1))
  10. (setq z (* l1 (tan (dtr w2))))
  11. (setq pt (list (car pt)(cadr pt)(+ z (caddr pt)))
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:57:15 | 显示全部楼层
有点好玩
 
  1. (defun dtr (a)
  2. (* pi (/ a 180.0))
  3. )
  4. (defun tan (a)
  5. (setq a (dtr a))
  6. (/ (sin a)(cos a))
  7. )
  8. (setq cenpt (list 0 0 0))
  9. (setq ang1 0.0)
  10. (setq ang2 0.0)
  11. (setq rad 1000.0)
  12. (repeat 59
  13. (repeat 59
  14. (setq pt (polar cenpt ang1 rad))
  15. (setq pt (list (car pt)(cadr pt)(+ (* rad (tan (dtr ang2)))) ))
  16. (command "point" pt)
  17. (setq ang1 (+ ang1 6.0))
  18. )
  19. (setq ang2 (+ ang2 6.0))
  20. )
  21. (command "-vpoint" "1,1,1")
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:02:20 | 显示全部楼层
 
现有建议仅限于基本命令行输入,但是,如果要使用任何其他方法(例如ActiveX或entmake)生成对象,则需要将点表示为笛卡尔点列表。因此,AutoLISP极轴函数将允许您从基点以给定角度和半径计算点。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 18:11:11 | 显示全部楼层
 
仅供参考,极性函数是从(sin-ang)和(cos-ang)函数导出的。。。所以实际上不需要极坐标系。。。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 09:43 , Processed in 0.524199 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表