收藏 分销(赏)

CAD气泡式标注程序.doc

上传人:pc****0 文档编号:6382423 上传时间:2024-12-07 格式:DOC 页数:5 大小:48.50KB 下载积分:10 金币
下载 相关 举报
CAD气泡式标注程序.doc_第1页
第1页 / 共5页
CAD气泡式标注程序.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
(defun C:BALLOON (/ tmp ts th nh ip sp ali le errexit bx acadver LBLOCK BLAYER TEXTGAP CHARWIDTH BWIDTH) (setq LBLOCK T) ;“气泡”创建为块,除非这里LBLOCK设为nil (setq BLAYER "sdim") ;放置“气泡”的图层:"XXXX"=放置在层XXXX,nil=使用当前层 (setq TEXTGAP 0.8) ;希望的文本和“气泡”的间距(1单位=尺寸文本高) (setq CHARWIDTH 1.0) ;1个单位高字符的平均宽度(仅用于R11) (setq BWIDTH 0.04) ;“气泡”线宽:nil=无宽度(1单位=尺寸文本高,如果气泡是椭圆,无效,且在R13中PELLIPSE=0) (setq acadver (read (substr (getvar "ACADVER") 1 2))) (if (/= (type acadver) 'INT) (setq acadver 0)) (defun errexit (s) (princ "\n错误: ") (princ s) (restore) ) (defun bx () (if le (entdel le)) (setvar "CMDECHO" (car oldvar)) (setvar "BLIPMODE" (cadr oldvar)) (setvar "OSMODE" (nth 2 oldvar)) (setvar "CLAYER" (nth 3 oldvar)) (setvar "DONUTID" (nth 4 oldvar)) (setvar "DONUTOD" (nth 5 oldvar)) (setq *error* olderr) (princ) ) ;Main Program (setq T (not nil)) (setq olderr *error* restore bx *error* errexit ) (setq oldvar (list (getvar "CMDECHO") (getvar "BLIPMODE") (getvar "OSMODE") (getvar "CLAYER") (getvar "DONUTID") (getvar "DONUTOD") ) ) (setvar "CMDECHO" 0) (setvar "BLIPMODE" 0) (setvar "OSMODE" 0) (terpri) (if (= acadver 11) ;是R11吗? (defun textbox (elist) ;如果是,定义一个定制的文本框函数 (list '(0 0 0) (list (* (strlen (cdr (assoc 1 elist))) (cdr (assoc 40 elist)) CHARWIDTH) (cdr (assoc 40 elist)) 0 ) ) ) ) (if (= 0 (setq th (cdr (assoc '40 (tblsearch "style" (getvar "textstyle")))) ) ) (setq nh (setq th (* (getvar "DIMTXT") (getvar "DIMSCALE")))) (setq nh nil) ) (if BLAYER (command "._LAYER" (if (tblsearch "LAYER" BLAYER) "_S" "_M") BLAYER "" ) ) (if (setq ip (setq sp (getpoint "拾取旁注线起点: "))) (progn (entmake (list '(0 . "POINT") (cons 10 (trans sp 1 0)))) (setq le (entlast)) (command "._DIM1" "_LEADER") (setvar "CMDECHO" 1) (command sp) (while (progn (initget 128) (setq sp (getpoint sp)) ) (command sp) ) (setvar "CMDECHO" 0) (command) (setq sp (trans (cdr (assoc '11 (entget (entlast)))) 0 1)) (setq ali (angle (trans (cdr (assoc '10 (entget (entlast)))) 0 1) sp)) (setq tmp (getstring T "键入文本: ")) (setq ts (textbox (list (cons '1 tmp) (cons '40 th)))) (setq ts (list (+ (- (car (cadr ts)) (car (car ts))) (* 2 TEXTGAP th)) (* 3 TEXTGAP th) ) ) (command "._TEXT" "_M" (polar sp ali (* 0.5 (if (<= (strlen tmp) 2) (cadr ts) (car ts))) ) ) (if nh (command th)) (command (if (<= (strlen tmp) 2) '0 (rtd (if (and (< ali (* 3 (/ pi 2))) (> ali (/ pi 2))) (+ ali pi) ali ) ) ) tmp ) (if (<= (strlen tmp) 2) (command "._DONUT" (cadr ts) (cadr ts) (polar sp ali (* 0.5 (if (<= (strlen tmp) 2) (cadr ts) (car ts))) ) "" ) (command "._ELLIPSE" sp (polar sp ali (if (<= (strlen tmp) 2) (cadr ts) (car ts))) (/ (cadr ts) 2) ) ) (if (and BWIDTH (> BWIDTH 0) (not (and (= acadver 13) (zerop (getvar "PELLIPSE")) (> (strlen tmp) 2))) ) (command "._PEDIT" (entlast) "W" (* th BWIDTH) "X") ) (if LBLOCK (progn (entmake (list (cons '0 "BLOCK") (cons '2 "*U") (cons '70 1) (cons '10 ip) )) (setq th (setq tmp le)) (while (setq tmp (entnext tmp)) (entmake (entget tmp)) ) (setq tmp (entmake (list (cons '0 "ENDBLK")))) (while (setq th (entnext th)) (entdel th) ) (entdel le) (setq le nil) (entmake (list (cons '0 "INSERT") (cons '2 tmp) (cons '10 ip) )) ) ) ) ) (restore) )
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服