找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 576|回复: 0

[LISP程序]:工程图中标注序号的LISP程序

[复制链接]
发表于 2005-4-24 22:59:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
在工程设计工作中,经常要对设备、零件等标注序号。根据标准化要求,在标注点处要加上实心小圆点,然后引出直线 ;在另一端画出一个8~10mm的圆 ;在圆中写上所标注的序号文字。用AutoCAD基本命令完成上述工作费工费时,并且不易修改,特别是在图形密集处,效果很不理想,图面质量差。
  我们利用AutoLISP语言编制了BXH.LSP(标序号),很好地解决了以上问题,该程序为AutoCAD增加了一条BXH命令,可方便地在图纸中标注序号,并且如果修改或删除标注也十分方便,工效提高十倍以上。根据该程序的编制原理,可演绎出使用在机械制图中标注序号,标注焊接符号等程序。
  BXH.LSP源程序如下:
  ;---------------------------
 (defun C:Bxh (/ p1 p2 p3 1 ang 1 bx bxh radi txth) ;标序号
  (setq radi 5) ;圆圈半径
  (setq txth 5) ;字高
  (if (not bx) (setq bx 1))
  (setq p1 (getpoint "\n请选择起点:")) ;在零件上选一点
  (setq p2 (getpoint "\n请选择第二点或回车表示无第二点")) ;标注位置处一点
  (setq bxh (getint (gstr "\n请输入序号" bx))) ;序号数
  (if bxh (setq bx bxh))
  (cond (p2
   (command "layer" "set" 2 " ") ;改到画细线图层
   (setq ang 1 (angle p1 p2))
   (setq p3 (polar p1 ang (-(distance p1 p2) radi))) ;画圆、线
   (command "pline"
   (polar p1 ang 1 0.25)
   "w" 0.5 0,5 "A" "CE"p1"A"359.9"L""W"0 0 p3"")
   (command"circle"p2 radi)
   (command "layer" "set" 6 " " ;改到写文字图层
   "text" "J" "M" p2 txth 0 bx) ;写文字
  )
   ((not p2) ;如果在零件中直接标注
   (command "layer" "set" 2 " ") ;改到画细线图层
   (Command "circle" p1 radi) ;画圆
   (command "layer" "set" 6 " " ;改到写文字图层
   "text" "J" "M" p1 txth 0 bx) ;写文字
   )
  )
  (setq bx (+ bx 1))
  (princ)
 )
  ;-----------------------
  程序的使用方法,在Command:提示符下,键入(Load"BXH")回车后再键入BXH,然后按屏幕提示输入对应项即可。因为这个命令经常使用,建议把它装在菜单文件,在ACAD.MNU适当位置中加入一项:
  标序号]^c^c(LOAD "BXH") ;BXH ;用鼠标点取最为方便。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 03:52 , Processed in 0.315047 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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