请各位高手指教,不胜感激!
本帖最后由 王航 于 2012-7-30 16:10 编辑大家好!
我对AUTOLISP不懂,现在刚刚开始学习,我找了以下一段程序来加前缀,但是不知道怎么执行,输入“qq”。回车后没有反应,请各位高手指教,不胜感激,谢谢!
defun c:qq()
(VL-LOAD-COM)
(setq AcadObject (vlax-get-acad-object)
AcadDocument (vla-get-ActiveDocument Acadobject)
mSpace (vla-get-ModelSpace Acaddocument)
)
;;;输入孔的数量
(setq prefix1 (vla-GetString(vla-get-Utility AcadDocument)
:vlax-false
"请输入孔的数量:"
)
)
(setq prefix (strcat prefix1 "-φ"))
;;;选择一个标注
(setq dimObj1 (car (entsel)))
(setq dimObj (vlax-ename->vla-object dimObj1))
;;;提取字符串,
(setq value(vla-get-Measurement dimObj ))
(setq value1(+ value 0.5))
(setq dimvl1(rtos value1 2 1))
;;;添加前缀
(vla-put-TextPrefix dimObj prefix)
;;; 确定前缀的改变
;;; (vla-Regen AcadDocument acAllViewports)
;;; 读取并显示标注文字前缀
(setq prefix (vla-get-TextPrefix dimObj))
(if (/= prefix "")
(progn
(princ "\n标注的前缀已经改变为: ")
(princ prefix)
)
(princ "\n标注的前缀已经删除")
(princ)
)
(defun c:qq ()
(VL-LOAD-COM)
(setq AcadObject (vlax-get-acad-object)
AcadDocument (vla-get-ActiveDocument Acadobject)
mSpace (vla-get-ModelSpace Acaddocument)
)
;;输入孔的数量
(setq prefix1 (vla-GetString
(vla-get-Utility AcadDocument)
:vlax-false
"请输入孔的数量:"
)
)
(setq prefix (strcat prefix1 "-φ"))
;;选择一个标注
(setq dimObj1 (car (entsel)))
(setq dimObj (vlax-ename->vla-object dimObj1))
;;提取字符串,
(setq value (vla-get-Measurement dimObj))
(setq value1 (+ value 0.5))
(setq dimvl1 (rtos value1 2 1))
;;添加前缀
(vla-put-TextPrefix dimObj prefix)
;; 确定前缀的改变
;; (vla-Regen AcadDocument acAllViewports)
;; 读取并显示标注文字前缀
(setq prefix (vla-get-TextPrefix dimObj))
(if (/= prefix "")
(progn
(princ "\n标注的前缀已经改变为: ")
(princ prefix)
)
(princ "\n标注的前缀已经删除")
)
) 或者直接下载附件 革天明 发表于 2012-7-30 16:38 static/image/common/back.gif
或者直接下载附件
非常感谢!谢谢您的大力相助! 求智能圆标注(已解决!谢谢ZZXXQQ 版主热情帮助!)
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=87170&fromuid=415464
楼主 试试这个 hutengfei 发表于 2012-7-30 17:25 static/image/common/back.gif
求智能圆标注(已解决!谢谢ZZXXQQ 版主热情帮助!)
http://bbs.mjtd.com/forum.php?mod=viewthread&tid= ...
谢谢你把这么好的程序分享给大家! 革天明 发表于 2012-7-30 16:38 static/image/common/back.gif
或者直接下载附件
以下程序,标注圆时很好用,但标注螺纹时,只有绘图比例为1:1时标注正确,其他比例时标注数值与实际不符,比如说绘图比例1:2,我标直径为6的圆,显示为φ6,但标注M6的螺纹时,显示为“M3”,请不吝赐教!十分感谢!
(defun c:tt ()
(while (and (setq s1 (entsel "\n选择圆或圆弧 :"))
(setq ent (entget (car s1)))
(wcmatch (setq tn (cdr(assoc 0 ent))) "ARC,CIRCLE"))
(setq pt1 (cadr s1))
(setq qztxt (if (setq qz (getint "\n个数 :")) (strcat (itoa qz) "-") ""))
(if (= tn "ARC") (progn
(setq r (cdr(assoc 40 ent)))
(command ".LENGTHEN" (car s1) "")
(if (>= (/ (getvar "PERIMETER") r) (* 1.5 pi)) (progn
(setq qztxt (strcat qztxt "M" (rtos (+ r r) 2)))
(command "DIMDIAMETER" pt1 "T" qztxt PAUSE)
)
(command "DIMRADIUS" pt1 "T" (strcat qztxt "<>") PAUSE)
)
)
(command "DIMDIAMETER" pt1 "T" (strcat qztxt "<>") PAUSE)
)
)
(princ)
)
王航 发表于 2012-7-31 16:12 static/image/common/back.gif
以下程序,标注圆时很好用,但标注螺纹时,只有绘图比例为1:1时标注正确,其他比例时标注数值与实际不符, ...
程序增加一个图绘图比例就可以了
页:
[1]