明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2266|回复: 8

[求助]测量二线夹角程序,要在命令行提示度/分/秒的.

[复制链接]
发表于 2004-9-26 16:07:00 | 显示全部楼层 |阅读模式
我不会编程,多个网站也没找到,请求高手帮忙编一个[测量二线夹角程序,要在命令行提示度/分/秒的].谢谢!
发表于 2004-9-26 18:08:00 | 显示全部楼层
(defun c:ljj(/ p1 p2 p3 jd0 jd)
(setq p1 (getpoint "\n取左边一点:"))
(setq p2 (getpoint "\n取顶点:"))
(setq p3 (getpoint "\n取右边一点:"))
(setq jd0 (- (angle p2 p1) (angle p2 p3))) (if (< jd0 0.0)(setq jd0 (+ (* 2 pi) jd0)))
(setq jd (/ (* jd0 180.0) pi))
(dtr0 jd)
(princ "两直线夹角= ")(prin1 fwj1)
)
(defun dtr0(a0 / aa0 aa1 aa2 bb1 bb2)
(setq bb1 "" bb2 "")
(setq aa0 (fix a0))
(setq aa1 (* (- a0 (fix a0)) 60.0))
(setq aa2 (* (- aa1 (fix aa1)) 60.0))
(setq a1 (fix aa1))
(if (>= aa2 59.95)(progn
(setq a1 (+ a1 1) aa2 0.00)
))
(setq a2 (fix aa2))
(if (>= aa1 60.0) (progn
(setq aa0 (+ aa0 1) a1 0)
) )
(setq bb1 (itoa a1))
(if (= a1 0)(setq bb1 "00"))
(setq bb2 (rtos aa2 2 1))
(if (= a2 0)(setq bb2 "00"))
(setq fwj1 (strcat (itoa aa0) "度" bb1 "分" bb2 "秒"))
)
 楼主| 发表于 2004-9-26 20:05:00 | 显示全部楼层
wmz 您好: 太感谢你了,我试了一下,太好了,比用CAD中的角度标注还精确,再次表示谢意!
发表于 2004-9-26 20:44:00 | 显示全部楼层
  1. 比用CAD中的角度标注还精确
复制代码


那只是设置问题。
 楼主| 发表于 2004-9-26 21:40:00 | 显示全部楼层
版主说的看法我不认为是这回事.因为在CAD二个设置我都设置了度/分/秒,但用角度标注未能反映秒,2楼的就行,是我见的测量夹角最满意的,但在命令行提示角度重复了,我不懂编程,能否请 wmz帮在修改一下,那就太完美无缺.
发表于 2004-9-26 22:00:00 | 显示全部楼层
pfd8667发表于2004-9-26 21:40:00版主说的看法我不认为是这回事.因为在CAD二个设置我都设置了度/分/秒,但用角度标注未能反映秒,2楼的就行,是我见的测量夹角最满意的,但在命令行提示角度重复了,我...
角度标注的精度应当修改当前标注样式才能体现。 在命令行提示重复只需在最后加上一句(princ),变为
  1. (defun c:ljj(/ p1 p2 p3 jd0 jd)
  2.      (setq p1 (getpoint "\n取左边一点:"))
  3.      (setq p2 (getpoint "\n取顶点:"))
  4.      (setq p3 (getpoint "\n取右边一点:"))
  5.      (setq jd0 (- (angle p2 p1) (angle p2 p3)))   (if (< jd0 0.0)(setq jd0 (+ (* 2 pi) jd0)))
  6.      (setq jd (/ (* jd0 180.0) pi))
  7.      (dtr0 jd)
  8.      (princ "两直线夹角= ")(prin1 fwj1)(princ) ;加上的
  9. )
  10. (defun dtr0(a0 / aa0 aa1 aa2 bb1 bb2)
  11.                      (setq bb1 "" bb2 "")
  12.                      (setq aa0 (fix a0))
  13.                      (setq aa1 (* (- a0 (fix a0)) 60.0))
  14.                      (setq aa2 (* (- aa1 (fix aa1)) 60.0))
  15.                      (setq a1 (fix aa1))
  16.                      (if (>= aa2 59.95)(progn
  17.            (setq a1 (+ a1 1) aa2 0.00)
  18.        ))
  19.                      (setq a2 (fix aa2))
  20.        (if (>= aa1 60.0)           (progn
  21.                  (setq aa0 (+ aa0 1) a1 0)
  22.            )       )
  23.                      (setq bb1 (itoa a1))
  24.                      (if (= a1 0)(setq bb1 "00"))
  25.                      (setq bb2 (rtos aa2 2 1))
  26.                      (if (= a2 0)(setq bb2 "00"))
  27.                      (setq fwj1 (strcat (itoa aa0) "度" bb1 "分" bb2 "秒")))
 楼主| 发表于 2004-9-27 03:17:00 | 显示全部楼层
感谢热心的 cqnj023帮助,解决了在命令行提示角度重复的问题,这程序相当好用,我也测试了一个三角形,加起来正好等 于180度.
发表于 2004-9-27 05:31:00 | 显示全部楼层
  1. 版主说的看法我不认为是这回事.因为在CAD二个设置我都设置了度/分/秒,但用角度标注未能反映秒,2楼的就行,是我见的测量夹角最满意的,但在命令行提示角度重复了,我不懂编程,能否请 wmz帮在修改一下,那就太完美无缺.
复制代码
这是CAD里角度标注。。

本帖子中包含更多资源

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

x
 楼主| 发表于 2004-9-27 16:21:00 | 显示全部楼层
谢谢版主的提示,是我在设置上的问题,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-30 14:13 , Processed in 0.191939 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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