这段代码,插入屏幕的块的高度和文字高度时常会严重失调,如何调整
 - ; 统计并插入一个图块和数量文字
- (if ss
- (progn
- (setq cnt (sslength ss))
- (setq insertPt (getpoint "\n指定图块插入点: "))
- (if (> cnt 0)
- (progn
- ; 插入一个图块
- (command "_.INSERT" blkname "_S" 1 "_R" 0 insertPt)
- ; 计算文字插入点(图块右侧)
- (setq textPt (polar insertPt 0 50)) ; 50单位向右
- (setq txt (strcat (itoa cnt))) ; 仅显示数量
- (setq txtheight (* (getvar "viewsize") 0.05)) ; 动态计算文字高度
- ; 使用 entmake 创建文字
- (entmake (list '(0 . "TEXT") ; 实体类型
- '(100 . "AcDbEntity") ; 实体基类
- '(100 . "AcDbText") ; 文字子类
- (cons 10 textPt) ; 插入点
- (cons 40 txtheight) ; 文字高度
- (cons 1 txt) ; 文字内容
- (cons 50 0) ; 旋转角度
- (cons 72 0) ; 水平对齐 (0 = 左对齐)
- (cons 73 0) ; 垂直对齐 (0 = 基线)
- )
- )
- (princ (strcat "\n已插入一个 '" blkname "' 图块,并显示数量: " (itoa cnt)))
- )
- (princ "\n未找到匹配的图块!")
- )
- )
- (princ "\n未选择任何图块!")
- )
- (princ)
- )
- (princ "\n命令: BlockCount - 插入一个图块并显示数量")
- (princ)
|