ziele_o2k 发表于 2022-7-5 15:37:46

将插入的表格旋转到UCS

我使用以下例程插入新表:
(defun cd:ACX_AddTable (Space Pb Rows Cols RowH ColH)
(vla-AddTable
    Space
    (vlax-3d-point (trans Pb 1 0))
    Rows
    Cols
    RowH
    ColH
)
)
例子:
(cd:ACX_AddTable (cd:ACX_ASpace) (getpoint) 5 5 10 30)
但我不知道如何将插入的表格旋转到当前UCS。
我猜这和方向属性有一些共同点,但我被困在这里。。。
有什么帮助吗?
 
子程序:
(defun cd:ACX_ASpace ()
(if (= (getvar "CVPORT") 1)
   (vla-item (cd:ACX_Blocks) "*Paper_Space")
   (cd:ACX_Model)
)
)
(defun cd:ACX_Blocks ()
(or
   *cd-Blocks*
   (setq *cd-Blocks* (vla-get-blocks (cd:ACX_ADoc)))
)
*cd-Blocks*
)
(defun cd:ACX_Model ()
(or
   *cd-ModelSpace*
   (setq *cd-ModelSpace* (vla-get-ModelSpace (cd:ACX_ADoc)))
)
*cd-ModelSpace*
)
(defun cd:ACX_ADoc ()
(or
   *cd-ActiveDocument*
   (setq *cd-ActiveDocument*
   (vla-get-ActiveDocument (vlax-get-acad-object))
   )
)
*cd-ActiveDocument*
)

Stefan BMR 发表于 2022-7-5 16:11:17

试试这个
(setq table
(vla-AddTable
    Space
    (vlax-3d-point (trans Pb 1 0))
    Rows
    Cols
    RowH
    ColH
)
)

(vlax-put table 'direction (trans '(1 0 0) 1 0 T))

ziele_o2k 发表于 2022-7-5 16:31:14

如何重新生成此??

Stefan BMR 发表于 2022-7-5 16:56:04

我从来没有这个问题。如果你只是插入表格,看起来是这样的。
vla更新没有帮助,但只要开始填充单元格或调整行、列,它就会恢复正常。
即使是vla移动也会使其再生。
 
(setq table
(vla-AddTable
    Space
    (vlax-3d-point 0.0 0.0 0.0)
    Rows
    Cols
    RowH
    ColH
)
)

(vlax-put table 'direction (trans '(1 0 0) 1 0 T))
(vla-move table (vlax-3d-point 0.0 0.0 0.0) (vlax-3d-point (trans Pb 1 0)))
页: [1]
查看完整版本: 将插入的表格旋转到UCS