QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2929|回复: 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) ;标序号  
; A( m: F- }+ M% s/ q) h% D  (setq radi 5)                         ;圆圈半径  
& [, n. f- V/ S+ d& d5 y/ p  (setq txth 5)                         ;字高  , _$ L2 u) T5 Y  b! E
  (if (not bx): D% T; M0 ^& C0 K* U
    (setq bx 1)5 B0 r, }  o5 L* k+ Q/ O
  )
7 `$ Y! L+ s8 N. w/ F3 I- o/ R6 i, |    
  d. U1 X$ w; R( n1 `0 p9 ?  (setq p1 (getpoint "\n请选择起点:"))                    ; 在零件上选一点  
( `& R& ~# g7 q/ J, w- I1 P* i  (setq p2 (getpoint "\n请选择第二点或回车表示无第二点")) ; 标注位置处一点  ! s, R" [- I! U2 t$ j2 j$ {0 _
  (setq bxh (getint (gstr "\n请输入序号" bx)))            ; 序号数  6 g/ e- u" U' k: u0 v
  (if bxh
1 p1 E% U  \4 Y' g: H! J1 d    (setq bx bxh), @5 f3 R/ P8 ^! P1 w5 w
  )
& D1 R' |1 b# K# g# S    
9 s( M% |( ]. u  (cond9 d! P) D& Y' J) Y% \# @
   (p2  1 D! j" `# g  r9 u# Q2 [
    (command "layer" "set" 2 " ")  ;改到画细线图层  
3 ^+ m2 i% w! J: B    (setq ang 1 (angle p1 p2))" A  e) s1 Q( P& t4 ?& `5 E
    (setq p3 (polar p1 ang (- (distance p1 p2) radi)))
: h% Z8 ~  R8 F    ;; 画圆、线  
3 Q) W: T6 g* W; ^5 _# z    (command "pline"
" m7 \  R; P  _: i             (polar p1 ang 1 0.25)
% Y. t7 R3 j2 y6 D0 b; G8 R             "w" 0.5  0,5 "A" "CE" p1, o1 \* I* a9 V1 C
             "A" 359.9 "L" "W" 0 02 J* g" {+ N% W$ L6 G4 F8 d
             p3 ""6 w1 e% |/ z  C# A+ G* ~4 D* e
    )! M2 D  s3 A1 \. ]
    (command "circle" p2 radi)
4 }# h! ^6 B: S' [# Q- u* a    (command "layer" "set" 6 " "   ;改到写文字图层  
2 \2 a5 c5 V7 s+ J! L: O             "text" "J" "M" p2 txth 0 bx) ;写文字
9 f( q7 X: }; b+ K   )
9 s3 K- I9 n% ^5 I2 e: s: d- l% r   ((not p2)                       ;如果在零件中直接标注  
2 u: E& ]" V, g: A/ ?. Z# j$ q% x    (command "layer" "set" 2 " ")  ;改到画细线图层   M" q, }# Z0 M: |$ Q3 _
    (Command "circle" p1 radi)     ;画圆  : f, w5 a, Z4 `- @' E5 _& j: u
    (command "layer" "set" 6 " "   ;改到写文字图层   
7 o9 W; {& S/ Z) Z             "text" "J" "M" p1 txth 0 bx) ;写文字
0 i2 Y* `% \/ R# S8 Z. z1 S: E  ))
8 Z0 V& K" I2 {: e2 Z* l  (setq bx (+ bx 1))
) ~8 X8 h6 ~5 `& n$ ^% i7 E  (princ)  w: |  Z0 ?3 D& ?! q( e3 o: S& s& @; j) z
   ) b7 T- w4 i2 m# F
);-----------------------  
- g4 E6 n2 Y& c/ v4 U- D/ x;|- e: ]( ~7 o; s0 k5 t
程序的使用方法,在Command:提示符下,键入(Load"BXH")
* Y( F$ ~; I0 d5 h1 Y6 z回车后再键入BXH,然后按屏幕提示输入对应项即可。  u* t- q% U- Y9 ?2 h7 T( S( w3 H
因为这个命令经常使用,建议把它装在菜单文件,
  m& `' o9 O' j在ACAD.MNU适当位置中加入一项:  8 r3 l! ~# D1 _/ N8 q. q
[标序号]^c^c(LOAD "BXH") ;BXH2 K# z& T2 i* C( S9 H$ j) q3 U
;用鼠标点取最为方便。5 a' D% x- E& \, s3 W9 T6 o
|;

BxhLsp.rar

744 Bytes, 下载次数: 39

发表于 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, 下载次数: 12)
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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