QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3386|回复: 7
收起左侧

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

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

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?' s$ G* u' q; g; V% L" R
即在一文本文件中列出:
. k  @% z" x: t6 X6 y中国
3 ~1 R7 v, W: \7 b8 z+ I: }/ F. D英国# Q4 P# w2 y/ w" ]+ F9 K9 f$ P
美国
; R1 S3 ~$ V  y! k6 G( f在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?
4 ]8 ?$ Z6 j  ?4 f5 y, [3 h7 H, u$ L如何实现这样的功能???
头像被屏蔽
发表于 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程序,已供作个参考借鉴。
% W1 v! t/ N. z2 @, U. h, W' E1.首先,如何将文本文件中的词条读入程序中?- [4 |& ?# a$ S* y2 w
    假定pop.txt文本文件的路径为:e:\ck . m/ a5 Y+ n. B) _; ~  H
   且pop.txt文本文件的内容为:) e5 _( L/ f( z$ G" i( W
中国
/ m* }- v6 m0 \  p* j3 f9 ?英国* n% `4 Y% i2 @9 W0 }
美国
9 p8 ]4 W, y7 a' {/ D' ~- |4 j8 F3 ~9 Z3 h3 K6 b
   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  
+ x9 h) F; _( ?; d/ K3 Y$ g9 o' ?% a6 c0 O; R% B. c
   ;;读取文件中的词条
; ]+ p9 M* v8 g   (setq pf "e:\\ck\\pop.txt")( u. T5 Z) m1 ^; ~/ r
   (setq f (open pf "r"))% s4 @( P& F4 F- E, U
   (setq txti (read-line f))
: O: @1 h7 R; ?+ n" N2 D   (while (/= txti nil)
# i& V, J8 p& _' p      (progn, \4 ?4 y2 O  h( k- q2 B6 z
          (setq txt (append txt (list txti)))
7 V; W7 d1 _% U* q          (setq txti (read-line f))  T. ~$ Q4 U$ N
      )
! ~! s4 _: ^  r    );end of while
1 Z( v0 q! |  @    (close f)
3 H5 B6 J  p$ o  `! p! |2 Y
! N9 P3 q3 k& o9 o2. 如何将获得的词条加入对话框的弹出列表中?
% }- t8 c8 F0 c4 d- G8 {: v   创建对话框文件pop.dcl如下:1 i7 }% o: v0 |# m" D  C4 r
   pop:dialog{
$ N5 g1 W- h1 V" f          label="弹出列表应用";5 w6 Q3 a$ [' f/ Z/ v/ d
         :row{' M& ^( B: i  Z% n5 s
              :popup_list{
/ p+ r9 p+ Y- |) `4 v                         key="pop_i";
* c; R- Q7 b& o/ R                         width=20;
/ M0 d* E8 m( \2 @- W- U* S4 w                         }; c1 o  E2 l/ ?0 y8 D" w0 H
             }4 t* m, q; A- ~8 ?! w
         spacer;- h/ L5 p& _, \+ v
         ok_cancel;9 y( b& @3 E% N! |4 |$ W! R/ {# a" C3 W
   }# ?$ X0 G& q. |  W* d

- o" k, N! _# z% J$ h   编写加入对话框弹出列表子函数popup_box 如下:  0 a4 I, }* e  o* T* c- p+ `
  (defun popup_box (list_name list_tab)   3 s$ w. @0 T! @  k7 f4 d
      (stare_list list_name)
: M9 ^2 c- ~4 Q/ z1 U# d$ Y      (mapcar 'add_list list_tab)7 |, H+ l- G# ^+ S
      (end_list). R  @  \! [: W1 O
   )
2 Y4 X) T. b' M. x' v. n% n0 |9 \
9 u+ d; Q7 {) H: {  在主程序中编写如下代码运行对话框:
* x4 h5 O: N) G$ n   ;;运行对话框. O0 r  F) d. B6 C# d; M
   (while (< 2 what_n)8 y& {) a8 d  U9 `* R. ]" r3 b( ~
      (popup_box "pop_i" txt)   ;加入对话框弹出列表
' F. a9 E6 E2 Z$ F* N* Y8 g& [" Z      (action_tile "cancel" "(done_dialog 0)")8 n1 B1 ^  k$ {8 @& P1 X% q
      (action_tile "pop_i" "(get_zhi $value)")/ _! s  f: p7 X( t7 z/ M" s* o
      (setq what_n (start_dialog))+ z" e' q1 p- `
      (cond ((= 1 what_n) (do txt_zhi)))
0 N8 V- |2 X& E$ P3 e, P    );end of while* y7 `  V5 H3 p. j8 P
    (unload_dialog dcl_id)
: V6 O, y# X2 G; C7 `( P3 ?/ w$ f
/ F- y& A, O* p0 k3 a) j$ `" @1 j. @  至此,编程大功告成了。
6 o# g* _* R* w6 d
  u- _( D" C% d9 u6 ^1 W4 ^[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:+ h3 D* I8 o9 B  _! k

+ X7 v9 X% A# c6 C- F, _  编写加入对话框弹出列表子函数popup_box 如下:  
" N8 l2 l. i1 X2 k) U  (defun popup_box (list_name list_tab)   % I! }$ ]3 g; E2 h3 J8 n5 F. b
      (start_list list_name)                      ;更正的一句0 N/ t- ]1 X# D6 g  d, [; O
      (mapcar 'add_list list_tab)( u9 l3 \) v0 G& W# s
      (end_list)
4 z0 f) d# K( D- b/ q. q2 ?   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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