求助:如何在下面这段弧长标注的源码中在标注文字的上面加入符合制图规范的小圆(已解
本帖最后由 注册 于 2012-3-12 19:06 编辑;==============================; 弧长标注;==============================(defun C:hu (/ obj sel el e r ang angs ange larc pnt multi)(setvar "CMDECHO" 0)(setq multi (getvar 'dimlfac));;;add 2002.5.15 can remove(setq obj (entsel "\nSelect ARC:<Exit> "))(setq sel (car obj)) (setq pnt (getpoint "point")) (terpri)(if (/= sel nil) (progn (setq el (entget sel)) (setq e (assoc 0 el)) (if (= "ARC" (cdr e)) (progn (setq r (assoc 40 el)) (setq r (cdr r)) (setq angs (assoc 50 el)) (setq angs (cdr angs)) (setq ange (assoc 51 el)) (setq ange (cdr ange)) (setq ang (- ange angs)) (if (< ang 0) (setq ang (- (* 2 pi) (abs ang))) ) (setq larc (* r ang)) (setq larc (* larc multi));;;add 2002.2.20 can remove ;;;add muti as multiple ;;;(princ "Angle = ") ;;;(prin1 (* (/ ang pi) 180)) ;;;(princ " , Radius = ") ;;;(prin1 r) ;;;(princ "\nLength of ARC is : ") ;;;(prin1 larc) ) (princ "Object is not a ARC !") ) ))(setq larc(rtos larc 2 1) )(command "dimangular"obj"t" larc pnt )(princ))上面这段是网上找来的弧长标注的源码,求助:如何在在标注文字的上面加入符合制图规范的小圆弧(就是图片中左侧尺寸上面那个小红线)谢谢
;;弧长标注
(defun C:hu (/ obj el larc multi)
(setvar "CMDECHO" 0)
(setq multi (getvar 'dimlfac));;;add 2002.5.15 can remove
(while (and (setq obj (entsel "\nSelect ARC:<Exit> "))
(setq el (entget (car obj)))
(= (cdr (assoc 0 el)) "ARC"))
(command "lengthen" obj "")
(setq larc (* (getvar "perimeter") multi))
(setq larc (strcat "\{\\Fgdt.shx|c0;^\}\\P" (rtos larc 2 2)))
(command "dimangular" obj "t" larc PAUSE)
)
(princ)
)
本帖最后由 CTC 于 2012-3-9 16:53 编辑
;标弧长
(Defun C:EE ()
(Vl-Load-Com)
(SetQ EntPnt (EntSel "\n选择圆弧:" )
Ent (Car EntPnt)
Obj (Vlax-EName->Vla-Object Ent)
Txt (Rtos (Vla-Get-ArcLength Obj) 2 2)
Txt (StrCat "\{\\Fgdt.shx|c0;^\}\\P" Txt)
);end SetQ
(Command "_DimAngular" EntPnt "M" Txt)
);end Defun
这个是来自明经,明经网很多。。。
弧长标注上有一个小圆弧 谢谢zzxxqq版主,周末愉快 ……楼主用高级点版本啊,08就已经可以实现弧长标注了~~~ ,谢谢超级版主 ZZXXQQ 发表于 2012-3-9 21:34 static/image/common/back.gif
能够批量框选一次性完成就更完美了! 看看是不是这样,批量 ZZXXQQ 发表于 2012-3-9 21:34
挺好的,做个标记。
页:
[1]