QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
8天前
查看: 3279|回复: 7
收起左侧

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

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

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?
2 Q# u* B6 t& T: z6 D- v8 j即在一文本文件中列出:
( _* @$ S; S' ~/ H  z中国
( W) `" x2 i( S( z! H6 q英国
5 e( h- g9 [8 l) O/ N4 o! I. `* s. [! ?美国
5 J+ _, b0 [% p$ d在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?( O3 y2 P" M' I8 V6 {2 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程序,已供作个参考借鉴。
8 h: q" o9 J/ y* C* a7 P  Q1.首先,如何将文本文件中的词条读入程序中?, v: o2 u; e5 l# u$ V9 ~
    假定pop.txt文本文件的路径为:e:\ck
: M, c1 T. W* B! l( I0 \5 N& z7 y7 f   且pop.txt文本文件的内容为:
! e' s& z/ _; r" e3 D8 @0 w中国4 o# C9 z: y5 l% F- a, k2 v2 w
英国8 s8 N5 |2 Y* t* }
美国
7 {' C' O' z# y: T/ C2 Q; N) ]1 x" ?* @
   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  
, J% m& [' X" @5 K. `9 n" \, i) D9 a$ X: T$ O$ s( I9 D
   ;;读取文件中的词条8 [. k  J+ D) f+ e
   (setq pf "e:\\ck\\pop.txt")8 v$ d: T" H" p* W3 `. k* |
   (setq f (open pf "r"))
6 O) l4 p8 L: Y: B/ u/ m   (setq txti (read-line f))
0 ^; ]: t9 g" J, T: r   (while (/= txti nil)$ s+ a# l& Q9 k# d9 M3 J! d4 V& @" G1 o
      (progn, Y" p4 ]: J! w3 ]& M! }: d
          (setq txt (append txt (list txti)))
  P5 g% U% B$ r+ r# T          (setq txti (read-line f))
* k! M$ q! r3 `3 i4 R      )  X% l' u, F* ]) Q, p. b
    );end of while" m) k$ Z* t7 L" e& s- H
    (close f)1 s! F; L2 Y: W3 X9 A1 v

& F: ~/ ?% V6 q. _9 h; w/ }6 ^2. 如何将获得的词条加入对话框的弹出列表中?
" Q4 i9 C2 r; @$ R   创建对话框文件pop.dcl如下:
! m: \; ]6 H3 q, F5 U5 K& E   pop:dialog{
% \6 A+ U; s! O  `- H/ }  T          label="弹出列表应用";8 f0 C* u* g% ]# ?% b% Y
         :row{' O. J9 x8 B! W8 A  ~% L# H, k& s
              :popup_list{
0 Y  w* i4 c; q  X( P                         key="pop_i";
8 X  ?4 U2 h4 [! j* d4 Z# ]                         width=20;* |: [9 g, T6 |6 Y
                         }  n7 S3 t/ _  y6 h
             }; x, l& _2 w! w5 m# F! G1 W
         spacer;
/ a) w% p6 p: j  ^         ok_cancel;
$ i3 |1 |2 s* g  {3 b  p$ U( ^   }
; t; E% }2 \5 m  S% g" b+ b# A4 m& W( {$ z
   编写加入对话框弹出列表子函数popup_box 如下:  4 Q- z3 f* X: Z; w
  (defun popup_box (list_name list_tab)   
6 U8 @2 z" d+ G% {; J      (stare_list list_name)1 Q$ N& u, _: ^. z
      (mapcar 'add_list list_tab)
" i# t) P( N" R( b: |+ k# Q+ k8 G( u      (end_list)
! t% l6 g8 W  T* Z1 C1 N$ ^9 V   )
% K; {7 j6 T2 {$ Z/ M( L1 B. n3 T" D" @, I8 l+ [- P6 h8 a
  在主程序中编写如下代码运行对话框:
4 A8 u9 V9 a1 A- c$ i+ N   ;;运行对话框
# x/ \3 A$ v% P9 j0 E, H: T   (while (< 2 what_n)
  p8 k+ a# ?) z      (popup_box "pop_i" txt)   ;加入对话框弹出列表% ~* N/ s0 y$ J' W% `8 y. _
      (action_tile "cancel" "(done_dialog 0)")
3 r1 _0 T# q  I- b) ?      (action_tile "pop_i" "(get_zhi $value)")7 u1 f2 S% ?1 [8 B8 C
      (setq what_n (start_dialog))/ V9 k2 D3 S  ?7 @
      (cond ((= 1 what_n) (do txt_zhi))). O% f# a- X; l2 Y3 R( Z3 H
    );end of while" D) N# _; U, X/ c
    (unload_dialog dcl_id)
5 \- ^+ ~3 D, _; ?# A; X, a9 ?! y3 R6 [6 t2 T6 L4 J9 v7 F/ Z
  至此,编程大功告成了。
5 i$ _+ P6 J& d, A4 m3 G
/ A0 n5 i" Q: H4 d$ a* ?" ~" v[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:
* @8 E8 t6 K! U
) n3 G0 ~4 C8 ^' ^3 Y& k" Q1 D  编写加入对话框弹出列表子函数popup_box 如下:  ' ^! n* ^, F# m5 H0 ]) y* R* I: R
  (defun popup_box (list_name list_tab)   
( T0 I5 n7 z$ v3 V; Q+ E5 C8 O      (start_list list_name)                      ;更正的一句
* I9 s1 Y; N2 m, A' B( F' R      (mapcar 'add_list list_tab). g" |0 e: M1 S3 D8 m7 Q9 N! w
      (end_list)
% u4 ?" }! D% o8 X   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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