一些免費的 Autolisp <五> 快速變更 標註的 ArrowType
這程式幫你快速切換標註箭頭形式(Arrow Type),也幫你關閉同一側的延伸線(Extension Line) ,當你再次執行他會變更方向,這常用於標註斷折線以外的必須表示的尺寸。
載入後
命令列輸入 : arrowext
也可以在cui 自己做個按鈕,巨集寫法如下圖
原始碼:
(defun c:ArrowEXT (/ obj arrow arrow1 arrow2) (vl-load-com) (setq acadObject (vlax-get-acad-object)) (setq acadDocument (vlax-get-property acadObject 'ActiveDocument)) (setq mSpace (vlax-get-property acadDocument 'Modelspace)) (setq obj (vlax-ename->vla-object (car (entsel "\n 請選取標註 : ")) ) ) (setq arrow1 (vlax-get obj 'Arrowhead1Type)) (setq arrow2 (vlax-get obj 'Arrowhead2Type)) (AE-SetVartoDwg "AW2" arrow2) (AE-SetVartoDwg "AW1" arrow1) (cond ((= arrow2 arrow1) (progn (if (and (vlax-property-available-p obj 'Arrowhead1Type) (vlax-property-available-p obj 'Arrowhead2Type) (vlax-property-available-p obj 'ExtLine2Suppress) (vlax-property-available-p obj 'ExtLine1Suppress) ) (progn (setq arrow (AE-GetVarFromDwg "AW1" "def")) (vlax-put obj 'Arrowhead1Type 0) (vlax-put obj 'Arrowhead2Type arrow) (vlax-put obj 'ExtLine1Suppress 1) (vlax-put obj 'ExtLine2Suppress 0) ) ) ) ) ((= arrow1 0) (progn (if (and (vlax-property-available-p obj 'Arrowhead1Type) (vlax-property-available-p obj 'Arrowhead2Type) (vlax-property-available-p obj 'ExtLine2Suppress) (vlax-property-available-p obj 'ExtLine1Suppress) ) (progn (setq arrow (AE-GetVarFromDwg "AW2" "def")) (vlax-put obj 'Arrowhead1Type arrow) (vlax-put obj 'Arrowhead2Type 0) (vlax-put obj 'ExtLine1Suppress 0) (vlax-put obj 'ExtLine2Suppress 1) ) ) ) ) ((= arrow2 0) (progn (if (and (vlax-property-available-p obj 'Arrowhead1Type) (vlax-property-available-p obj 'Arrowhead2Type) (vlax-property-available-p obj 'ExtLine2Suppress) (vlax-property-available-p obj 'ExtLine1Suppress) ) (progn (setq arrow (AE-GetVarFromDwg "AW1" "def")) (vlax-put obj 'Arrowhead1Type 0) (vlax-put obj 'Arrowhead2Type arrow) (vlax-put obj 'ExtLine1Suppress 1) (vlax-put obj 'ExtLine2Suppress 0) ) ) ) ) ) (vlax-release-object obj) (vlax-release-object acadObject) (princ) ) ;;;********************* function GetVarFromDwg ************************* (defun AE-GetVarFromDwg (VarName Def) (vlax-ldata-get "ArrowExt" VarName Def t) ) ;;;********************* function SetVartoDwg *************************** (defun AE-SetVartoDwg (VarName input) (vlax-ldata-put "ArrowExt" VarName input) )
標籤: Arrow Type, AutoLisp, Extension Line
0 個意見:
張貼留言
訂閱 張貼留言 [Atom]
<< 首頁