明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1584|回复: 7

请各位高手指教,不胜感激!

[复制链接]
发表于 2012-7-30 15:28:42 | 显示全部楼层 |阅读模式
本帖最后由 王航 于 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)
   
  )

发表于 2012-7-30 16:37:11 | 显示全部楼层
(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:17 | 显示全部楼层
或者直接下载附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2012-7-30 16:53:37 | 显示全部楼层
革天明 发表于 2012-7-30 16:38
或者直接下载附件

非常感谢!谢谢您的大力相助!
发表于 2012-7-30 17:25:37 | 显示全部楼层
求智能圆标注(已解决!谢谢ZZXXQQ 版主热情帮助!)
http://bbs.mjtd.com/forum.php?mo ... &fromuid=415464
楼主 试试这个
 楼主| 发表于 2012-7-31 15:16:28 | 显示全部楼层
hutengfei 发表于 2012-7-30 17:25
求智能圆标注(已解决!谢谢ZZXXQQ 版主热情帮助!)
http://bbs.mjtd.com/forum.php?mod=viewthread&tid= ...

谢谢你把这么好的程序分享给大家!
 楼主| 发表于 2012-7-31 16:12:22 | 显示全部楼层
革天明 发表于 2012-7-30 16:38
或者直接下载附件

以下程序,标注圆时很好用,但标注螺纹时,只有绘图比例为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)
)
发表于 2013-8-12 21:59:46 | 显示全部楼层
王航 发表于 2012-7-31 16:12
以下程序,标注圆时很好用,但标注螺纹时,只有绘图比例为1:1时标注正确,其他比例时标注数值与实际不符, ...

程序增加一个图绘图比例就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-26 11:22 , Processed in 0.202580 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表