明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: 鱼与熊掌

[已解答] 求完善下代码.(画线并自动标注功能) (源码来自73.)

[复制链接]
发表于 2014-6-3 17:45:03 | 显示全部楼层
;;根据鱼与熊掌君提供的程序,添加两点:1保留小数位数时如果位数不足可以补零2自定义字高
(defun c:tts (/ p q pt en obj)
;(setvar'osmode 16384)
(setvar"dimzin"0);;保留小数位数时如果位数不足可以补零
(setq TextHeight (getdist "\n请输入文字高度:"))
  (setq os_bak(getvar 'cmdecho))
  (setvar 'cmdecho 0)
  (setq p (getpoint "\n指定起点"))
  (while p
    (if        p
      (progn
        (command "pline" "_non" p)
        (while (setq q        (getpoint p "下一点")
                     pt        (mapcar '(lambda (x) (* x 0.5)) (mapcar '+ p q))
               )
          (command "_non" q)
          (entmake (list '(0 . "TEXT")
                         (cons 10 pt)
                         (cons 40 1)
                         (cons 1 (rtos (distance p q) 2 2))
                         (cons 50
                               (if (and        (< (/ Pi 2) (angle p q))
                                        (> (* 1.5 pi) (angle p q))
                                   )
                                 (angle q p)
                                 (angle p q)
                               )
                         )
                        (cons 8 "标注")
                         (cons 7 "BG_ST")
                         (cons 62 3)                        
                         (cons 72 1)
                         (cons 73 1)
                         (cons 40 TextHeight)
                         (cons 41 0.7)
                         (cons 11 pt)
                   )
          )
          (setq p q)
        )
        (if (>(getvar 'CMDACTIVE) 0) (command ""))
        (setq p (getpoint "\n指定起点"))
      )
      ;(setvar 'osmode (- (getvar osmode) 16384))
    )
  )
  (if (>(getvar 'CMDACTIVE) 0) (command ""))
  (if os_bak(setvar 'cmdecho os_bak))
  (princ)
)
回复 支持 0 反对 1

使用道具 举报

发表于 2014-6-4 09:14:45 | 显示全部楼层
压缩一下
  1. (defun c:tts (/ p q pt)
  2. ;(setvar'osmode 16384)
  3. (setvar "cmdecho" 0)
  4. (setvar "dimzin" 0);;保留小数位数时如果位数不足可以补零
  5. (setq TextHeight (getdist "\n请输入文字高度: "))
  6. (while (setq p (getpoint "\n指定起点: "))
  7.   (command "pline" "_non" p)
  8.   (while (setq q (getpoint p "\n下一点: ")
  9.                      pt (mapcar '(lambda (x) (/ x 2)) (mapcar '+ p q)))
  10.    (command "_non" q)
  11.    (entmake
  12.     (list
  13.      '(0 . "TEXT")
  14.      (cons 10 pt)
  15.      (cons 40 1)
  16.      (cons 1 (rtos (distance p q) 2 2))
  17.      (cons 50 (if (< (/ Pi 2) (angle p q) (* 1.5 pi)) (angle q p) (angle p q)))
  18.      (cons 8 "标注")
  19.      (cons 7 "BG_ST")
  20.      (cons 62 3)                        
  21.      (cons 72 1)
  22.      (cons 73 1)
  23.      (cons 40 TextHeight)
  24.      (cons 41 0.7)
  25.      (cons 11 pt)
  26.     )
  27.    )
  28.    (setq p q)
  29.   )
  30.   (command "")
  31. )
  32.   ;(setvar 'osmode (- (getvar osmode) 16384))
  33. (setvar "cmdecho" 1)
  34. (princ)
  35. )
 楼主| 发表于 2014-6-4 10:12:50 | 显示全部楼层
ZZXXQQ 发表于 2014-6-4 09:14
压缩一下

酷炫`~~~   d     `````
发表于 2022-5-19 09:09:42 | 显示全部楼层
CAD2006试了,没显示标注
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 01:41 , Processed in 0.349571 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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