乐筑天下

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

[编程交流] (trans)解释

[复制链接]

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 22:34:35 | 显示全部楼层 |阅读模式
你好
 
我承认,(trans)是我一直忽视学习的可怕功能之一,它似乎太复杂了,现在是时候处理它了,所以让我把迄今为止我所了解的全部布局好,
 
trans是将坐标的实际位置转换为Autocad中可用的任何坐标系。
 
WCS
世界坐标系实际上是支持所有其他系统的世界固定坐标系。
 
UCS
在WCS之上,用户可以定义一个新的坐标层,通过用户定义的原点位置和旋转,与WCS的关系由Autocad维护。
 
接触网
对象系统坐标
 
(从tp[disp]传输pt)
 
对象不会因从一个坐标系切换到另一个坐标系而更改其位置,autocad会在系统之间自动转换。
 
对于Autolisp编程,这种自动转换不会发生,编码为在WCS中绘制的对象在具有不同原点的UCS上绘制时不会相同。
 
(trans)用于进行此翻译。
 
思想的终结
 
我还没有得到的东西
 
1.关于OCS,entget重新记录的坐标假设显示了对象的相对坐标,但它们是相对于WCS的,我缺少什么?
 
关于使用向量而不是坐标,你能举个例子吗?
 
3.在Mac Lee的一段代码中,我看到:
 
  1. enx (entget (ssname sel (1- inc)))
  2. spf (polar '(0.0 0.0) (+ (cdr (assoc 50 enx)) (/ pi 2.0)) (* (cdr (assoc 40 enx)) spf))
  3. [color="red"][b]vec (trans spf (trans '(0.0 0.0 1.0) 1 0 t) 0)[/b][/color]

 
有人能解释一下吗(包括作者:)
 
谢谢
谢伊
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 22:39:41 | 显示全部楼层
我解释得不好,是关于XY平面在z轴上的旋转,
如果我错了,请告知thanx
在数学方面:
  1. (defun shay:Trans? (p bp v / ); p= pt bp=base v=radians
  2. (list
  3. (+(*(- (car p) (car bp)) (cos v))
  4. (*(- (cadr p) (cadr bp)) (sin v)))
  5. (-(*(- (cadr p) (cadr bp)) (cos v))
  6. (*(- (car p) (car bp)) (sin v )))
  7. (caddr p)
  8. )
  9. )

 
示例如何转换为新坐标?
(104,103,5.0) --> (5.0 0.0 5.0)
 
这是一个理论,因此可以在WCS中测试
 
(setq基'(100.100.0);
pt’(104.103.5.0))
 
_$(shay:Trans?pt base(angle base pt));
(5.0 4.44089e-016 5.0)
_$
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 22:41:43 | 显示全部楼层
 
请参见我的解释:
 
http://www.theswamp.org/index.php?topic=47544.msg525391#msg525391
 
关于反式翻译的解释,有几个可以找到——这里有几个:
 
http://www.theswamp.org/index.php?topic=13526.0
http://www.theswamp.org/index.php?topic=31802
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 22:47:00 | 显示全部楼层
 
谢谢李
 
由于我的(跨)集我工作非常努力,我的大脑正在燃烧试图抓住这个主题,
我了解了你发布的链接,你的文本对齐代码,但仍然不能说我赢得了这个主题
 
根据(trans)文档示例,
我试图从文本的插入点画一条线,
我旋转UCS,粘贴一段文本,然后执行以下操作:
 
  1. (defun txt()
  2. (setq ent  (entget(car(entsel))))
  3. (setq ip (cdr(assoc 10 ent)))
  4. (setq ip (trans ip ent 1))
  5. (command "_line" ip)
  6. )

 
我得到了这个错误:
 
  1. ; error: bad argument type: coordinate system specification:
  2. ((-1 . <Entity name: 7ffffbaec70>)
  3. (0 . "TEXT")
  4. (330 . <Entity name: 7ffffb189f0>)
  5. (5 . "1BF")
  6. (100 . "AcDbEntity")
  7. (67 . 0)
  8. (410 . "Model")
  9. (8 . "0")
  10. (100 . "AcDbText")
  11. (10 14.9945 10.9974 0.0)
  12. (40 . 0.2)
  13. (1 . "(command "_point" spf)")
  14. (50 . 0.0)
  15. (41 . 1.0)
  16. (51 . 0.0)
  17. (7 . "Standard")
  18. (71 . 0)
  19. (72 . 0)
  20. (11 0.0 0.0 0.0)
  21. (210 0.0 0.0 1.0)
  22. (100 . "AcDbText")
  23. (73 . 0))

 
怎么了?
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 22:49:56 | 显示全部楼层
尝试使用en not ent
  1. (setq [color="red"]en[/color] (car (entsel)))
  2. ..
  3. ..
  4. (trans ip [color="red"]en[/color] 1)
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 22:51:21 | 显示全部楼层
 
你认为耳鼻喉科不是空的和受保护的吗?
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 22:55:50 | 显示全部楼层
不,您的ent只是一个entget列表,而不是一个ename(car(entsel))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 22:59:17 | 显示全部楼层
hanhphuc正确-
 
trans函数将接受对应于坐标系枚举的整数(0=WCS,1=UCS等)、使用任意轴算法构建坐标系的法向量或实体名称(函数将使用实体的OCS)。
 
在代码中,您提供的是DXF组码的关联列表,该列表不是有效参数。
 
我还建议考虑对对象捕捉的可能干扰:
  1. (defun txt ( / ent )
  2.    (if (setq ent (car (entsel)))
  3.        (command "_.line" "_non" (trans (cdr (assoc 10 (entget ent))) ent 1) "\" "")
  4.    )
  5.    (princ)
  6. )
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 23:02:55 | 显示全部楼层
你好
 
  1. (setvar "PDMODE" 34)
  2. (setq p 0.0)
  3. (setq n 0.0)
  4. (defun test1 (/ p n)
  5. (setq p (getpoint))
  6. (repeat 5
  7.    (setq p (append (list (+ (car p) 10.0)) (list (cadr p))))
  8.    (setq p (trans p 0 1))
  9.    (command "_.point" "_non" p
  10.       
  11.    )
  12. )
  13. )

 
如果我修改UCS,这段代码正在形成角度点顺序。。。。为什么?
和没有trans似乎是预期的结果?
困惑的
233447gk47qkzwzvm249ww.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:05:46 | 显示全部楼层
getpoint返回与UCS相关的点。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-18 12:13 , Processed in 1.278068 second(s), 75 queries .

© 2020-2025 乐筑天下

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