QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?
; Y' h& i0 i4 a5 i% Y即在一文本文件中列出:
0 `* M1 l! f+ y8 f1 {1 w7 `中国
  n: R: Y( V8 s: F9 j英国1 o) e# n2 ?" g' ~, I& j( T8 ]
美国- h3 I  i- {0 c, f8 A
在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?$ E* s0 y5 f' n! A( a0 s
如何实现这样的功能???
头像被屏蔽
发表于 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程序,已供作个参考借鉴。
' B, I, ~) c- f1.首先,如何将文本文件中的词条读入程序中?
5 o! R$ O1 C; @  h3 |$ E    假定pop.txt文本文件的路径为:e:\ck . m8 L$ e( H$ {1 ~% R4 X4 m/ G
   且pop.txt文本文件的内容为:4 X& a' p! O" R; @3 f
中国+ @) e& U# P' H& r( v. @9 H# ?
英国
$ _4 G4 r4 O+ Y) m美国* f; R4 Z; [2 Y2 H

. O" f3 \4 ]3 w. L   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  
9 A: }& [% S9 \
1 N1 v7 \( K; {% z' _' ?2 q   ;;读取文件中的词条
# m" y- w6 d. s   (setq pf "e:\\ck\\pop.txt")- [8 N3 B3 a7 v- |) z
   (setq f (open pf "r"))0 b* A4 q" z. b0 V6 P
   (setq txti (read-line f))
8 X4 k( F4 w. \# f: J   (while (/= txti nil)' o% J9 q. v  R( ~: ]& d7 s
      (progn
* M. @- W! n6 ~% h          (setq txt (append txt (list txti)))
" ?* Z% q6 }1 M0 n3 d          (setq txti (read-line f))
7 ~6 b4 g9 t4 i" U, v      )4 C- |; V7 k. J) W
    );end of while1 A5 k& y* H% H
    (close f)% r# M2 [. N7 }; O

8 x) B$ j" f( i& f( @9 I! N! S2. 如何将获得的词条加入对话框的弹出列表中?& R& Z6 e; N3 j3 W
   创建对话框文件pop.dcl如下:  r. h) ?. a; n! c5 z  Z
   pop:dialog{+ ~8 w. S: k" v3 v9 q
          label="弹出列表应用";
2 A* k$ M% x4 k  U+ k0 k9 Z8 {         :row{3 ^6 h4 ?7 J* O6 v* U2 e) ~
              :popup_list{- [) J9 [* T/ f- K
                         key="pop_i";
( B3 k6 X$ c$ A9 e8 H+ S: |% R                         width=20;
' y5 c, i0 _6 X+ Q$ r                         }# e& N0 |2 _& J, \" I- \+ R% P8 m7 H
             }
1 u2 D" F0 ?' P0 b3 e- y- z         spacer;
* y: f! {& i$ F# ~' G         ok_cancel;7 u- D! \2 o* i) e1 Z4 s' R# x
   }
# a  {' T) M1 @) K+ k  @$ m9 J
1 d4 s6 N$ w6 ^1 ^" {9 W   编写加入对话框弹出列表子函数popup_box 如下:  
  q1 W9 c1 u! B% Q7 q# ]2 }4 Q  ]- P  (defun popup_box (list_name list_tab)   # K. H" j, C! _3 ]4 N3 R1 c
      (stare_list list_name). Y; e% {$ j4 a: e# h
      (mapcar 'add_list list_tab)
# ^8 @+ A: h: |3 X- C7 Q1 G      (end_list)% O, X( t( |4 a; ^5 b' y
   )
1 ~$ D$ y* f5 F7 S% g9 a7 z' X5 x3 q& M: h4 J
  在主程序中编写如下代码运行对话框:
8 N+ X3 v/ H/ Z  _   ;;运行对话框9 d4 V. y  \0 c. r
   (while (< 2 what_n)
) B: M/ ~: j. i7 M& a- }      (popup_box "pop_i" txt)   ;加入对话框弹出列表
/ Z- i4 O. a: a) u6 X" u8 L      (action_tile "cancel" "(done_dialog 0)")& d& j+ q  \1 ?" J; F
      (action_tile "pop_i" "(get_zhi $value)")
& L, `0 j/ f' ~, R      (setq what_n (start_dialog))3 E4 I* z" L( w1 P* g
      (cond ((= 1 what_n) (do txt_zhi)))
' w' f* ?- h* |! ^' c; g) ?    );end of while5 q& k; y- h) `8 \! `
    (unload_dialog dcl_id)2 w/ b4 h  _8 c% c6 y. e

) a  d5 \) O  D; i' P9 j  至此,编程大功告成了。7 v0 C8 `+ i$ k7 a/ r) o" F! B
+ d$ c. R% C5 i8 K
[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:' c$ U, W: U" i6 K. v& H. G+ ?
7 s" R9 q2 B: b! [" P
  编写加入对话框弹出列表子函数popup_box 如下:  
4 ]6 A5 C+ j% m  (defun popup_box (list_name list_tab)   , h6 G9 C; W) B) j  d6 H
      (start_list list_name)                      ;更正的一句
" ]; r( w$ T7 V; J1 v      (mapcar 'add_list list_tab)- I0 l; c; a( h$ W& l
      (end_list)9 \+ S7 E1 f2 T
   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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