QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?# S- {2 Y% F: v; X  G  E
即在一文本文件中列出:3 P) ]+ ~# ]2 }6 E8 w2 ?; z% Y
中国  l4 S- K5 t% Q1 t, |) Q' q
英国
. V& u' s- A# l9 v' n! {美国+ x# P0 a* `" f2 A$ k6 r1 v
在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?! n! P8 p* z% y$ F' 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程序,已供作个参考借鉴。, q: }, }/ x+ K
1.首先,如何将文本文件中的词条读入程序中?
& y8 l5 f, W5 g    假定pop.txt文本文件的路径为:e:\ck ( {# i. ~- s. |# R5 N1 t; s
   且pop.txt文本文件的内容为:/ @6 f: `: s8 R8 \6 C8 `
中国
2 `; T( |' F" B英国, i6 G3 c! Z# Y4 f- i5 S
美国& ~% d' e0 z, B
/ R+ K! _3 \% T! K
   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  1 X# @: V. u% _3 [2 t! B% C* Y2 E
/ S1 y2 ^" [* A1 E; H9 S) p" a; s7 s
   ;;读取文件中的词条- j8 d/ E( ]& \; @7 v. W& n
   (setq pf "e:\\ck\\pop.txt")
, R9 s8 w, e% @' a" G1 C$ Z   (setq f (open pf "r"))
3 J/ d- s/ p' G& y" x3 R! i   (setq txti (read-line f))
1 B* Z# L' o! Y3 ]9 ~7 Y   (while (/= txti nil). d6 r1 n, k6 c2 \$ X9 E; k
      (progn
! Y& X( ^9 Q/ \( @          (setq txt (append txt (list txti)))
* Y' M4 A' C, r+ k# @8 z8 E* F% e6 U          (setq txti (read-line f))
3 z* p, T. N# o! Q0 w      )
6 `3 J7 j. G1 V    );end of while$ `) B# @$ P7 C
    (close f)8 G' c' t; ]" _# D# R. l

( l% d9 e% _# y8 b2. 如何将获得的词条加入对话框的弹出列表中?
* f1 N2 N: t* S+ V9 i+ r: h8 u   创建对话框文件pop.dcl如下:
* x3 {) E1 w+ k  }+ \   pop:dialog{
: q5 n/ q( }' H: Z4 m          label="弹出列表应用";$ r9 E) _3 _3 v4 i! d# n& Q& q! _
         :row{
, v4 z( p- i& z9 g              :popup_list{* H) p8 `6 E; p# C6 [
                         key="pop_i";; p* J) l2 j7 T+ R" L" O' f" K. S
                         width=20;2 v7 H% m4 U! R+ e! n' B
                         }) K. W( `" ]4 \) ]
             }" ~; y% @$ n  h/ n1 Q0 B8 k
         spacer;
9 _. c1 G& r1 I         ok_cancel;; Z5 o/ M+ h, x3 w1 [0 l6 C: c, D
   }+ P: q' s" H3 c, A" ?/ k
) x2 Q4 G* f, @3 d. T
   编写加入对话框弹出列表子函数popup_box 如下:  2 f8 I3 B7 s' @# }
  (defun popup_box (list_name list_tab)   0 T1 h) [5 ]5 V1 F$ S' f
      (stare_list list_name)/ O5 b3 ?# W# C/ l
      (mapcar 'add_list list_tab), J# Y* O/ G  Y, n" J
      (end_list)$ k5 n5 {/ ]8 h% Z1 U- J4 o. v" d8 c
   ); o. f! v! T$ P( Y# j. Y8 K

. {& D. A' L* ~2 w; g& v  在主程序中编写如下代码运行对话框:
& f+ C! Z, A9 q! g  r) Q: `, v   ;;运行对话框& e4 e) z" v3 L) P5 x! N
   (while (< 2 what_n)( Q4 D1 f! [2 m1 k' z$ _8 f8 r
      (popup_box "pop_i" txt)   ;加入对话框弹出列表
% z1 ]& x' E6 R      (action_tile "cancel" "(done_dialog 0)")
3 H( U# a8 V  P      (action_tile "pop_i" "(get_zhi $value)"); \% y. F1 T3 p) q
      (setq what_n (start_dialog))7 e8 A/ |9 `6 h7 @
      (cond ((= 1 what_n) (do txt_zhi)))
+ h6 y# x; r. r    );end of while' S" u/ N$ _  c
    (unload_dialog dcl_id)
9 B" I7 O2 P8 E1 k4 T: [# X0 L+ m9 {, O% O5 u2 ~* J5 b0 X
  至此,编程大功告成了。
/ X; g) H1 f) h2 N+ T# ^+ s
% y5 x! n- W. M  M0 Y# R  W6 j2 T[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:9 f& N/ t% \, S! _/ [$ w+ V4 P+ ]
' S+ R% S2 j) L) K% c
  编写加入对话框弹出列表子函数popup_box 如下:  8 T0 Z, N1 B5 a  @# O* `% d
  (defun popup_box (list_name list_tab)   
- Q. e. z5 [: i0 a* r8 C/ c      (start_list list_name)                      ;更正的一句6 V+ X- E  L* o1 g) M- C
      (mapcar 'add_list list_tab)
% u8 z: _/ O# P4 V% l9 s      (end_list)
# t' L2 N( w2 Z. ?% H4 T# P3 C" T   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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