模具论坛

 找回密码
 注册

扫一扫,微信登录

QQ登录

只需一步,快速开始

搜索
热搜: 冲压 注塑 求助
    回车查看更多
    论坛可能已存在您要发布的主题帖 关闭
      查看: 14838|回复: 36

      ACAD二次开发小程序

      [复制链接]
      发表于 2004-9-11 20:35:00 | 显示全部楼层 |阅读模式
      看到此版块有新任斑竹并发出教程贴,由衷的高兴,感觉也许此版块以后会有一些新气象和生机,我在此表示祝贺,当然更应有点行动,所以也来几个ACAD二次开发小程序,需要解释一下的是,这是我在97年使用ACADR12时的作品,由于当时根本看不到HMCAD与THMCAD以及INTERCAD这样的二次开发软件,所以当时下了许多功夫去编写一些AUTOLISP程序,比如自动输入图框和标题栏,标注粗糙度符号,标准轴素生成等等,但现在都没用了,因为软件开发商的水平比我高得多,不过还有几个到现在我还在用.  现在我拿出来,奉献给各位.

      本帖子中包含更多资源

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

      x
       楼主| 发表于 2004-9-11 20:40:00 | 显示全部楼层 |阅读模式
      (defun c:ZA()
      (command "zoom" "a"))
      命令:ZA
      这是一个ZOOM的子命令,相当与执行ZOOM后的选项A,恢复到全视窗.
       楼主| 发表于 2004-9-11 20:43:00 | 显示全部楼层
      (defun c:ZP()
      (command "zoom" "p"))
      命令:ZP
      这也是一个ZOOM的子命令,相当与执行ZOOM后的选项P,恢复到前视窗.
       楼主| 发表于 2004-9-11 20:45:00 | 显示全部楼层
      <P>(defun c:JSQ()
      (COMMAND "SH" "CALC"))</P><P>命令: JSQ</P><P>在ACAD环境中执行WINDOWS下计算器的命令.</P>
       楼主| 发表于 2004-9-11 20:50:00 | 显示全部楼层
      <P>(defun c:UCSO()
      (command "UCS" "O"))</P><P>命令:UCSO</P><P>大家不要小看它,它让你立刻执行重新设置用户坐标系原点,这可是为方便做图使用频率最高的命令了.</P>
      发表于 2004-9-28 14:47:00 | 显示全部楼层
      <P>一个朋友让我帮忙修改的程序--选择一个线性标注尺寸,不用回车或单击右键直接加上Φ:</P><P>(defun c:dw (/ n nt qsel sel)
        (setvar "cmdecho" 0)
        (setq sel (entsel "\n选择要加φ的尺寸:"))
        (if (= (cdr (nth 31 (entget (ssname qsel n)))) "AcDbAlignedDimension")
              (command "dimoverride" "dimpost" "%%c&lt;&gt;" "" sel "")
                           )
        
        (setvar "cmdecho" 1)
        (princ)
        )</P><P>怎么修改?</P>
      发表于 2004-9-28 14:48:00 | 显示全部楼层
      ;;程序1:核心部分主程序可以实现无须右键确认增加前缀φ;;
      (defun c:dw (/ sel)
        (setvar "cmdecho" 0)
        (setq sel (entsel "\n选择要加φ的尺寸:"))
        (command "dimoverride" "dimpost" "%%c&lt;&gt;" "" sel "")
        (setvar "cmdecho" 1)
        (princ)
        )
      发表于 2004-9-28 14:49:00 | 显示全部楼层
      ;;程序2:防止误选与不选;
      (defun c:dw (/ sel)
        (setvar "cmdecho" 0)
        (while (= sel nil) (setq sel (entsel "\n选择要加φ的尺寸:")));防止不选;
        (command "dimoverride" "dimpost" "%%c&lt;&gt;" "" sel "")
        (setvar "cmdecho" 1)
        (princ)
        )
      发表于 2004-9-28 14:51:00 | 显示全部楼层
      <P>;;防止错选;
      (defun c:dw (/ sel typ nth38 nth32 condition)
        (setvar "cmdecho" 0)
        (setq condition 0);虚拟一个变量作为循环终止条件;
        (while (= condition 0)
          (progn
            (setq sel (entsel "\n选择要加φ的尺寸:"))
            (if (= sel nil) (princ);如果没有选择倒回去再选;
      (progn
         (setq typ (cdr(assoc 0 (entget(car sel)))))
         (if (= typ "DIMENSION") (progn
              (setq nth38 (cdr(nth 38 (entget(car sel)))))
              (setq nth32 (cdr(nth 32 (entget(car sel)))));筛选出标注;
              );注意:当标注与对象关联时原始数据为38项,当没有关联时原始数据为32项;
           )
         (if (or (= nth38 "AcDbRotatedDimension") (= nth32 "AcDbRotatedDimension"));OR是或者的意思,两个有一个成立即可
           (setq condition 1)
           );当选择到转角时设置虚拟变量condition=1
         )
      )
            )
          )
        (command "dimoverride" "dimpost" "%%c&lt;&gt;" "" sel "")
        (setvar "cmdecho" 1)
        (princ)
        )</P><P>写程序应该是这样的,先把程序结构(也就是框架与流程)明确了,实现基本功能再一步一步完善。</P><P>这是给初学者一个建议。</P>
      发表于 2008-5-21 09:43:42 | 显示全部楼层
      哎!钱不够啊!哈哈!以后得抓紧时间挣钱啊!
      发表于 2008-10-29 23:42:50 | 显示全部楼层
      这些是蛮简单的吧。老大,
      发表于 2008-12-25 11:37:59 | 显示全部楼层

      好东西

      哈哈!蛮好用的哦啊!
      发表于 2009-2-4 23:19:41 | 显示全部楼层
      正在 找呀,太谢谢了
      发表于 2009-2-13 13:05:54 | 显示全部楼层
      祝福
      要过情人节了 节日快乐
      发表于 2009-2-13 20:25:56 | 显示全部楼层
      下载试用了无须右键确认增加前缀φ.可惜是加后缀φ而不是加前缀φ.怎样改为加前缀φ那就更好了
      发表于 2009-5-22 09:24:23 | 显示全部楼层
      可憐的我,這些你們都說是簡單的東西可是我一點都不通!我要了很多看看都是看不出什麼名堂來!!
      发表于 2009-5-22 22:06:42 | 显示全部楼层
      谢谢!学习中!!!
      发表于 2009-6-8 00:23:05 | 显示全部楼层
      非常不錯!謝謝分享!感謝!
      发表于 2009-6-8 15:52:53 | 显示全部楼层
      没钱啊.
      发表于 2009-6-8 17:01:04 | 显示全部楼层
      不懂这些..............
      您需要登录后才可以回帖 登录 | 注册

      本版积分规则

      关闭

      招聘信息 上一条 /5 下一条

      关闭

      求职信息 上一条 /5 下一条

      关闭

      技术求助 上一条 /5 下一条

      QQ|小黑屋|手机版|模具论坛 ( 浙ICP备15037217号 )

      GMT+8, 2025-6-16 01:09

      Powered by Discuz! X3.4

      © 2001-2013 Comsenz Inc.

      快速回复
      返回顶部
      返回列表
       
      客服电话:0577-61318188
      模具论坛交流群:
      模具论坛交流群
      工作时间:
      08:30-17:30