QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?. t0 G' h+ _+ B1 |, T6 O8 ~' v  @
即在一文本文件中列出:& D& M  a: X3 z6 I( X
中国7 O1 {- ]# J: x; n" _
英国6 K6 n7 n7 C% n, Z4 z9 o% `
美国- C1 c# n# f- p
在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?
$ }9 b# N# v! N* f) P! \如何实现这样的功能???
头像被屏蔽
发表于 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 M  H& c  a% J0 x! L2 F1.首先,如何将文本文件中的词条读入程序中?
5 ]) y1 C; B; ]. b    假定pop.txt文本文件的路径为:e:\ck
* N' U- c. x0 y   且pop.txt文本文件的内容为:/ H8 K: S3 c* h( g
中国2 L4 K" V0 O: s2 p7 u9 F
英国
  Z9 _- N; D1 h美国
  D. B% U: i/ o  {
' q4 o' s5 a, J. c+ W* N$ s" d   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  : ~+ L- Z+ j# m( @( j5 n' w
$ l! D- w$ p8 ]1 o/ }4 c
   ;;读取文件中的词条) _5 O4 j- X" B& J# c
   (setq pf "e:\\ck\\pop.txt")9 L6 l: D2 J9 C- |% ]2 X$ w
   (setq f (open pf "r"))5 F/ V$ R& K! i% ?+ o
   (setq txti (read-line f))
9 \3 n& f7 ?( s9 b+ a   (while (/= txti nil)
1 L3 Y7 p: ~  y; |      (progn$ v( [7 G$ N8 T, V2 G; r6 t
          (setq txt (append txt (list txti)))
0 o3 e# M* K+ w; Q% A0 ~          (setq txti (read-line f))% d& |. Y- E: _, k
      ). {' H1 [/ S% e# H- \
    );end of while, k1 z/ g/ ?$ E8 }# v( N' t
    (close f)
% f2 j+ ?7 R- J  U6 V* S) @. j; O& U
2. 如何将获得的词条加入对话框的弹出列表中?4 Y- v9 }/ ]5 p2 n* x; n3 \; j$ ]
   创建对话框文件pop.dcl如下:
+ d3 `5 f& S" F, U  k/ Z2 Z, ~0 T   pop:dialog{
' \  l: k, R2 O          label="弹出列表应用";, K# W2 E! r* W+ v- Z% U/ U
         :row{8 V1 S' @- L, ^0 K( g: s
              :popup_list{
# ~: u* o. v) u# I0 m, a                         key="pop_i";
% B; o* j9 i% p3 g& M) V5 J! t                         width=20;$ n$ v& Q; u3 s) l: K6 F6 Y" e
                         }1 Z$ @7 p7 ~8 f% w* C
             }0 R: U/ Z! I$ f# @
         spacer;
9 F: y! u7 S5 H- v0 f* C9 @( X0 ]         ok_cancel;0 ?$ o: m4 V+ J' D# {( ?& F
   }  W& |  V3 z! n- d; Y+ |# _0 J) G" Y

4 g8 h5 q! l" L$ y   编写加入对话框弹出列表子函数popup_box 如下:  
7 c: {( Z8 ^- _  i' _5 v* i7 R  (defun popup_box (list_name list_tab)   / Z$ c* o" P1 j/ M6 d/ V
      (stare_list list_name)+ y+ H4 l8 |  I* K/ S
      (mapcar 'add_list list_tab)
0 H- V: y3 v0 u, \, r      (end_list)
6 c( |7 @. |4 g1 r: I   )0 a5 ?; k* Y, H( y
* t4 G5 v; E2 }/ V4 E; J( c5 g1 p) _
  在主程序中编写如下代码运行对话框:7 C. L+ h: a5 {) _4 P+ [
   ;;运行对话框4 S- x0 C2 l3 j" U+ d
   (while (< 2 what_n)
3 S" E  G: C9 G, k      (popup_box "pop_i" txt)   ;加入对话框弹出列表
" x: O3 z/ h# G6 M: p9 Y. g) w      (action_tile "cancel" "(done_dialog 0)")
2 o2 @) O$ P1 o3 c/ |  P0 }' Q      (action_tile "pop_i" "(get_zhi $value)")
5 \: c8 @! Z( g' H' m* P% l      (setq what_n (start_dialog))
. j3 N7 H1 j! ~1 J2 v7 x      (cond ((= 1 what_n) (do txt_zhi)))
% h' b1 W+ T% [$ k! V7 k. Q) ?    );end of while: {! D. X3 u; Q. h+ T7 q
    (unload_dialog dcl_id)0 l3 R! W2 T7 y# y6 _: W

1 I) M: _; i: P7 L% p* t  至此,编程大功告成了。
+ d/ R! T$ n5 e' ~4 k' f: E0 J: A
: W0 Q! `, k8 \  A5 ^[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:
9 j6 w& n! O: B: m$ j4 e; i7 s& D9 Q2 D+ p- l5 J" O
  编写加入对话框弹出列表子函数popup_box 如下:  - y  Q0 n3 o# F1 r& c. ^* F1 `
  (defun popup_box (list_name list_tab)   : R% G- H. T/ ~: ?: c2 Z0 {8 x; O
      (start_list list_name)                      ;更正的一句3 z0 G& e8 `+ o- c8 R1 o' c  y) l
      (mapcar 'add_list list_tab)
: U0 c2 a8 L; R: c      (end_list)' ^! e4 ^5 |. h
   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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