pfd8667 发表于 2004-9-26 16:07:00

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

我不会编程,多个网站也没找到,请求高手帮忙编一个[测量二线夹角程序,要在命令行提示度/分/秒的].谢谢!

wmz 发表于 2004-9-26 18:08:00

(defun c:ljj(/ p1 p2 p3 jd0 jd)<BR>               (setq p1 (getpoint "\n取左边一点:"))<BR>               (setq p2 (getpoint "\n取顶点:"))<BR>               (setq p3 (getpoint "\n取右边一点:"))<BR>               (setq jd0 (- (angle p2 p1) (angle p2 p3)))


        (if (&lt; jd0 0.0)(setq jd0 (+ (* 2 pi) jd0)))<BR>               (setq jd (/ (* jd0 180.0) pi))<BR>               (dtr0 jd)<BR>               (princ "两直线夹角= ")(prin1 fwj1)<BR>)<BR>(defun dtr0(a0 / aa0 aa1 aa2 bb1 bb2)<BR>                                                                               (setq bb1 "" bb2 "")<BR>                                                                               (setq aa0 (fix a0))<BR>                                                                               (setq aa1 (* (- a0 (fix a0)) 60.0))<BR>                                                                               (setq aa2 (* (- aa1 (fix aa1)) 60.0))<BR>                                                                               (setq a1 (fix aa1))<BR>                                                                               (if (&gt;= aa2 59.95)(progn<BR>                                       (setq a1 (+ a1 1) aa2 0.00)<BR>                       ))<BR>                                                                               (setq a2 (fix aa2))<BR>                       (if (&gt;= aa1 60.0)


                                       (progn<BR>                                                               (setq aa0 (+ aa0 1) a1 0)<BR>                                       )


                       )<BR>                                                                               (setq bb1 (itoa a1))<BR>                                                                               (if (= a1 0)(setq bb1 "00"))<BR>                                                                               (setq bb2 (rtos aa2 2 1))<BR>                                                                               (if (= a2 0)(setq bb2 "00"))<BR>                                                                               (setq fwj1 (strcat (itoa aa0) "度" bb1 "分" bb2 "秒"))<BR>)

pfd8667 发表于 2004-9-26 20:05:00

<A name=55101><FONT color=#000066><B>wmz</B></FONT></A> 您好:


太感谢你了,我试了一下,太好了,比用CAD中的角度标注还精确,再次表示谢意!

alin 发表于 2004-9-26 20:44:00

比用CAD中的角度标注还精确


那只是设置问题。

pfd8667 发表于 2004-9-26 21:40:00

版主说的看法我不认为是这回事.因为在CAD二个设置我都设置了度/分/秒,但用角度标注未能反映秒,2楼的就行,是我见的测量夹角最满意的,但在命令行提示角度重复了,我不懂编程,能否请 <A name=55101><FONT color=#000066><B>wmz</B></FONT></A>帮在修改一下,那就太完美无缺.

cqnj023 发表于 2004-9-26 22:00:00

pfd8667发表于2004-9-26 21:40:00static/image/common/back.gif版主说的看法我不认为是这回事.因为在CAD二个设置我都设置了度/分/秒,但用角度标注未能反映秒,2楼的就行,是我见的测量夹角最满意的,但在命令行提示角度重复了,我...
角度标注的精度应当修改当前标注样式才能体现。 在命令行提示重复只需在最后加上一句(princ),变为(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)(princ) ;加上的

)
(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 "秒")))

pfd8667 发表于 2004-9-27 03:17:00

感谢热心的 <A name=55148><FONT color=#000066><B>cqnj023</B></FONT></A>帮助,解决了在命令行提示角度重复的问题,这程序相当好用,我也测试了一个三角形,加起来正好等 于180度.

alin 发表于 2004-9-27 05:31:00

版主说的看法我不认为是这回事.因为在CAD二个设置我都设置了度/分/秒,但用角度标注未能反映秒,2楼的就行,是我见的测量夹角最满意的,但在命令行提示角度重复了,我不懂编程,能否请 wmz帮在修改一下,那就太完美无缺.这是CAD里角度标注。。

pfd8667 发表于 2004-9-27 16:21:00

谢谢版主的提示,是我在设置上的问题,
页: [1]
查看完整版本: [求助]测量二线夹角程序,要在命令行提示度/分/秒的.