明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 荒野孤行

[源码] 快速建立标注样式

    [复制链接]
发表于 2015-5-26 11:06:34 | 显示全部楼层
顶起来看看!
发表于 2015-5-26 11:12:58 | 显示全部楼层
学习学习         
发表于 2015-5-26 12:32:51 | 显示全部楼层
收藏下来学习,谢谢。
发表于 2015-5-26 12:55:10 | 显示全部楼层
楼主最近高产啊
发表于 2015-5-26 13:45:45 | 显示全部楼层
呵呵,最好是做成点图框,按图框比例生成标注样式,比如5倍图框,就生成1:5的标注样式,已经有这样的程序了好像
发表于 2015-5-26 14:36:32 | 显示全部楼层
好帖!带讲解,这种帖子不多
发表于 2015-5-26 16:55:23 | 显示全部楼层
讲解详细,感谢分享
发表于 2015-5-26 21:26:36 | 显示全部楼层
这个必须顶顶啊
发表于 2015-5-26 22:16:53 | 显示全部楼层
ynhh 发表于 2015-5-26 09:01
大师啊
能不能做一个
动态改变标注文字大小的程序啊

;;========================================
;;  动态比例
;; by  明经通道  QQ: 9034598 2013年6月30日
;;========================================
(defun c:t44( / xent obj pt sc1 pt pt2 pt3 sc2 LLe LLt h txt sname dxf o_DIMZIN)
(setvar "cmdecho" 0)
(setq xent (entsel "\n请选择标注对象:"))
(if (and xent (= (cdr (assoc 0 (entget (car xent)))) "DIMENSION"))(progn
(setq obj (vlax-ename->vla-object (car xent))
       pt (cadr xent))
(setq sc1 (vla-get-ScaleFactor obj)
      sname (vla-get-StyleName obj))
(creL pt pt)
(setq LLe (entget (entlast)))
(creT)
(setq LLt (entget (entlast)))
(while (or (= (car (setq mouse (grread t 5 0))) 5)(= (car mouse) 2))
   (setq o_DIMZIN (getvar "DIMZIN"))
   (setvar "DIMZIN" 0)
   (setq pt2 (cadr mouse)
           h (* 0.02 (getvar "VIEWSIZE"))
         sc2 (* sc1 (/ (distance pt pt2) h) 0.1)
        ;txt (strcat "出图比例=" (rtos sc2 2 1))
         txt (strcat "出图比例=" (rtos sc2 2))
         pt3 (polar pt2 (* -0.45 pi) (* 1.5 h)))
  (setvar "DIMZIN" o_DIMZIN)
  (foreach x (list (cons 1 txt)(cons 10 pt3)(cons 40 h))
           (setq LLt (subst x (assoc (car x) LLt) LLt)))
  (entmod LLt)
  (entmod (subst (cons 11 pt2)(assoc 11 LLe) LLe))
  (if (null (equal sc2 0 1e-6)) (vla-put-ScaleFactor obj sc2))
)
(setq dxf (entget (tblobjname "dimstyle" sname)))
(entmod (subst (cons 40 sc2)(assoc 40 dxf) dxf))
(command "-DIMSTYLE" "R" sname)
(entdel (cdr (assoc -1 LLE)))
(entdel (cdr (assoc -1 LLT)))
))
(setvar "cmdecho" 1)
(princ)
)

(defun creT()(entmake (list '(0 . "TEXT") (cons 1 "1") (list 10 0 0 0) (cons 40 1))))
(defun creL(p1 p2)(entmake (list '(0 . "LINE") (cons 10 p1) (cons 11 p2))))
发表于 2015-5-27 06:11:23 | 显示全部楼层
学习学习看看怎么样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-22 11:20 , Processed in 0.178002 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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