明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1861|回复: 8

求助:帮修改一下标注角度的程序

[复制链接]
发表于 2010-10-3 16:39 | 显示全部楼层 |阅读模式

下面这个程序在网上找的,怎么能修改成标注的角度显示成度分秒然后标注在图上啊

;;;=========================================================================
;;;                                                                        
;;;    Program name: cpjlxjj.lsp                                           
;;;                                                                        
;;;    Description:                                                        
;;;     在AutoCAD屏幕上测量任意两条直线夹角                                
;;;                                                                        
;;;=========================================================================
(Defun *error* (msg)
 (princ "错误:")
 (princ msg)
 (terpri)
)

(Defun C:jj (/     cmde    ent_1   ent_2   ent_1_name
       ent_2_name      ang_1   ang_2   ang
       ang_yj   ang_min  ang_max
      )
 (Defun TQ_ENT_NAME (ent)
  (eval '(cdr (assoc '0 (entget (car ent)))))
 )
 (Defun TQ_ANG (ent)
  (setq ang (angle (cdr (assoc 10 (entget (car ent))))
           (cdr (assoc 11 (entget (car ent))))
       )
  )
 )

 (setq cmde (getvar "cmdecho"))
 (setvar "cmdecho" 0)
 (setq ent_1 (entsel "\n测量两线夹角,选第一条直线:"))
 (if ent_1
  (progn
   (princ "OK!")
   (setq ent_1_name (TQ_ENT_NAME ent_1))
   (if (= ent_1_name "LINE")
    (progn
     (setq ang_1 (TQ_ANG ent_1))
     (redraw (car ent_1) 3)
    )
   )
   (if ang_1
    (progn
     (setq ent_2 (entsel "\n选第二条直线:"))
     (if ent_2
      (progn
       (princ "OK!")
       (princ)
       (setq ent_2_name (TQ_ENT_NAME ent_2))
       (if (= ent_2_name "LINE")
        (progn
         (setq ang_2 (TQ_ANG ent_2))
         (redraw (car ent_2) 3)
         (princ)
        )
       )
       (if (and ang_1 ang_2)
        (progn
         (setq ang (abs (- ang_1 ang_2)))
         (if (> ang pi)
          (setq ang (- ang pi))
         )
         (setq ang   (* ang (/ 180 pi))
            ang_yj (- 180 ang)
            ang_min (min ang ang_yj)
            ang_max (max ang ang_yj)
         )
         (setq ang_min (rtos ang_min 2 4)
            ang_max (rtos ang_max 2 4)
         )
         (alert
          (strcat "\n 夹   角α = "  ang_min
              "° \n\n 180°- α = "
              ang_max       "°"
              )
         )
         (princ "\n所求夹角=")
         (princ ang_min)
         (princ "\°  180°- 夹角=")
         (princ ang_max)
         (princ "°")
         (redraw (car ent_1) 4)
         (redraw (car ent_2) 4)
        )
       )
      )
      (progn
       (princ "\n未选中第二条直线!")
       (redraw (car ent_1) 4)
      )
     )
    )
   )
  )
  (princ "\n未选中第一条直线!")
 )
 (setvar "cmdecho" cmde)
 (princ)
)

 


 

发表于 2010-10-5 19:02 | 显示全部楼层
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0

 楼主| 发表于 2010-10-6 15:03 | 显示全部楼层
好像标出的角度不对啊,还有能否标注到图上呢?
发表于 2010-10-6 20:55 | 显示全部楼层
这个是直接标注角度的。
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0

发表于 2010-10-7 09:32 | 显示全部楼层

Z版你好:

可否请你解释一下,下面这一句(红色部分)意思

(command "-DIMSTYLE" "S" (strcat (getvar "DIMSTYLE") "$2"))

 

"$2" 的作用,谢谢!

发表于 2010-10-7 20:01 | 显示全部楼层

加$2就是当前尺寸的下属“角度”尺寸名

发表于 2010-10-8 12:00 | 显示全部楼层

感谢Z版了解了.

发表于 2011-6-7 19:24 | 显示全部楼层
ZZXXQQ版主好热情。获益非浅!
发表于 2019-9-4 16:10 | 显示全部楼层
新手不会编,参考一下代码,谢谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 00:25 , Processed in 0.301189 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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