Vla-get-alignment

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-get-alignment vla-object)


機能
属性、属性参照、または文字の垂直位置合わせと水平位置合わせの両方を取得する。


引数
  • vla-object … VLAオブジェクト(Attribute、AttributeRef、Text)


戻り値
acAlignment 列挙型
  • acAlignmentLeft = 0
  • acAlignmentCenter = 1
  • acAlignmentRight = 2
  • acAlignmentAligned = 3
  • acAlignmentMiddle = 4
  • acAlignmentFit = 5
  • acAlignmentTopLeft = 6
  • acAlignmentTopCenter = 7
  • acAlignmentTopRight = 8
  • acAlignmentMiddleLeft = 9
  • acAlignmentMiddleCenter = 10
  • acAlignmentMiddleRight = 11
  • acAlignmentBottomLeft = 12
  • acAlignmentBottomCenter = 13
  • acAlignmentBottomRight = 14


  • MEMO : acAlignmentLeft で位置合わせされる文字は、InsertionPoint プロパティを使用して文字を位置付けする。
  • acAlignmentAligned または acAlignmentFit で位置合わせされる文字は、InsertPoint と TextAlignmentPoint の両方のプロパティを使用して文字を位置付けする。
  • これら以外の位置で位置合わせされる文字は、TextAlignmentPoint プロパティを使用して文字を位置付けする。


サンプル
(vl-load-com)
(defun c:Example_TextAlignmentPoint()
    ;; 文字を作成して、位置合わせ点と水平位置を変更するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; 文字の定義
    (setq insertionPoint (vlax-3d-point 3 3 0)  
          textString "Hello, World."
          height 0.5)
    
    ;; 文字を作成
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq textObj (vla-AddText modelSpace textString insertionPoint height))  
    (vla-ZoomAll acadObj)

    (setq alignmentPoint (vlax-variant-value (vla-get-TextAlignmentPoint textObj)))
    (alert (strcat "現在の位置合わせ点は " 
                   (rtos (vlax-safearray-get-element alignmentPoint 0) 2) ", "
                   (rtos (vlax-safearray-get-element alignmentPoint 1) 2) ", "
                   (rtos (vlax-safearray-get-element alignmentPoint 2) 2)))
    
    ;; 変更
    ;; note : HorizontalAlignmentプロパティを先に変更する必要がある。
    (setq alignmentPoint (vlax-3d-point 5 3 0))
    (vla-put-Alignment textObj acHorizontalAlignmentFit)
    (vla-put-TextAlignmentPoint textObj alignmentPoint)
    (vla-ZoomAll acadObj)

    (alert (strcat "新しい文字位置合わせ設定は " (itoa (vla-get-Alignment textObj))))

    (setq alignmentPoint (vlax-variant-value (vla-get-TextAlignmentPoint textObj)))
    (alert (strcat "位置合わせ点を次にセット " 
                   (rtos (vlax-safearray-get-element alignmentPoint 0) 2) ", "
                   (rtos (vlax-safearray-get-element alignmentPoint 1) 2) ", "
                   (rtos (vlax-safearray-get-element alignmentPoint 2) 2)))
)

関連事項