CAD设计论坛

 找回密码
 立即注册
论坛新手常用操作帮助系统等待验证的用户请看获取社区币方法的说明新注册会员必读(必修)
查看: 3346|回复: 9

[经验] 关于autolisp系统命令"text"的调用。

[复制链接]
发表于 2009-10-12 09:55 | 显示全部楼层 |阅读模式
程序中用到命令:
9 R1 P& o% H4 j! i# Z! T2 v(command "TEXT" p1 "" "" p2)% Z" ~9 V5 K1 W$ ~: b0 @, G

3 n3 @6 k. ~7 N- }& |; u, A在P1点插入默认大小,旋转的文字p2。p2为前程序得到。" ]5 p$ g( a5 a- e% o: [' z% d
我想在p2前加入字符串,怎么实现?3 i$ F5 U3 B$ Y. A1 z
就是说假如我想在CAD里面显示的文字为  价格:p2
6 G2 s8 z$ v0 a# v+ N, V5 O这个"价格"怎么弄进去?
9 w- X: y1 {6 r5 z& p. w2 [6 m1 ~) z  \, I9 ?
===================================% y, L( o8 n4 n' K
& h& Z+ B, _# r1 P$ U/ w9 J+ q
找到方法了,“text”命令内无法进行计算。
" A- C$ X, R7 H: q/ E只有用rtos函数,先把所有变量值转换为字符串。
( ?. u: w3 Y5 k0 @, W2 @) n然后用strcat函数合并。
. q. {, f$ \% ~( a4 a$ c8 g  K" a- e2 I& Z
例如:3 F. p/ c' m- g% X/ q
  (setq str (rtos p7 2 2))                     ;;把变量p7的值转换为字符串型5 w! [/ u2 {5 l) F6 i  q
  (setq str1 (rtos p8 2 2))                   ;;把变量p8的值转换为字符串型* o) ?: W6 G! L, Q4 g+ f) H8 [8 N
  
7 p: t+ n  l6 y4 e$ s1 Y  \' M; G  (setq all (strcat "合计" str str1))         ;;赋值all为两个字符串合并
: @( J  x& E- h/ F. [- a- S) i4 x$ ]" J# u* K6 X" _+ s7 ~# r
然后再用text命令输出all变量即可。。。。

4 ~" I# y4 T9 h% A0 [; U$ a5 d% n7 Q1 P2 H% Q# V
[ 本帖最后由 bori 于 2009-10-15 15:51 编辑 ]
发表于 2009-10-12 10:15 | 显示全部楼层
分两句不行吗?
: P% \5 I3 b: Q5 n- r5 o7 ~(command "TEXT" p1 "" "" "价格:")
$ p- e; A+ W( ^; k3 R(command "TEXT" p12 "" "" p2)
 楼主| 发表于 2009-10-12 10:34 | 显示全部楼层
谢谢。0 j2 w% V, [3 A% A7 l& z0 l
这是个好方法。. a4 d& \8 K4 d- W- l( P
但是,我要这两个显示在一行,这个现实位置,不好确定呀。。: J$ g: ?% G! m# i8 e: M$ Q& {
另:(command "TEXT" p12 "" "" p2)4 n  s5 j4 r0 @: v' V) C- F
你这 P12 是什么意思??重新定的一个点?
发表于 2009-10-12 10:45 | 显示全部楼层
p12是p1后面涉及 价格:1000元 相对位置的点,是你自己算好的点# K& f  j  m# x
如果设定相距为10,则:
. m! @0 ]) ?& T# R4 e& j
+ d, t  U0 I9 h) ^6 g(setq p12 (list (+ 10 (car p1)) (cadr p1)))$ C- @: p1 ^5 G% L
  y: c  a' G3 r5 ?
[ 本帖最后由 xhq1954425 于 2009-10-12 10:58 编辑 ]
 楼主| 发表于 2009-10-12 11:05 | 显示全部楼层
哦,貌似这样有点麻烦,如果能直接像VB一样,字符串跟实数结合输出就好了。
 楼主| 发表于 2009-10-12 11:19 | 显示全部楼层
原帖由 xhq1954425 于 2009-10-12 10:45 发表 : x0 ^7 A6 V; K( @9 _: |7 m
p12是p1后面涉及 价格:1000元 相对位置的点,是你自己算好的点
2 j# y5 t/ \1 r; s' U* t如果设定相距为10,则:
& U* A, j& L4 \/ R4 x/ r8 w
: B; X% q; d5 L& z4 Q(setq p12 (list (+ 10 (car p1)) (cadr p1)))

! Z  G1 r" m9 g% B% t# B- ]1 H% H" E# Z1 Z+ B
谢谢,用起来还不错。$ R5 E" d: l5 w
还让我学了 car cadr 的用法。2 Z1 C& A& e* ^  f/ L
非常感谢。
 楼主| 发表于 2009-10-15 14:07 | 显示全部楼层
嘿嘿,终于找到能解决的函数了。。
发表于 2009-10-15 14:15 | 显示全部楼层
原帖由 bori 于 2009-10-15 14:07 发表   \3 v# x- z& t5 _
嘿嘿,终于找到能解决的函数了。。
: g: m2 h* O5 o) E. j
发上来学习一下!
 楼主| 发表于 2009-10-15 15:49 | 显示全部楼层
原帖由 xhq1954425 于 2009-10-15 14:15 发表
& r& o, J5 T' l  S( t/ j8 Z+ n" m7 N, I6 A- \
发上来学习一下!

( B9 r2 Z# o- _
3 P/ \+ ]0 q4 ^! }. g: X+ D4 J$ P) M) f  w
大哥,先谢谢你之前的教导。
. z6 c" C8 |9 E3 i让我学到了car cadr 的用法。
: e% W; X# k0 K: Y9 X: m- Z4 Z% p% B1 |- c: q
函数,帖子里已经更新了,至于别的部分,是针对我单位线切割等加工核价用的。
1 b  p. I. O* [5 s% r+ p5 ~貌似柔性很低。所以就不放上来啦。
发表于 2009-10-15 16:15 | 显示全部楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于|免责|隐私|版权|广告|联系|手机版|CAD设计论坛

GMT+8, 2026-3-5 08:54

CAD设计论坛,为工程师增加动力。

© 2005-2026 askcad.com. All rights reserved.

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