QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2926|回复: 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) ;标序号  
/ m( D8 Y; L: Y  (setq radi 5)                         ;圆圈半径  $ b, E# Z* u9 D1 Y: s
  (setq txth 5)                         ;字高  
& B- j/ Z: a8 h; M) M  (if (not bx): _" F8 S& p: j9 l- S6 u/ G
    (setq bx 1)9 D6 I) C& k5 a# x+ p' _( m9 ?5 w
  )
: B) y, ]7 {2 t3 I) E. R    / k- y0 a& j4 g+ N7 F! x' j
  (setq p1 (getpoint "\n请选择起点:"))                    ; 在零件上选一点  0 k6 Y' _- G8 [7 v
  (setq p2 (getpoint "\n请选择第二点或回车表示无第二点")) ; 标注位置处一点  
' s3 j, Y9 D( p  Z0 D  (setq bxh (getint (gstr "\n请输入序号" bx)))            ; 序号数  5 z& u3 T0 `8 k  J4 F' m2 F- V" Y5 B
  (if bxh
: z8 c0 {# U" J: Y    (setq bx bxh)2 k% h. E* F; s2 z6 C  N
  )  F. g! w/ A( z" V* D0 [
    
7 d/ ?  ~) e0 r8 b* j, m: A  (cond8 W2 T0 x$ \' S* I
   (p2  
; A5 S6 a- R/ u2 y    (command "layer" "set" 2 " ")  ;改到画细线图层  
' Z6 @9 T4 @# V# n+ p% w    (setq ang 1 (angle p1 p2))
1 L& f1 s, T9 l3 @- h7 P% {6 |7 k" l    (setq p3 (polar p1 ang (- (distance p1 p2) radi)))
7 F9 t! g1 d* p9 U0 E    ;; 画圆、线  
: V3 Q2 s" V3 o6 W    (command "pline"
' d) D+ V, e. @+ h9 h- p! s& n             (polar p1 ang 1 0.25)
: _8 T, ~! a- ?: l             "w" 0.5  0,5 "A" "CE" p1: C4 O( m- p/ o8 }3 G
             "A" 359.9 "L" "W" 0 05 s9 b+ G* F* W. J  \3 o
             p3 ""# I4 P  m' @6 D* d
    )) C% Y* O, ^; J( f' U0 E5 v9 a5 ]
    (command "circle" p2 radi)7 Y8 C8 U  z1 ]: S  f: p
    (command "layer" "set" 6 " "   ;改到写文字图层  9 ]: a1 T5 ^' W/ l" |$ H8 e! R, u
             "text" "J" "M" p2 txth 0 bx) ;写文字3 D' s4 V7 T" E7 c2 g
   )
  B9 t$ V1 r' [   ((not p2)                       ;如果在零件中直接标注  5 q3 Z. X+ [* o) D: t
    (command "layer" "set" 2 " ")  ;改到画细线图层 ; a) ~, t/ j1 D) W2 I/ x# [
    (Command "circle" p1 radi)     ;画圆  
; W6 a2 U; Z( T# ~4 w% M7 Z    (command "layer" "set" 6 " "   ;改到写文字图层   + J! g% L8 B0 E5 Q( k4 ]1 R8 k% u, C
             "text" "J" "M" p1 txth 0 bx) ;写文字
; z2 o8 Z7 q9 d! g! I3 A1 p2 V) }# V  ))  G* I5 G) c2 \2 }) T; I2 m/ _
  (setq bx (+ bx 1))$ d6 x) ^/ p0 w  K- V
  (princ)4 b9 r) B5 ?8 q6 G; S7 D
   . Q- t. H  F* j6 |6 z5 b! X; y
);-----------------------  
& }9 D3 T& g" L  v;|% s5 o. S3 J4 W" f7 A
程序的使用方法,在Command:提示符下,键入(Load"BXH")
& n' e# a/ X8 @; |. S2 K' j回车后再键入BXH,然后按屏幕提示输入对应项即可。
, J0 F& i  ?5 z8 m4 d6 g/ h因为这个命令经常使用,建议把它装在菜单文件,
4 v  X- [- ]3 m在ACAD.MNU适当位置中加入一项:  2 D; u4 N1 _1 R  }2 [1 u* _
[标序号]^c^c(LOAD "BXH") ;BXH
0 K5 Y$ e  _; s1 f;用鼠标点取最为方便。& s) \6 ^2 ~' x5 y' l
|;

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 )

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