本示例为创建水平标注,且依据当长度太小时,自动修改标注文字的大小
 - (defun c:tt(/ a b )
- (setq
- a(getpoint"\n起点")
- b(getpoint"\n终点")
- )
- (DimnkX a b)
- )
- ;水平标注,起点、终点,图层=4制图_内空
- (defun DimnkX(a b / h x )
- (setq
- h 20
- x(distance a b)
- )
- ;把点坐标从当前坐标系转换为世界坐标系
- (setq a (trans a 1 0) b (trans b 1 0) )
- (entmakex
- (list
- '(0 . "DIMENSION")
- '(100 . "AcDbEntity")
- '(8 . "4制图_内空") ;图层
- '(100 . "AcDbDimension")
- (cons 10 (list(car a)(+(cadr a)h))) ;标注线高度定义点坐标
- '(70 . 32) ;垂直/水平标注为32
- '(1 . "") ;文字替代内容,默认为空
- '(3 . "内空") ;标注样式
- '(100 . "AcDbAlignedDimension")
- (cons 13 a) ;标注起点坐标
- (cons 14 b) ;标注终点坐标
- '(100 . "AcDbRotatedDimension")
- )
- )
- (if (<= x 500)
- (vlax-put-property
- (vlax-ename->vla-object(entlast))
- 'TextHeight
- (fix (* x 0.2))
- )
- )
- )
|