QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
7天前
查看: 2921|回复: 6
收起左侧

[讨论] 有奖征答:工程图中标注序号的LISP程序有错误,应该怎样改?

[复制链接]
发表于 2006-5-26 11:02:00 | 显示全部楼层 |阅读模式 来自: 中国浙江台州

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
在工程设计工作中,经常要对设备、零件等标注序号。根据标准化要求,在标注点处要加上实心小圆点,然后引出直线 ;在另一端画出一个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 ;用鼠标点取最为方便。
发表于 2007-10-23 09:39:45 | 显示全部楼层 来自: 中国上海
这个CAD,LSP有谁帮忙编制一,谢谢了.
发表于 2007-10-23 11:44:34 | 显示全部楼层 来自: 中国台湾
(defun C:Bxh (/ p1 p2 p3 1 ang 1 bx bxh radi txth) ;标序号  
" p# t; O  e' E/ Y, P9 |/ a  ]& q+ ]  (setq radi 5)                         ;圆圈半径  
% P6 T+ n% _1 `9 o  (setq txth 5)                         ;字高  
% v$ H$ H5 }" R4 j( w5 w1 a$ h  (if (not bx)% s; i  x6 ?' C5 P- }* Y* H8 \
    (setq bx 1)# T' W: G2 L3 `
  ): n( V3 E8 j3 d% V3 l  i( x- M
    % r0 q4 y4 k% {9 O7 w* E+ b3 i
  (setq p1 (getpoint "\n请选择起点:"))                    ; 在零件上选一点  ) ^- r9 C( h4 ~1 Q& k/ O
  (setq p2 (getpoint "\n请选择第二点或回车表示无第二点")) ; 标注位置处一点  
( C7 h6 N. a+ z# [& w5 y  (setq bxh (getint (gstr "\n请输入序号" bx)))            ; 序号数  4 F2 w! [5 m" R/ X; K5 T
  (if bxh
8 l% ]1 |3 l* `    (setq bx bxh)
) g" W1 b- _5 Y+ O6 ^  )1 ?5 y% B8 g/ o  z- C9 O- Q
    
! z8 H( Q0 G$ G, K+ A+ c: S  (cond
" G: q) _+ A+ I7 G+ e9 c   (p2  " Z6 _/ V: b0 s  k& a/ J7 i
    (command "layer" "set" 2 " ")  ;改到画细线图层  6 g" j; E2 _  o: k# C6 {
    (setq ang 1 (angle p1 p2))* ~& ]$ ~( C- b2 C. l) \- h/ x
    (setq p3 (polar p1 ang (- (distance p1 p2) radi)))
" l9 T. d# a& |; }- {    ;; 画圆、线  ; C; m% s7 Z9 j; ?+ m- k, T
    (command "pline"" q& ]4 o0 F0 d. q* Q
             (polar p1 ang 1 0.25)
3 o6 g8 a# {% x# r2 Y$ O             "w" 0.5  0,5 "A" "CE" p1
0 R/ k6 q* _, g( r# b2 o             "A" 359.9 "L" "W" 0 0
- ?1 ?. D  I* H% ]$ Z9 `/ T/ g: `& _             p3 ""
; ~; D# l0 O2 b& C  z; s% ?. I5 Q    )4 Z& V  ]7 ~9 O/ v3 Q2 ?8 ^
    (command "circle" p2 radi)$ u8 Q: @: P* Y0 J
    (command "layer" "set" 6 " "   ;改到写文字图层  
* h6 h( D: B7 Y             "text" "J" "M" p2 txth 0 bx) ;写文字
6 R% q# x/ f  v. G3 ~8 U+ b9 F   )" h. U6 n: n* \  _
   ((not p2)                       ;如果在零件中直接标注  ( U9 }$ i% f; \3 L4 B( i  `
    (command "layer" "set" 2 " ")  ;改到画细线图层 & |3 \6 t  j! _, V
    (Command "circle" p1 radi)     ;画圆  + Q5 I5 P3 t! y. U
    (command "layer" "set" 6 " "   ;改到写文字图层   . u2 i% f1 n* ?
             "text" "J" "M" p1 txth 0 bx) ;写文字
2 }* w; h- P  K- M6 v0 j, c  ))5 X2 i/ @# \' }% x* v) x% p- a+ K& J
  (setq bx (+ bx 1))
' j4 Q# o* `/ d& R1 |4 q  (princ)
, ?; G7 ?8 i) N+ _- _- J   # [! \, V0 _' k5 V% h8 y
);-----------------------  4 _8 c$ D; ~- f7 V3 e" q% v
;|
0 Z; J2 Z9 t  N9 @' D: t4 I程序的使用方法,在Command:提示符下,键入(Load"BXH")
! g. V$ _* q! r3 a4 ^; S  L% ]回车后再键入BXH,然后按屏幕提示输入对应项即可。- r! ?/ i" O" G5 ?" @3 B
因为这个命令经常使用,建议把它装在菜单文件,* a! s( J. _3 R% L5 i; u( L# H, r
在ACAD.MNU适当位置中加入一项:  
4 c- ~5 Q+ n3 x+ l- a: Y[标序号]^c^c(LOAD "BXH") ;BXH9 x/ U1 N+ [4 I9 a! s3 E! y" |5 j
;用鼠标点取最为方便。
+ A5 v' I/ |! b& [9 J; j|;

BxhLsp.rar

744 Bytes, 下载次数: 38

发表于 2007-10-23 12:33:33 | 显示全部楼层 来自: 中国上海
还是不能加入??为什么????
发表于 2007-12-8 20:00:03 | 显示全部楼层 来自: 中国浙江杭州
我这方面的知识十分欠缺,了解一下也好。谢谢楼主!
发表于 2008-8-26 11:00:16 | 显示全部楼层 来自: 中国福建厦门

呵呵

下了用了,提示错误啊!
发表于 2008-8-29 16:30:54 | 显示全部楼层 来自: 中国辽宁营口
Bxh.rar (882 Bytes, 下载次数: 11)
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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