77077 发表于 2014-6-16 20:00:45

模拟尺寸标注,新手编写,错误多多~~~

模拟尺寸标注,新手编写,错误多多,欢迎拍砖~~~(defun c:xx1 (/ pt1 pt2 pt3 pt4 pt5 ang dis old old1)
(setq old1 (getvar "blipmode"))
(setvar "blipmode" 0)
(setq lay (getvar "clayer"))
(command "color" "bylayer")
(command "layer" "m" "DM-尺寸标注" "c" "3" "DM-尺寸标注" "")
(setq pt1 (getpoint "\n选择第一点:")
      pt2 (getpoint pt1 "\n选择另一点:")
      old (getvar "osmode")
      pt3(mapcar'(lambda(X Y)(/(+ X Y)2.0)) pt1 pt2);求中点
      ang (angle pt1 pt2)
      dis (distance pt1 pt2)
      pt4 (polar pt1 (+ pi ang) 1.0)
      pt5 (polar pt2 ang 1.0)
      )
(setvar "osmode" 0)
(drawcross pt1 ang);以P为基点,ang为角度绘制标记块
(drawcross pt2 ang)
(entmake (list (cons 0 "LINE") (cons 10 pt4) (cons 11 pt5)))
(command "-text" "J" "BC" pt3 "2.5" (angtos ang) (rtos dis 2 2) "");谁能告诉我如何用entmake生成中下对齐的文字
(setvar "osmode" old)
(setvar "blipmode" old1)
(command "layer" "s" lay "")
)(defun drawcross (p ng / px1 px2 py1 py2)
(setq eflag (tblsearch "block" "十字标记"))
(if (not eflag)
    (progn
      (setq px1      (polar p (angtof "225") '1.5)
            px2      (polar p (angtof "45") '1.5)
            py1      (polar p (angtof "90") '1.5)
            py2      (polar p (angtof "270") '1.5)
      )
      (entmake (list
               (cons 0 "BLOCK")
               (cons 2 "十字标记")
               (cons 70 0)
               (cons 10 p)
               )
      )
      (entmake (list
               (cons 0 "LINE")
               (cons 10 px1)
               (cons 11 px2)
               )
      )
      (entmake (list
               (cons 0 "LINE")
               (cons 10 py1)
               (cons 11 py2)
               )
      )
      (entmake '((0 . "endblk")))
    )
)
(command "_insert" "十字标记" p 1 1 (angtos ng))
)

lucas_3333 发表于 2014-6-16 20:04:16

模拟尺寸标注?有何意义呢?

77077 发表于 2014-6-17 14:51:47

没意义,闲的蛋疼瞎折腾~

尘缘一生 发表于 2021-7-8 19:34:05

此程序意义重大,各种插件,不能逃开CAD标注系统的,涉及CAD变量的控制,往往造成插件冲突,如果避开CAD标注系统,开发一套,讲避开各种CAD变量!

实际上:需要开发个点点标注,进而扩展即可,。
页: [1]
查看完整版本: 模拟尺寸标注,新手编写,错误多多~~~