明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4693|回复: 26

批量标注pl线

  [复制链接]
发表于 2011-1-12 14:15:35 | 显示全部楼层 |阅读模式
本帖最后由 yjpzc 于 2011-1-26 19:32 编辑

(defun c:plbz()
      (command "layer" "M" "bz" "C" "4" "" "LT" "CONTINUOUS" "" "");设置一个标注图层
      (setq ss(ssget))
      (setq n 0)
      (setq pts nil)
      (repeat (sslength ss)
              (setq en (entget (ssname ss n)))
              (if (= (cdr (assoc 0 en)) "LWPOLYLINE")
                 (progn
                  ;(setq nul(cdr (assoc 90 en)))
                  (foreach lst en
           (if (= (car lst) 10);判断如果点表的第一个数为10就将坐标添加进新的列表
    (setq pts (append pts (list (cons n (cdr lst)))))))
    ;;;;---------------
         (setq pps nil)
                               (setq k 0)
              ;----------------------->标注选择的实体
                       (repeat (length pps);设置循环的次数为新建表的长度
                                (setq pt1(nth k pps))
                                (if (<= (length pps)(1+ k))
                                     (setq pt2 (nth 0 pps))
                                     (setq pt2(nth (1+ k) pps))            
                                          );判断如果表的长度小于运行次数+1的话那么pt2就取列表的一个坐标
                                (setq dis(/ (distance pt1 pt2) 1.00));取点之间的距离
                         (setq text (rtos dis 2 3));将距离转换成字符串
                         (setq rang(angle pt1 pt2));取点间的角度
                         (setq ang(* (/ rang pi) 180));转弧度角
                         (setq pos(/ dis 2.0));求点间距离一半的长度
                         (setq mid_pt (polar pt1 rang pos));求两点间的中点坐标
                         (setq mid_pt1(polar mid_pt (+ rang (/ pi 2)) 0.4));求文字标注点的坐标
                                               (if
                                                   (and (> ang 90) (<= ang 270))
                                                   (setq ang(+ ang 180))
                                                   (setq mid_pt1(polar  mid_pt1 (+ rang (/ (* pi 3) 2)) 0.25))
                                                )
                                 (command "text" "j" "c" mid_pt1 "0.3" ang text);标注文字
                                 (setq k(1+ k))
                  
                                 )     
    )
    )
              (setq n(1+ n))
              )
              (princ (strcat "\n" "共标注" (itoa n) "个多边形" ))
  )
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-1-12 14:52:13 | 显示全部楼层
楼主也不详细讲讲,或上个图?
发表于 2011-1-12 14:56:41 | 显示全部楼层
不知楼主的可以做什么用?能否说明一下.......
谢谢
发表于 2011-1-12 17:16:45 | 显示全部楼层
不知楼主的可以做什么用啊?介绍下用法,主要应用在那个方面。
谢谢楼主
发表于 2011-1-12 22:19:46 | 显示全部楼层
感谢yjpzc楼主分享学习 <谢谢!>
发表于 2011-1-17 20:09:41 | 显示全部楼层
感谢楼主啊!!!!
发表于 2011-1-25 08:09:04 | 显示全部楼层
感谢楼主
发表于 2011-1-25 10:02:39 | 显示全部楼层
学习了,支持楼主
发表于 2011-3-29 21:07:31 | 显示全部楼层
学习中,感谢楼主
发表于 2011-4-29 01:42:48 | 显示全部楼层
不知楼主的可以做什么用啊?介绍下用法,主要应用在那个方面。
谢谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-25 18:40 , Processed in 0.186991 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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