QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 2882|回复: 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) ;标序号  
  y9 b. k, L! p3 \0 D  (setq radi 5)                         ;圆圈半径  6 g* A7 Z* r( m6 h0 o" M& x
  (setq txth 5)                         ;字高  
- h2 w; `! o5 \; n  (if (not bx)+ j2 I9 f/ [( S2 z& W7 I8 V, k
    (setq bx 1)
( f& \9 z5 Z- m1 Z3 z  )+ C4 f) @$ ^6 @7 a1 @
    
3 R( t1 i2 {$ v4 w0 h/ T  (setq p1 (getpoint "\n请选择起点:"))                    ; 在零件上选一点  ( N8 D% V& T  E" B5 T
  (setq p2 (getpoint "\n请选择第二点或回车表示无第二点")) ; 标注位置处一点  ; r" L& H5 E  j* u4 Y
  (setq bxh (getint (gstr "\n请输入序号" bx)))            ; 序号数  # J! d( H& L) b; T. r& ?# P& L5 `
  (if bxh
$ C$ s$ e, K$ g4 G3 N/ I    (setq bx bxh)) n: [! d8 |2 Q  _( A+ R- u, d
  )
: x( d7 j! s4 Q9 G7 x% p" c, q+ F    8 s5 N% o# j2 W0 d- S
  (cond  I3 B2 @: s9 J
   (p2  
, b; S6 b, K* F  E8 j* [: L    (command "layer" "set" 2 " ")  ;改到画细线图层  ( O2 m0 ]. g6 n+ p
    (setq ang 1 (angle p1 p2))
, h. p3 |4 h3 o9 {* K. r5 s    (setq p3 (polar p1 ang (- (distance p1 p2) radi)))/ {# }* y( n# ?2 ^& Q' B( H
    ;; 画圆、线  ( u& M% B2 U2 y8 Z& s$ Y
    (command "pline"0 E1 w: W* `. Z' ]* n8 p
             (polar p1 ang 1 0.25)
2 F$ ^0 L; Z  v3 f0 X8 I             "w" 0.5  0,5 "A" "CE" p1+ f) l! S% R5 q9 ]8 T
             "A" 359.9 "L" "W" 0 0
4 z, A( ~! b) A0 r5 n             p3 ""6 c: `+ p  }9 s! E
    )
' a0 `7 z: o" R* ?8 _    (command "circle" p2 radi)
5 C# M( {+ S( Q9 W) {0 b* u4 ~- U2 t    (command "layer" "set" 6 " "   ;改到写文字图层  
) D$ E6 c$ W9 w, B8 F) N% T" _+ g             "text" "J" "M" p2 txth 0 bx) ;写文字5 D4 U+ ~2 L) n8 f" c7 }. x  e
   )
- K' h, {5 R, u1 B* y   ((not p2)                       ;如果在零件中直接标注  
/ F+ ]& f) W$ l' v1 H2 s8 ?6 b    (command "layer" "set" 2 " ")  ;改到画细线图层 
( Z' p* S0 k  `    (Command "circle" p1 radi)     ;画圆  . z; Z! D+ M& j. q# K+ k
    (command "layer" "set" 6 " "   ;改到写文字图层   
0 c$ V3 l( q) o             "text" "J" "M" p1 txth 0 bx) ;写文字
$ d' Z) t* r! ], y  ))
# i/ |( ], y( @; h  (setq bx (+ bx 1))5 d, l% v- G' c' \+ ]+ Z8 g  _+ Q
  (princ)
6 @+ k/ Y- _8 L1 k( I) l' \% ]* @   
6 M2 g  H( R6 N);-----------------------  
, I0 t1 W9 [) e  f, O;|
) O2 D+ [& V3 b9 f程序的使用方法,在Command:提示符下,键入(Load"BXH")& N4 _6 K$ U- _  [# f9 M6 {
回车后再键入BXH,然后按屏幕提示输入对应项即可。
! u5 j1 E) p8 X9 Z因为这个命令经常使用,建议把它装在菜单文件,
5 m5 F* Z$ ?! L% y" c在ACAD.MNU适当位置中加入一项:  & Q2 H; O( O1 P
[标序号]^c^c(LOAD "BXH") ;BXH
' ]" E- \. d6 X& ^( d* k5 Q) ~8 |;用鼠标点取最为方便。
  B4 P# j  f" 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 )

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