明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 901|回复: 6

[讨论] 标高标注程序

[复制链接]
发表于 2016-3-21 22:52 | 显示全部楼层 |阅读模式
求社区内的大侠们伸出援手,检查一下代码!
自己编写的一段vlisp代码:
_$ _$ (setq h 1.25)       
  (setq h1 (* h 1.414213562))
  (setq a1 (/ pi 4))
  (setq p1 (polar p0 a1 h1))
  (setq a2 (* 3 (/ pi 4)))
  (setq p2 (polar p0 a2 h1))
运行结果如下:
nil
1.25
1.76777
0.785398
(325.683 66.1647 0.0)
2.35619
(323.183 66.1647 0.0)
_$
小弟不懂为何p1和p2的结果会一样?
这段代码只是程序(附件)的一段,目的是求出屏幕点处的标高,并写出来,可以调整字高。
如果感兴趣的话,可以帮忙优化下代码。



发表于 2016-3-21 23:17 | 显示全部楼层
关闭捕捉模式就可以了
(defun c:tt (/ v1 v2 p0 p01 p1 p2 p3 p4 h h1 s a1 a2 a3 a4 alf)
     (setq v1 (getvar "cmdecho"))        ;获取当前普通命令提示信息状态
     (setq v2 (getvar "blipmode"))        ;获取当前光标标记状态
     (setq oldosmode (getvar "osmode"))
     (setvar "osmode" 0)
     (setvar "cmdecho" 0)                ;关闭普通命令提示信息
     (setq p0 (getpoint "插入点: "))
     (setq p01 (osnap p0 "nea"))        ;捕捉最近的点
     (setq h (getdist p0 "\n标高的字高<2.5>: "))
     (if (not h)
          (setq h 2.5)
     )                                        ;如果h无定义(空响应),令h=2.5
     (setq h1 (* h 1.414213562))
     (setq a1 (/ pi 4))
     (setq p1 (polar p0 a1 h1))
     (setq a2 (* 3 (/ pi 4)))
     (setq p2 (polar p0 a2 h1))
     (setq a3 0)
     (setq p3 (polar p1 a3 (* 3.5 h)))
     (setq a4 (* 0.5 pi))
     (setq p4 (polar p1 a4 (* h 0.3)))
     (setq s (rtos (cadr p0) 2 3))        ;获取p0y坐标,并保存为小数点后3位十进制数值
     (setq alf 0)
     (command "line" p1 p0 p2 p3 "")
     (command "_text" "j" "bl" p4 h a1 s)        ;l为左对齐
     (setvar "cmdecho" v1)                ;恢复普通命令提示信息原状态
     (setvar "blipmode" v2)                ;恢复光标标记原状态
     (setvar "osmode" oldosmode)
     (princ)                                ;静默退出
)
 楼主| 发表于 2016-3-22 01:35 来自手机 | 显示全部楼层
关闭了捕捉设置,那如何保证能够点取所需的点?谢谢回答问题
发表于 2016-3-22 07:48 | 显示全部楼层
在取点之后再关闭捕捉设置
 楼主| 发表于 2016-3-22 08:41 来自手机 | 显示全部楼层
eii 发表于 2016-3-22 07:48
在取点之后再关闭捕捉设置

你好,前面那个问题解决了,不过出现一个新的问题,就是当选点y坐标本身是整数时,如12.0,程序输出的结果为‘12’,我想将结果按小数点后三位的格式输出,求解
发表于 2016-3-22 12:37 | 显示全部楼层
 楼主| 发表于 2016-3-22 14:36 | 显示全部楼层
eii 发表于 2016-3-22 12:37
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=107567

谢谢大侠,我的问题都解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 04:00 , Processed in 0.263098 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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