乐筑天下

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

[编程交流] 如何ucs wcs?

[复制链接]

18

主题

99

帖子

91

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-5 22:50:00 | 显示全部楼层 |阅读模式
你好
有人能告诉我如何在一些当前ucs中获取点的坐标吗
转换到wcs后,下降到完全相同的位置,但坐标不同(当然是在wcs中)?
我试过(trans-pnt 1 0),但它们与ucs不在同一位置。。。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 22:57:27 | 显示全部楼层
通常(trans pnt 1 0)有效。
 
您如何确定“pnt值”?一些实体点仅存储在WCS中,因此不需要(trans)。
即所有三维面点、多段线网格点、三维多段线点、一些尺寸点
 
-大卫
回复

使用道具 举报

18

主题

99

帖子

91

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-5 23:00:29 | 显示全部楼层
我通过选择它们来获得分数。。。
这是完整的Lisp程序
 
  1. ;;; Calculating heights of points on slope by selecting 3 points
  2. ;;; first two points are for determining longitudinal slope and third is for
  3. ;;; latitudinal slope
  4. (defun c:PHOS  (/ 1_pnt 2_pnt 3_pnt h_ppx h_ppy 2_pnt_t 3_pnt_t 1_pnt_u 2_pnt_u 3_pnt_u)
  5. (setvar "cmdecho" 0)
  6. (setq osm(getvar 'OSMODE))
  7. (setvar 'OSMODE
  8. (princ"\nSelect 3 points with known height for determining slope...\n
  9. ...starting point,ending point and point on the left side relative to first two")
  10. (setq 1_pnt(getpoint)
  11. 2_pnt(getpoint)
  12. 3_pnt(getpoint)
  13. h nil
  14. h_ppx(/(-(caddr 2_pnt)(caddr 1_pnt))
  15.         (sqrt(+(expt(-(car 2_pnt)(car 1_pnt))2)(expt(-(cadr 2_pnt)(cadr 1_pnt))2))))
  16. 1_pnt_u (reverse(cons 0.0 (cdr(reverse 1_pnt))))
  17. 2_pnt_u (reverse(cons 0.0 (cdr(reverse 2_pnt))))
  18. 3_pnt_u (reverse(cons 0.0 (cdr(reverse 3_pnt))))
  19. )
  20. (setvar 'OSMODE 0)
  21. (command "ucs" "3p" 1_pnt_u 2_pnt_u "")
  22. (setq 1_pnt_t(trans 1_pnt 0 1)
  23. 2_pnt_t(trans 2_pnt 0 1)
  24. 3_pnt_t(trans 3_pnt 0 1)
  25. h_ppy(/(-(caddr 3_pnt_t)(+(* h_ppx (car 3_pnt_t))(caddr 1_pnt)))(cadr 3_pnt_t))
  26. )
  27. (setvar 'OSMODE
  28. (while(setq pnt(getpoint"\nPick point for calculating height"))
  29.    (setq h(+ (caddr 1_pnt)(*(car pnt)h_ppx)(*(cadr pnt)h_ppy)))
  30.    (command "text" "j" "bl" (trans pnt 1 0) "" "" (rtos h 2 3))
  31.    ;(princ "\n")
  32.    ;(princ (rtos h 2 3))
  33.    )
  34. (command "ucs" "")
  35. (setvar 'OSMODE osm)
  36. )
  37. (princ
  38. "\nCalculating point heights on slope...
  39. Copyright © by TOMISLAV VARGEK...Osijek,Croatia...\n    ...Type PHOS to start..."
  40. )
  41. (defun *error*        (msg)
  42. (command "ucs" "")
  43. (setvar 'OSMODE osm)
  44. (princ)
  45. )

 
 
请注意带有命令“text”的行。。。这就是我需要将文本放置到wcs的地方
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 23:09:19 | 显示全部楼层
(getpoint)函数从当前UCS获取点数据。。。也许这句话可以帮助你确定你的错误在哪里。。。
回复

使用道具 举报

18

主题

99

帖子

91

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-5 23:14:09 | 显示全部楼层
是的,我知道,一切都很好,只是没有放置文本。。你认为我应该使用entsel而不是getpoint吗?
回复

使用道具 举报

7o7

0

主题

93

帖子

93

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 23:18:29 | 显示全部楼层
尝试更改:
(命令“text”“j”“bl”pnt“”(rtos h 2 3))
回复

使用道具 举报

18

主题

99

帖子

91

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-5 23:20:08 | 显示全部楼层
是的,我知道我可以这样做,但每次计算坡度时,我都会得到不同的旋转文本,我试图避免这种情况。。。这就是为什么我尝试通过trans。。。也许有一种方法可以让文本总是朝着同一个方向旋转,但我不知道怎么做?
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 23:26:04 | 显示全部楼层
尝试:
 
  1. (while (setq pnt (getpoint"\nPick point for calculating height"))
  2.    (setq h(+ (caddr 1_pnt)(*(car pnt)h_ppx)(*(cadr pnt)h_ppy)))
  3.    (setq pnt (trans pnt 1 0))
  4.    (command "ucs" "w")
  5.    (command "text" "j" "bl" pnt "" "" (rtos h 2 3))
  6.    (command "ucs" "p")
  7.    )
回复

使用道具 举报

7o7

0

主题

93

帖子

93

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 23:31:57 | 显示全部楼层
Trans函数不影响文本的旋转。因此,如果你想(entlast)文本有一个右旋转,你必须entmod它的旋转。
回复

使用道具 举报

18

主题

99

帖子

91

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-5 23:36:14 | 显示全部楼层
Thanx Marko(majstore)解决了这个问题。。。我试着做一些类似的事情,但能不能找到正确的组合,转向什么时候
thanx 7o7和David作为输入。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 03:16 , Processed in 0.733755 second(s), 72 queries .

© 2020-2025 乐筑天下

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