YueFeng 发表于 2015-5-28 15:53:20

EntMake 方式 生成对齐标注

生成时采用当前 标注样式 当前 DIMSCALE

YueFeng 发表于 2015-5-28 15:53:55


;功    能:EntMake 方式生成对齐对标注,默认图层、颜色、标注样式、标注全局比例变量。

;调用格式:($YF_EMAligneDim <起点> <终点> <文字基点>)

;返 回 值:生成对象图元名。

;支持函数:

;示    例:($YF_EMAligneDim (Getpoint) (Getpoint) (GetPoint))

;整理日期:2015年5月12日


(Defun $YF_EMAligneDim (SP EP TxtPt / DIMSCALE OScale DD DD2 Result)

   (EntMake

      (List

         '(0 . "DIMENSION") '(100 . "AcDbEntity") '(100 . "AcDbDimension")

          (Cons 10 Txtpt)

         '(70 . 33) '(1 . "") '(100 . "AcDbAlignedDimension")

          (Cons 13 SP) (Cons 14 EP)

          (List

                -3 (List "ACAD"

                      '(1000 . "DSTYLE") '(1002 . "{") '(1070 . 40) (Cons 1040 (GetVar "DIMSCALE")) '(1002 . "}")))

         

      )

   )

   (EntLast)

)

tranney 发表于 2015-5-30 09:21:56

留个记号,以后再来

oistre 发表于 2018-8-10 18:50:04

楼主真是高手,什么都是浮云啊

YueFeng 发表于 2019-12-26 10:31:18

考虑DIMSCALE DIMLTFAC 两个变量的值。
;函数名称:YF_EMAligneDim
;函数功能:EntMake方式生成对齐标注,默认当前层、颜色、标注样式、标注全局比例变量。
;调用格式:(YF_EMAligneDim <起点> <终点> <文字标注侧基点>)
;返 回 值:图元名,否则返回nil。
;示    例:(YF_EMAligneDim (Getpoint) (Getpoint) (GetPoint))
;整理日期:2016年4月11日

(defun YF_EMAligneDim (SP EP TxtPt)
   (if
      (entmake
         (append
            (list
               '(0 . "DIMENSION") '(100 . "AcDbEntity") '(100 . "AcDbDimension") (cons 10 (trans TxtPt 1 0)) '(70 . 33) '(1 . "")
               '(100 . "AcDbAlignedDimension") (cons 13 (trans SP 1 0)) (cons 14 (trans EP 1 0))
            )
            (cond
               (
                  (and (/= (getvar "DIMSCALE") 1.0)(/= (getvar "DIMLFAC") 1.0))
                  (list (list -3 (list "ACAD" '(1000 . "DSTYLE") '(1002 . "{") '(1070 . 40) (cons 1040 (getvar "DIMSCALE")) '(1070 . 144) (cons 1040 (getvar "DIMLFAC"))'(1002 . "}"))))
               )
               (
                  (and (/= (getvar "DIMSCALE") 1.0)(= (getvar "DIMLFAC") 1.0))
                  (list (list -3 (list "ACAD" '(1000 . "DSTYLE") '(1002 . "{") '(1070 . 40) (cons 1040 (getvar "DIMSCALE")) '(1002 . "}"))))
               )
               (
                  (and (= (getvar "DIMSCALE") 1.0)(/= (getvar "DIMLFAC") 1.0))
                  (list (list -3 (list "ACAD" '(1000 . "DSTYLE") '(1002 . "{") '(1070 . 144) (cons 1040 (getvar "DIMLFAC"))'(1002 . "}"))))
               )
            )
         )
         
      )
      (entlast)
   )
)
页: [1]
查看完整版本: EntMake 方式 生成对齐标注