我在一本vlisp词典的光盘文件里面提取的一个关于vla-put-HorizontalTextPosition函数的程序,但是运行起来总是提示错误,函数如下:
(defun C:E23()
;;; 这个范例在模型空间中建立一个对齐式标注 ;;; 接着以各种不同的水平对齐轮流处理 ;;; 标注文字
(VL-LOAD-COM)
(setq AcadObject(vlax-get-acad-object)
AcadDocument(vla-get-ActiveDocument AcadObject)
mSpace(vla-get-ModelSpace AcadDocument)
)
;;; 定义标注
(setq pnt1(vlax-3d-point (list 50 50 0)))
(setq pnt2(vlax-3d-point (list 90 50 0)))
(setq location(vlax-3d-point (list 5 7 0)))
;;; 在模型空间中建立一个对齐式标注对象
(setq dimObj(vla-AddDimAligned mSpace pnt1 pnt2 location))
(vla-ZoomExtents AcadObject)
;;; 读取显示当前的文字位置
(setq Case(vla-get-HorizontalTextPosition dimObj))
(COND
((= Case 0) (setq currValue "居中"))
((= Case 1) (setq currValue "和第一条界线对齐"))
((= Case 2) (setq currValue "和第二条界线对齐"))
((= Case 3) (setq currValue "超过第一条界线对齐"))
((= Case 4) (setq currValue "超过第二条界线对齐"))
)
(princ (STRCAT "标注为: " currValue "\n"))
(PROMPT "<Enter>进行:")(VL-CMDF pause)
;;; 强制标注文字和第一条界线对齐
(vla-put-HorizontalTextPosition dimObj acFirstExtensionLine)
(vla-Regen AcadDocument acAllViewports)
(princ "标注文字当前和第一条界线对齐\n")
(PROMPT "<Enter>进行:")(VL-CMDF pause)
;;; 强制标注文字和第二条界线对齐
(vla-put-HorizontalTextPosition dimObj acSecondExtensionLine)
(vla-Regen AcadDocument acAllViewports)
(princ "标注文字当前和第二条界线对齐\n")
(princ)
)
这到底是怎么回事啊?
请各位大侠解答一下。 |