马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
使用函数生成文本的好处(附函数)
1.速度快
2.不容易出错,使用COMMAND函数时如果当前字体高度是个固定值,就会出错
3.容易控制文本属性,你可以随意控制文本的属性,而且使用还比COMMAND函数简洁,可以忽略次要属性。
4.可以有返回值,后附的函数返回生成的文本的ENTNAME

- ;;-------------------------------------------------
- ;;#$help.begin
- ;;##function.name-> (dd_creatext txt p lst)
- ;;##keyword-> create text 生成 文本
- ;;##Description-> 生成 文本 比command text 安全方便
- ;;##Arguments.begin
- ;|
- txt <string> 文本字符
- p <point>文本插入点
- lst=( h LAYER w ts) 文本次要属性表,可以只要部分属性或者为 nil
- h <real> 文本高度
- layer <string> 层名
- w <real> 文本度
- ts <string> 文本字型|;
- ;;##Arguments.end
- ;;##return-> entlist
- ;;##examples.begin
- ;| (dd_creatext "DDTEST" '(0 0 0) '( 1.0 ) ) |;
- ;;##examples.end
- ;;##see also->
- ;;#$help.end
- ;;-------------------------------------------------
- ;;##use function->
- ;;##use ddsysvar->
- ;;##Variable Description ;| |;
- (defun dd_creatext (TXT P lst / otxtlst txtlst h LAYER w ts)
-
- (SETQ H (CAR LST) LST (CDR LST))
- (SETQ LAYER (CAR LST) LST (CDR LST))
- (SETQ W (CAR LST) LST (CDR LST))
- (SETQ TS (CAR LST) LST (CDR LST))
- (IF (NULL H ) (SETQ H (getvar "TEXTSIZE")))
- (IF (NULL LAYER) (setq layer (getvar "clayer")))
- (IF (NULL TS) (SETQ TS (getvar "TEXTSTYLE")))
- (IF (NULL w) (SETQ w (cdr (assoc 41 (entget (tblobjname "style" ts))))))
- ;;;;;;;;;;;;
- (setq otxtlst ( list '(0 . "TEXT") '(100 . "AcDbEntity") '(67 . 0) '(100 . "AcDbText") '(50 . 0.0) '(51 . 0.0)
- '(71 . 0) '(72 . 0) '(11 0.0 0.0 0.0) '(210 0.0 0.0 1.0) '(100 . "AcDbText") '(73 . 0)))
-
- ;;;;;;;;;;;;;
- (setq txtlst (append oTXTlst (list (cons 10 P) (cons 8 layer) (cons 40 h) (cons 1 txt) (CONS 7 TS) (cons 41 w) )))
- ;;(if dd*testmode* (print entlst))
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (if (entmake txtlst) (entlast)) ;;;返回实体名
-
- )
-
|