QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?
/ Z* r: q% s2 V, H. g! Z即在一文本文件中列出:
, S: K1 z; B* ?/ ^9 E; Y6 l3 ]1 @中国
- c0 `+ {% {' `3 l# D, a英国
7 D0 a1 O+ D, [( H美国' i+ v( a/ p' Y
在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?1 w) K0 f& o" r; ?/ d
如何实现这样的功能???
头像被屏蔽
发表于 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程序,已供作个参考借鉴。
1 |) q0 [6 |, s1.首先,如何将文本文件中的词条读入程序中?
9 a. j0 y9 `& [7 u# S& Y    假定pop.txt文本文件的路径为:e:\ck
: I$ g( Y" K5 G6 R/ h; f, f/ _; Z   且pop.txt文本文件的内容为:
, n7 u. H3 j0 Y8 |% T! p; q& m; }中国
4 f& Q! h! W% ?' W5 T+ J$ v, p9 G2 j英国
3 E3 _0 \& Z2 _6 l- `" F美国" c+ H0 X4 z- b! K# s; @/ }
, Y$ y) k$ f4 v9 w# }0 c
   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  
9 r1 e3 w: y- k2 h* ~, h
) R( V7 }' B; K! g2 C1 V9 B   ;;读取文件中的词条
- [" J; l, L' j1 K- A   (setq pf "e:\\ck\\pop.txt")
+ H8 ^  t0 @) ?' g4 `   (setq f (open pf "r"))# m. m/ y( o8 e6 z5 ]. \2 y% d% p
   (setq txti (read-line f))
' @* g9 B- p: U, y   (while (/= txti nil)1 }4 b1 ^0 Z3 m3 r1 ^6 `
      (progn; M! w; s% J- [& ]+ @' t
          (setq txt (append txt (list txti)))/ L. r; a. ]+ ^# n
          (setq txti (read-line f))
+ W8 ?; x6 y! a: c+ T      )
! d# j4 T/ _: z7 b; }    );end of while
- e# T0 C6 k# Q( C1 {- i    (close f)
4 ~+ ?' I' U8 G+ _: e2 n
  ~- _" e6 t; }6 e2. 如何将获得的词条加入对话框的弹出列表中?
5 u7 D2 S( c& F" r) T1 K   创建对话框文件pop.dcl如下:
, A$ K1 O6 c5 D3 G7 r" Z9 Y) I   pop:dialog{2 Y7 l- R% F* p- [
          label="弹出列表应用";$ J& z4 H' T9 }+ B$ P' T
         :row{
; o8 X# T3 b8 I. _              :popup_list{. E2 ]  C( h8 K8 Z' V4 h& H) F
                         key="pop_i";
. x3 w( D) [$ d5 t+ z+ B% b                         width=20;. g" B  }% s6 y
                         }% `+ G) s" z, Q3 S, M. T6 U  C( m; o
             }8 J" A" {& u4 s
         spacer;8 I- r, i7 e( y/ f) V
         ok_cancel;
9 n' m" C7 `' ~6 h$ o5 a( R3 @. N; l   }7 j7 o7 h; T1 t2 Z6 V/ p2 S; I
, O" O: |- r3 k( z1 c
   编写加入对话框弹出列表子函数popup_box 如下:  
, k9 h; y$ }4 y6 x  b  (defun popup_box (list_name list_tab)   
6 h" ~6 ^+ P. i! S! o! ^      (stare_list list_name)
/ d, D0 o! ]; G( q9 W+ s      (mapcar 'add_list list_tab)
7 T2 ?( n5 }; U/ a/ ?7 G      (end_list)
% G$ }' E0 d7 |! }4 T# `   )
# y$ Z/ f( ~- Y9 u+ d3 {+ j& P% T) o3 o
  在主程序中编写如下代码运行对话框:
$ Z3 X3 W  n. y4 E   ;;运行对话框8 j& N8 @& N* U/ k* q& ~
   (while (< 2 what_n)) d7 e! |1 D- D( t" v, }/ o3 D
      (popup_box "pop_i" txt)   ;加入对话框弹出列表0 q5 _' R3 [) q. F$ t4 J8 V
      (action_tile "cancel" "(done_dialog 0)")6 Q6 r6 R0 @3 v( u6 a4 a) J( _
      (action_tile "pop_i" "(get_zhi $value)")
2 M0 q3 Q' N3 x8 D      (setq what_n (start_dialog))
' @# |, D( V! ]. @) t: h8 \4 M' }      (cond ((= 1 what_n) (do txt_zhi))), _6 d$ E+ H' F& l& R" [0 {0 b
    );end of while
* g8 k- e2 A5 |. A' U, l7 r  K: K    (unload_dialog dcl_id)
+ n3 y/ M# {, f& h! R  \$ v1 z, y* `2 ^0 n5 k$ T- D* q
  至此,编程大功告成了。
0 E- q; H+ n0 E( T' l- i0 V* D
! ~% X- I  g$ n% S8 L& Q[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:" p8 D6 T& H6 r, ?2 `

' E9 T) [$ Y+ k* e  编写加入对话框弹出列表子函数popup_box 如下:  : v/ h+ O: R1 l
  (defun popup_box (list_name list_tab)   5 c2 Z5 Z( a# k
      (start_list list_name)                      ;更正的一句
# l: S  D& r$ ~4 n# o; H" {0 N8 w      (mapcar 'add_list list_tab)/ o! A8 v7 j7 o) q
      (end_list)
6 S% c$ A' B8 t   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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