QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
3天前
查看: 3269|回复: 7
收起左侧

[求助] 如何在DCL文件中的下拉框中显示指定文本文件的内容?

[复制链接]
发表于 2008-8-28 08:48:29 | 显示全部楼层 |阅读模式 来自: 中国辽宁鞍山

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?
8 G5 g( N6 @5 t6 ~即在一文本文件中列出:  \" |! E9 ^6 I' z( w; a
中国) ?! M3 H' i9 C$ P" z$ |. s, |3 [
英国
8 Q& I, T( F8 T3 }  O" v( h美国
* J& {; H. O  C; \( l- c( ]在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?
. [# e" @/ w7 I+ z如何实现这样的功能???
头像被屏蔽
发表于 2008-8-28 16:50:45 | 显示全部楼层 来自: 中国江苏南京
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2008-8-28 19:28:05 | 显示全部楼层 来自: 中国浙江宁波
如果只是想在当前CAD中实现,比较简单将增加的项存在列表的变量中即可;如果想CAD关闭后再次打开还可用,就要把列表内的项存在文件中,如txt文件,程序启动时读取txt的列表项,然后加入,新增要写txt文件;

评分

参与人数 1三维币 +5 收起 理由
★新手★ + 5 技术讨论

查看全部评分

 楼主| 发表于 2008-9-5 18:37:07 | 显示全部楼层 来自: 中国辽宁鞍山
二楼的能不能提供一下实例?随便编写一段LSP程序?
发表于 2008-9-19 21:55:06 | 显示全部楼层 来自: 中国四川成都
楼主又发贴了,但无人接招。建议各位高手对求助类的帖子经常关注,直到解决为止,也不枉我等菜鸟的一片期待啊,谢谢
发表于 2008-11-29 22:06:41 | 显示全部楼层 来自: 中国四川成都
本人编了一段AutoCAD Lisp程序,已供作个参考借鉴。$ l. A) X6 J$ t1 I2 f3 r- n
1.首先,如何将文本文件中的词条读入程序中?0 v7 u7 W' q" f6 J4 z
    假定pop.txt文本文件的路径为:e:\ck
' o+ H) R4 R& u   且pop.txt文本文件的内容为:* i$ o; y- w! H4 _
中国5 ^- T% `, x$ w) G! t9 g; U4 h  ]
英国; l8 p1 t  }3 W( j# v' |  O
美国1 i) ^3 h% S. S+ R0 S3 M

6 X1 B9 `( [$ G6 I8 ]4 |   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  . |& p( `4 x% [3 a* d2 ?* U' s9 m5 B
2 L2 m( t! P; S1 ^, N9 a% P
   ;;读取文件中的词条! u- q4 f. j* m: ^9 S5 k
   (setq pf "e:\\ck\\pop.txt")
+ Q4 o' {: O" W; M   (setq f (open pf "r"))) R5 R" O9 v" F5 N- |
   (setq txti (read-line f))7 m2 m: \" X! l. |/ x7 }7 A
   (while (/= txti nil)
4 `4 B" a  W& D9 ?: Z5 `1 i5 P      (progn
0 c2 ], E% V& ^( W' K+ Q5 a          (setq txt (append txt (list txti)))& }2 T, R# }- S8 f$ r# g& R# l4 j
          (setq txti (read-line f))
/ ?! R, v3 ]: J: M4 F7 C7 r/ y      )+ {! Q# F, a! ^# `. ?
    );end of while# y8 v4 C5 y( Z$ }
    (close f)
& S0 J5 m5 f* e- g- m% P. C0 c0 l% Q& b
2. 如何将获得的词条加入对话框的弹出列表中?3 N: |1 y2 H: c% N( _: x) k. q
   创建对话框文件pop.dcl如下:
$ L# a* P9 Q, m2 _0 f9 O+ e   pop:dialog{* I$ S  t- W- p
          label="弹出列表应用";
5 }. G+ v' F! W5 C; {2 k         :row{
8 u+ U* `) R  D9 D              :popup_list{: E7 H& L0 s; M" X- X3 q- }
                         key="pop_i";, C$ j: H* `& w/ o8 ?
                         width=20;
) D1 e4 E) N) U                         }
- E* k" `% q5 _; s: I0 O             }
8 t! }( b1 {6 X( W2 E5 ], [! ]$ @         spacer;$ x* w* Z9 e- ]( ]+ j( ]
         ok_cancel;3 V( T. Q1 N7 l) ]* ]3 z
   }3 d3 |& _% c5 q* u

: p5 y! X! r# @' k7 c' \4 M& f4 B   编写加入对话框弹出列表子函数popup_box 如下:  
, l0 k$ ~5 S! y- S% p  (defun popup_box (list_name list_tab)   
& T& ^7 D0 Z! Q6 M) {; }/ ^      (stare_list list_name)
& \5 |$ ~# P* ]! n0 u      (mapcar 'add_list list_tab)
$ r- Z, x- M3 s$ o; [( J1 [% |      (end_list)8 m- R  _$ F! M4 ?5 M
   )
& }1 O! G& U7 @
6 r9 \8 i3 J2 `3 }+ {- c% p; s3 d  在主程序中编写如下代码运行对话框:
- X# I1 p, Y+ j   ;;运行对话框  k; i! G1 h# ~0 @+ i; ~, s- Q8 v
   (while (< 2 what_n)
, q, Q. a+ q2 `# X: K! O6 y$ U: a      (popup_box "pop_i" txt)   ;加入对话框弹出列表
# V* V0 a- F' u7 a, Q      (action_tile "cancel" "(done_dialog 0)")5 q% V. R* G' w* P
      (action_tile "pop_i" "(get_zhi $value)"), c' i. W# n' Q: Q
      (setq what_n (start_dialog))5 G+ n  N4 u: t0 i
      (cond ((= 1 what_n) (do txt_zhi)))5 R. G( j0 q/ C: @* `4 }
    );end of while* V) z! J6 \" Q1 \
    (unload_dialog dcl_id)
+ `. {7 E! a3 ]$ k) r( G8 ^
% O4 i; P( q' _, J7 V6 l- E" `  至此,编程大功告成了。1 p) S* V' z1 ?. ?* n3 C0 t' r+ k

9 o" y+ d9 `4 r2 X; Q[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:
/ e! d: Q2 M. [% g2 p$ l
' W0 J9 g. B6 z+ f6 m  编写加入对话框弹出列表子函数popup_box 如下:  
5 n3 {% O! |! X& _/ B! o2 C8 M" d! V  (defun popup_box (list_name list_tab)   
- i2 F- Y4 v! r. \4 I& a      (start_list list_name)                      ;更正的一句
% n3 E) a( X5 d) f- K      (mapcar 'add_list list_tab)
& l& J) d& t2 Q      (end_list)- d% d) Z7 T3 C; T! F2 I3 L5 e
   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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