q530496591 发表于 2013-4-19 20:50:42

一个简单的智能标注

我是菜鸟,刚学会编程.想做一个标注的编程但是又不会!还请明经的师兄前辈们帮帮忙!
要求如下:
只标直线的.文字为TXT 精度为小数点后二位.最好尺寸能自动避让(没有也可以,用来学习更多!).能框选标注!可选标注文字大小
郊果如图:

q530496591 发表于 2013-4-21 17:07:53

没有人么?下面是我自己做的一个只标注线的长度的多选标注。想做一个二线X轴的标注和Y轴标注!下面是代码和图片
(defun c:tt ()
(setq pt1dist (getint "\n请输入标注时[往左拉或往下拉]的长度:"))
(if (null pt1dist) (setq pt1dist 10))
(prompt "请选择标注的线段:")
(setq entss (ssget)) ;(setq entss (ssget "a" '((0 . "LINE"))))
(setq n 0)
(repeat (sslength entss)
    (setq ent (ssname entss n)) ;返回选择集的名字,从0开始的这是固定的
    (setq get (entget ent)) ;得出每一个选择集的属性
    (setq pt10 (cdr (assoc 10 get)))
    (setq xpt10 (car pt10))
    (setq ypt10 (cadr pt10))
    (setq pt11 (cdr (assoc 11 get)))
    (setq xpt11 (car pt11))
    (setq ypt11 (cadr pt11))
    (cond
      ((equal ypt10 ypt11 ) (setq pt1 (polar pt10 (/ pi -2) pt1dist)) (command "dimlinear" pt10 pt11 "h" pt1))
      ((equal xpt10 xpt11 ) (setq pt1 (polar pt10 pi pt1dist)) (command "dimlinear" pt10 pt11 "v" pt1))
      (t (setq pt1 (polar pt10 (angle pt10 pt11) pt1dist)) (command "DIMALIGNED"pt10 pt11 pt1))
    )
    (setq n (+ n 1))
)
)
   

shenhung 发表于 2013-4-21 17:37:59

納悶 AutoCAD QDIM指令可以輕鬆做到的事. 為何要再自己重寫程式.

q530496591 发表于 2013-4-21 17:52:04

shenhung 发表于 2013-4-21 17:37 static/image/common/back.gif
納悶 AutoCAD QDIM指令可以輕鬆做到的事. 為何要再自己重寫程式.

我不知道啊!我看到别人用过还以为是别人写的程序呢。谢谢shenhung师兄!
页: [1]
查看完整版本: 一个简单的智能标注