QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
6天前
查看: 3375|回复: 7
收起左侧

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

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

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?
9 D6 X- j, `0 d% d1 ~即在一文本文件中列出:- R: B3 T, h( g) s7 s3 T8 [/ k
中国
( `9 y( J/ Y6 v6 V* X9 V英国
: S7 y! B% n. a美国
8 ~6 J8 h4 @( ?0 |在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?
0 Q9 U8 H' `/ m4 i* C如何实现这样的功能???
头像被屏蔽
发表于 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程序,已供作个参考借鉴。$ c# i' l4 X" L6 o
1.首先,如何将文本文件中的词条读入程序中?! I( S( z% l* j, F6 |* x2 x* g
    假定pop.txt文本文件的路径为:e:\ck
- Y; I. A$ i9 o, x" V   且pop.txt文本文件的内容为:
& Q' C) a. |0 ]% |4 S& @% |中国' e2 n+ x0 I- O8 w( `6 u9 B2 M
英国
' _$ w4 O0 v+ u( L1 k& L美国
: C1 Q( L3 `" L# H8 |1 i7 ?. `: g1 ]+ p* A0 e! K# E
   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  
5 k) B. v9 Z/ I8 K
/ h  B* C. P1 _1 l! G$ `1 ~   ;;读取文件中的词条3 a' I  E' q! o5 e# N' Y" E
   (setq pf "e:\\ck\\pop.txt")% n' f9 [& q0 A! }6 S
   (setq f (open pf "r")): @4 b% t/ \$ B9 O( B; P# }
   (setq txti (read-line f))! \0 C0 R% ^* Z: F5 t0 i
   (while (/= txti nil)3 x" J3 U& ]# c2 `8 |
      (progn
% Q* l- T$ G; h5 L3 {. S          (setq txt (append txt (list txti))). z7 V% s$ o, Y1 y
          (setq txti (read-line f))1 H' f$ [' X: `3 j! v
      )
4 D  j8 m# E5 n9 @' x% l    );end of while
! L) d8 i  n8 K% Z# ~+ O$ T    (close f)
, Z9 z) s. k! H. c; P
, b# ?( u- I- D' j3 ~$ r" Y2. 如何将获得的词条加入对话框的弹出列表中?
, g9 E: o  Q. @/ @  c; E% M   创建对话框文件pop.dcl如下:
  Z& K& P' k4 o' h7 D   pop:dialog{
, p$ ]1 [1 B% t! G          label="弹出列表应用";
% [: J  d% J( e6 {( D         :row{
& t' h$ B* ?! y$ T  k; c              :popup_list{% C. n" B9 V/ X
                         key="pop_i";2 w" z3 f% p; I  I: Q
                         width=20;
) T4 y/ X& x, x/ J2 Y2 I+ R                         }
, u  O, J- ^: |9 ]             }' a% z5 r( K1 P, [0 L& ~8 |# @
         spacer;
% u+ O( }' W7 b! ^5 M9 ]         ok_cancel;
* B5 I8 H8 D2 U0 }7 R4 U  W) X- b+ |3 v   }; |  m3 M% a' C+ j0 D

- j( H: ^3 A) J8 r   编写加入对话框弹出列表子函数popup_box 如下:  
* B; w: v! t4 i  (defun popup_box (list_name list_tab)   
7 c( b2 U0 x0 }3 b' h      (stare_list list_name)
1 {2 ?+ B8 \7 [! ~/ a, p      (mapcar 'add_list list_tab)# z8 N: j/ L+ O3 P+ n) ?3 A. L
      (end_list)
7 w+ x# d  |; Q) f% V9 d   )
/ R4 z7 `0 h, l' d+ ]* O+ u
8 Y1 h; j! O7 j* j  x  在主程序中编写如下代码运行对话框:/ O8 t- J; c% P' f5 x
   ;;运行对话框( x1 I  ~0 ?9 a$ e/ X; ]5 z4 m5 g/ U' j
   (while (< 2 what_n)
+ C2 m6 o+ A. L0 s: F( o      (popup_box "pop_i" txt)   ;加入对话框弹出列表" d. s* U1 X8 `- P
      (action_tile "cancel" "(done_dialog 0)")- g/ ^. `- a0 W1 l
      (action_tile "pop_i" "(get_zhi $value)")# \. }' u! }$ k: F+ l
      (setq what_n (start_dialog))
* B) v6 G8 d9 ?( i7 ~% v; w      (cond ((= 1 what_n) (do txt_zhi)))
" p# b, g/ W9 v$ z+ |1 R' L4 g4 l+ J    );end of while- G  B  t! ~& q1 @* ?
    (unload_dialog dcl_id)
- I* J0 v% N4 l, s2 @' c
! F& v& D, k+ N  至此,编程大功告成了。/ x/ B+ n+ w" D, C# D! ~- P
4 }& b4 S5 e3 `
[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:
" i3 X. V# K* o$ E2 L4 G
7 Y# f- B+ V% ?9 o+ L/ {  编写加入对话框弹出列表子函数popup_box 如下:  
9 J* P" F( L5 c. t! ^4 }  (defun popup_box (list_name list_tab)   
: h. V6 Z4 {3 X' A/ x      (start_list list_name)                      ;更正的一句
$ u, k+ p7 Q6 \/ M" x% Z$ I      (mapcar 'add_list list_tab)  H% Z7 u2 h) k+ V( _. b
      (end_list)9 u- q. s8 R$ w- G0 U
   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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