明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3812|回复: 15

[提问] 用lisp程序查询视口比例。比如比例是1:15,查询后是显示1:15,不要显示成0.0667

[复制链接]
发表于 2019-4-15 16:44:26 | 显示全部楼层 |阅读模式
20明经币
用lisp程序查询视口比例。比如比例是1:15,查询后是显示1:15,不要显示成0.0667
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

(defun c:tt5 (/ ent) (setq ent (entget (car (entsel "\n选择视口:")))) (princ (strcat "\n[视口比例为:1:" (rtos (/ (cdr(assoc 45 ent)) (cdr(assoc 41 ent))) 2 0) "]\n")) (princ) )
发表于 2019-4-15 16:44:27 | 显示全部楼层
(defun c:tt5 (/ ent)
        (setq  ent (entget (car (entsel "\n选择视口:"))))
                (princ (strcat "\n[视口比例为:1:" (rtos (/ (cdr(assoc 45 ent)) (cdr(assoc 41 ent))) 2 0) "]\n")) (princ)
        )
回复

使用道具 举报

 楼主| 发表于 2019-4-16 09:19:37 | 显示全部楼层
本帖最后由 李青松 于 2019-4-16 09:27 编辑
start4444 发表于 2019-4-15 22:58
(defun c:tt5 (/ ent)
        (setq  ent (entget (car (entsel "\n选择视口:"))))
                (princ (strcat "\n[视口 ...
很好,程序简单实用明经币怎样给你


回复

使用道具 举报

 楼主| 发表于 2019-4-16 09:54:26 | 显示全部楼层
本帖最后由 李青松 于 2019-4-16 09:56 编辑
start4444 发表于 2019-4-15 16:44
(defun c:tt5 (/ ent)
        (setq  ent (entget (car (entsel "\n选择视口:"))))
                (princ (strcat "\n[视口 ...

若是改成框选就更好了。框选中有其它的线也不要影响查询比例

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2019-4-16 10:00:12 | 显示全部楼层
本帖最后由 start4444 于 2019-4-16 10:16 编辑
李青松 发表于 2019-4-16 09:54
若是改成框选就更好了。框选中有其它的线也不要影响查询比例

框选其实意义不大,这种快速操作就要简单直接,如果要每一个单独显示那又要编号对应,这样就变得繁琐了,如果单单为了选择方便那就用ssget来选定
(defun c:tt5 (/ ent)
        (prompt "选择视口:")
        (setq  ent (entget (ssname (ssget ":S" '((0 . "viewport"))) 0)))
                (princ (strcat "\n[视口比例为:1:" (rtos (/ (cdr(assoc 45 ent)) (cdr(assoc 41 ent))) 2 0) "]\n")) (princ)
        )


如果多选就以第一个为准
回复

使用道具 举报

 楼主| 发表于 2019-4-16 11:46:20 | 显示全部楼层
start4444 发表于 2019-4-16 10:00
框选其实意义不大,这种快速操作就要简单直接,如果要每一个单独显示那又要编号对应,这样就变得繁琐了, ...

新程序非常好,多谢。牛逼
回复

使用道具 举报

发表于 2019-5-26 16:28:00 | 显示全部楼层
start4444 发表于 2019-4-16 10:00
框选其实意义不大,这种快速操作就要简单直接,如果要每一个单独显示那又要编号对应,这样就变得繁琐了, ...

命令行需要三行才能看得到参数,能不能只有两行的情况下显示
回复

使用道具 举报

发表于 2019-5-26 18:28:41 | 显示全部楼层
本帖最后由 1291500406 于 2019-5-26 18:30 编辑
KO你 发表于 2019-5-26 16:28
命令行需要三行才能看得到参数,能不能只有两行的情况下显示

(prompt "选择视口:")一行
(ssget)一行
(princ (strcat "\n[视口比例为:1:" (rtos (/ (cdr(assoc 45 ent)) (cdr(assoc 41 ent))) 2 0) "]\n")) 一行
你把(prompt "选择视口:")   删掉
(princ (strcat "[视口比例为:1:" (rtos (/ (cdr(assoc 45 ent)) (cdr(assoc 41 ent))) 2 0) "]"))


回复

使用道具 举报

发表于 2019-6-3 09:42:06 | 显示全部楼层
能把查询的文字直接写入到属性块上才完美
回复

使用道具 举报

发表于 2019-12-23 21:41:06 | 显示全部楼层
1291500406 发表于 2019-5-26 18:28
(prompt "选择视口:")一行
(ssget)一行
(princ (strcat "\n[视口比例为:1:" (rtos (/ (cdr(assoc 4 ...

可不可以 修改成直接输入数字就把比例设置好了并且锁定视口   比如输入20  就是1:20
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 17:55 , Processed in 0.178298 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表