乐筑天下

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

[编程交流] 获取viewp范围的坐标

[复制链接]

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 07:02:17 | 显示全部楼层 |阅读模式
我有一个布局,我们使用的土地地图为我们的测绘局。我需要指出视口范围的坐标,但坐标需要来自模型空间。
我在考虑编写一个lisp,在视口上绘制一个矩形,用矩形创建一个选择集,将其移动到“模型”选项卡,然后查询角点的坐标并将其输入到字段中。
然后,如果视图被更改,例程将删除带有矩形的层,并再次启动该过程。
 
这条路过顶了吗?还有别的方法吗?
 
谢谢
080220ogwrwpc1e1jjeoqk.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:14:05 | 显示全部楼层
尝试以下快速程序:
 
  1. ([color=BLUE]defun[/color] c:vprec ( [color=BLUE]/[/color] _text l j k p )
  2.    ([color=BLUE]defun[/color] _text ( s p r j )
  3.        ([color=BLUE]entmake[/color]
  4.            ([color=BLUE]list[/color]
  5.               '(0 . [color=MAROON]"TEXT"[/color])
  6.                ([color=BLUE]cons[/color] 410 ([color=BLUE]getvar[/color] 'ctab))
  7.                ([color=BLUE]cons[/color] 040 ([color=BLUE]getvar[/color] 'textsize))
  8.                ([color=BLUE]cons[/color] 007 ([color=BLUE]getvar[/color] 'textstyle))
  9.                ([color=BLUE]cons[/color] 010 p)
  10.                ([color=BLUE]cons[/color] 011 p)
  11.                ([color=BLUE]cons[/color] 001 s)
  12.                ([color=BLUE]cons[/color] 050 r)
  13.                ([color=BLUE]cons[/color] 072 j)
  14.               '(73 . 2)
  15.            )
  16.        )
  17.    )
  18.    ([color=BLUE]cond[/color]
  19.        (   ([color=BLUE]=[/color] 1 ([color=BLUE]getvar[/color] 'tilemode))
  20.            ([color=BLUE]princ[/color] [color=MAROON]"\nCommand only available in Paperspace."[/color])
  21.        )
  22.        (   ([color=BLUE]=[/color] 1 ([color=BLUE]getvar[/color] 'cvport))
  23.            ([color=BLUE]princ[/color] [color=MAROON]"\nPlease activate a viewport."[/color])
  24.        )
  25.        (   ([color=BLUE]setq[/color] l  ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] ([color=BLUE]getvar[/color] 'cvport) ([color=BLUE]vports[/color])))
  26.                  j '(2 0 2 0)
  27.                  k '(2 0 0 2)
  28.            )
  29.            ([color=BLUE]foreach[/color] x ([color=BLUE]list[/color] ([color=BLUE]car[/color] l) ([color=BLUE]cadr[/color] l) ([color=BLUE]list[/color] ([color=BLUE]caadr[/color] l) ([color=BLUE]cadar[/color] l)) ([color=BLUE]list[/color] ([color=BLUE]caar[/color] l) ([color=BLUE]cadadr[/color] l)))
  30.                ([color=BLUE]setq[/color] p ([color=BLUE]mapcar[/color] '[color=BLUE]rtos[/color] ([color=BLUE]trans[/color] ([color=BLUE]trans[/color] x 3 2) 2 0)))
  31.                (_text ([color=BLUE]strcat[/color] [color=MAROON]"E:"[/color] ([color=BLUE]car[/color]  p)) x ([color=BLUE]/[/color] [color=BLUE]pi[/color] 2.0) ([color=BLUE]car[/color] j))
  32.                (_text ([color=BLUE]strcat[/color] [color=MAROON]"N:"[/color] ([color=BLUE]cadr[/color] p)) x    0.0     ([color=BLUE]car[/color] k))
  33.                ([color=BLUE]setq[/color] j ([color=BLUE]cdr[/color] j)
  34.                      k ([color=BLUE]cdr[/color] k)
  35.                )
  36.            )
  37.        )
  38.    )
  39.    ([color=BLUE]princ[/color])
  40. )
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 07:21:18 | 显示全部楼层
谢谢李·麦克。这太棒了。但有两个问题。
首先,如果我多次运行它,它会覆盖第一个文本。
第二个是文本高度。我曾尝试为此创建一个文本样式,并将其中的高度设置为5,但即使新样式设置为当前样式,文本仍以2.5的速度输入。我错过了什么?
 
再次感谢。。。
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 07:35:22 | 显示全部楼层
李·麦克,
刚刚找到文字高度问题的解决方案。
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:44:45 | 显示全部楼层
 
当然,它只是创建文本。
 
 
文字高度来自TEXTSIZE系统变量。
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 07:46:27 | 显示全部楼层
谢谢李,我得到了文本高度和覆盖问题排序。还有一件事我忘了问,那就是如何将数字限制为不带小数点的整数。。
http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/Rounding-Text-to-Less-Decimal-Places/td-p/2510232
根据这个链接,您的程序中的设置似乎设置为0,但它仍然提供4位小数。。。。我看错了吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:55:02 | 显示全部楼层
 
当前程序使用LUNITS和LUPREC的设置,因为调用rtos时没有单位或精度参数。
要包含这些参数,请更改:
 
  1. ([color=BLUE]setq[/color] p ([color=BLUE]mapcar[/color] '[color=BLUE]rtos[/color] ([color=BLUE]trans[/color] ([color=BLUE]trans[/color] x 3 2) 2 0)))
至:
我强调了单位和精度参数。
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 08:09:54 | 显示全部楼层
谢谢LeeMac,
这就是我最后得到的。。
 
  1. 3

 
我知道我添加的内容很粗糙。。。。但它们似乎确实有效。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 10:56 , Processed in 0.713193 second(s), 71 queries .

© 2020-2025 乐筑天下

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