首页 > 解决方案 > AutoCAD VBA如何放大AutoCAD表格中的单元格

问题描述

是否可以放大表格中的特定单元格?我在每个单元格中有一个包含文本值的表格,需要放大到每个单元格。acZoomScaledRelative通常我可以使用实体句柄和边界框的最大值和最小值来放大对象。但是对于表格,单元格中的文本没有文本实体句柄。

问候泰克

标签: autocad

解决方案


您可以使用 ActiveX GetCellExtents方法来获取对应于表格单元格四个角的坐标数组 - 此方法还考虑了合并单元格的可能性。

以下是您可以移植到 VBA 的 AutoLISP 实现示例:

(defun cellextents ( obj row col / a b c d lst rtn )
    (if (= :vlax-true (vla-ismergedcell obj row col 'a 'b 'c 'd))
        (setq row a col c)
    )
    (setq lst (vlax-invoke obj 'getcellextents row col :vlax-true))
    (repeat 4 (setq rtn (cons (list (car lst) (cadr lst) (caddr lst)) rtn) lst (cdddr lst)))
    (reverse rtn)
)

获取这些坐标后,您可以调用 Application 对象的 ZoomWindow 方法来缩放到由左下角和右上角坐标定义的窗口。


推荐阅读