894560869 发表于 2009-10-20 14:37:00

对齐标注自动转成转角标注。

<p>网上下的一个程序如下(能将选定的对齐标注变成转角标注),哪位大侠能改下帮忙实这个功能:就是标注一个尺寸后,对齐标注已自动变成转角标注之属性。</p><p>;;;对齐标注转线性标注<br/>(Defun ErrorDAG(msg)<br/>(command "._UNDO" "E")<br/>(prin1))<br/>(Defun C:DAG (/ AcadObject AcadDocument mSpace DimSS L M DimGet DimEle DimLay Dimcon DimStyle pt10 pt13 pt14)<br/>(vl-load-com)<br/>(setq *error* ErrorCHVDim)<br/>(setvar "cmdecho" 0) <br/>(princ "\n 选上对齐标注转换成线性标注!")<br/>(setq AcadObject (vlax-get-acad-object)<br/>AcadDocument (vla-get-ActiveDocument AcadObject)<br/>mSpace (vla-get-ModelSpace AcadDocument))<br/>(setq DimSS (ssget '((0 . "DIMENSION")<br/>(100 . "AcDbAlignedDimension"))))<br/>(if (= DimSS nil)<br/>(progn<br/>(princ "\n 没有对齐标注被选上!")<br/>(exit)))<br/>(command "._UNDO" "BE")<br/>(setq L (sslength DimSS))<br/>(setq M 0)<br/>(while (&lt; M L)<br/>(setq DimGet (ssname DimSS M))<br/>(setq DimEle (entget DimGet))<br/>(if (= (vl-position (cons 100 "AcDbRotatedDimension") DimEle) nil)<br/>(progn<br/>;;;获取图层、颜色<br/>(setq DimLay (cdr (assoc 8 DimEle)))<br/>(setq pt10 (cdr (assoc 10 DimEle)))<br/>(setq pt13 (cdr (assoc 13 DimEle)))<br/>(setq pt14 (cdr (assoc 14 DimEle)))<br/>(setq Dimcon (cdr (assoc 1 DimEle)))<br/>(setq DimStyle (cdr (assoc 3 DimEle)))<br/>(GnHdg_AddDimAlign pt13 pt14 pt10 Dimcon DimStyle)<br/>(command "._CHANGE" (entlast) "" "P" "LA" DimLay "")<br/>(command "._ERASE" DimGet "")))<br/>(Setq M (+ M 1)))<br/>(command "._UNDO" "E")<br/>(prin1))<br/>;;;建立线性标注<br/>(defun GnHdg_AddDimAlign (GnHdg_Pt1 GnHdg_Pt2 GnHdg_Pt3 GnHdg_DimCon GnHdg_DimStyle / Ent)<br/>(if (setq ent (entmake (list '(0 . "DIMENSION")<br/>'(100 . "AcDbEntity")<br/>'(100 . "AcDbDimension")<br/>(cons 10 GnHdg_Pt3)<br/>'(11 0. 0. 0.)<br/>'(70 . 32)<br/>(cons 1 GnHdg_DimCon)<br/>(cons 3 GnHdg_DimStyle)<br/>'(100 . "AcDbAlignedDimension")<br/>(cons 13 GnHdg_Pt1)<br/>(cons 14 GnHdg_Pt2)<br/>(cons 50 (angle GnHdg_Pt1 GnHdg_Pt2))<br/>'(100 . "AcDbRotatedDimension"))))ent))</p>

asd19400 发表于 2012-8-31 02:08:58

用来炸天正的标注比较好,收藏了
页: [1]
查看完整版本: 对齐标注自动转成转角标注。