QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?* G( a- K1 K% T5 @, W. K
即在一文本文件中列出:
! D! y" J; r) Z, h; u中国' \8 P7 f/ c! O6 D/ O% G( X
英国, U! m; d( P- I: t: C
美国/ u5 H. F8 ?9 Y0 l. s" [
在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?
1 O& y# ]  L( G8 w# N如何实现这样的功能???
头像被屏蔽
发表于 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程序,已供作个参考借鉴。
  j+ u; l) O( C' D6 U+ V1.首先,如何将文本文件中的词条读入程序中?
" r& x5 O1 F& W: A3 l    假定pop.txt文本文件的路径为:e:\ck
4 W4 w; ?* g% e# x   且pop.txt文本文件的内容为:* @5 s9 G$ H$ n3 m  u4 ]6 V: b
中国
& k" n' r) ?6 }2 O英国
4 R% Z( E8 c) U4 X. x9 ^- T美国
8 ~+ w( |- |, s  Q, l! [* G9 V, z5 l9 |- f2 J
   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  
% U: r$ o# p8 ]- N. }# z  }' P
5 d, ~. l0 y- {( U6 Y   ;;读取文件中的词条- q, p' X$ _' W3 T& W+ Y
   (setq pf "e:\\ck\\pop.txt")
+ K1 x: ?( r( a5 P! `* }6 y- g   (setq f (open pf "r"))/ f5 y( J# u: Q' b) f! R8 k$ R
   (setq txti (read-line f)). s! F/ k: F: O+ i1 f8 h$ r
   (while (/= txti nil)
" P) c( Q& B3 S& W      (progn' p" E0 |& v; a3 o4 F
          (setq txt (append txt (list txti)))
% ?) G5 [6 r1 W3 ~$ M  S6 h          (setq txti (read-line f))7 L  M  e! X' [. u) x
      )
0 p3 t8 ^7 n! B$ d0 o0 Q4 ?! n    );end of while  K6 h' g# f9 e# N
    (close f)" j( ]7 e; K6 l. U- ]) w- K# x

' i0 |; d. @# Y3 [9 \' u4 j- _2. 如何将获得的词条加入对话框的弹出列表中?
! B+ U  ^7 m1 L6 H   创建对话框文件pop.dcl如下:
8 i; U1 I( ~* n. K1 ]   pop:dialog{
# m# D' b: Y, B) D. ^3 l          label="弹出列表应用";
8 y" Z. Q8 u, r) Y         :row{; z: v6 b1 N% c4 L2 V8 J
              :popup_list{
5 Q, y: j: z; m  Y, e5 u                         key="pop_i";
( `+ @4 _% r6 E' V0 H' J6 P5 y5 s                         width=20;
: j  s" S& N- t- H' N1 t9 G% `                         }8 W6 l3 z! c  ?7 c( `
             }
) S. c8 Y2 p& E  G. b         spacer;% j8 _0 ?+ _" B$ i& Q: _& I
         ok_cancel;2 E2 w. y0 \8 R- J" c1 t
   }
1 c# [$ W  E3 d6 X- k6 v5 U% ?- M& [) C( H
   编写加入对话框弹出列表子函数popup_box 如下:  % |; s+ D; _" D* e
  (defun popup_box (list_name list_tab)   
* Y/ L' @5 M( R  i      (stare_list list_name)) w9 e1 U4 s( W: `$ [4 w7 ?
      (mapcar 'add_list list_tab)
# `3 }# G9 Q5 v* g9 S( L      (end_list)# C# i; C7 b; S* v& H, O- u
   )) n" ?2 Y6 [) k" e3 y
; u7 p" t9 [9 W/ ]9 H' a  M& ]8 U
  在主程序中编写如下代码运行对话框:; h# `2 \- T- W8 j
   ;;运行对话框# ^+ n- d5 ~4 V4 e8 j% Y, o
   (while (< 2 what_n)
1 q* u% _8 D, K% U( g$ @4 Q      (popup_box "pop_i" txt)   ;加入对话框弹出列表
6 Y4 |/ r6 R% D3 W* h* J6 g3 ]+ C      (action_tile "cancel" "(done_dialog 0)")+ o" i% [5 p% L
      (action_tile "pop_i" "(get_zhi $value)")
) Z, Q# h4 H5 g4 F8 \; d      (setq what_n (start_dialog))
5 p! w8 l5 C+ p+ r9 X% U      (cond ((= 1 what_n) (do txt_zhi)))
% T( h5 Y5 m, V" P$ o; D& w) p7 T    );end of while
1 T5 R! V0 G& c. {  c" E1 O    (unload_dialog dcl_id)1 r3 M- S- W* P( q: s
; M0 S0 T2 I3 ^1 y
  至此,编程大功告成了。. g. `3 Z/ E% z; O

1 Q& ~) Q; {7 c1 z" F1 C8 `[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:
, g$ D! v6 C! c  n* |; p: H
6 P+ r* S; n: Q" o- b  编写加入对话框弹出列表子函数popup_box 如下:  ' f) \" s8 Q3 |. _6 U
  (defun popup_box (list_name list_tab)   
/ {+ L5 d8 b4 ?3 f& o% ]      (start_list list_name)                      ;更正的一句: x& Y, O/ f+ u6 b8 b  A8 V% f. v) N
      (mapcar 'add_list list_tab)
& u& d: w9 z1 J# k/ y! ^      (end_list)
' N9 \! y. P  j   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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