QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?: j3 g, \% G( v5 |, T2 v4 u4 d. [+ Q1 [
即在一文本文件中列出:
6 p. _* p8 i. S, t. [) Z# w中国
& M, P5 ~' |9 u) S7 p英国
3 |& }/ O5 [# }) S; |美国  |6 y3 h2 R* B! R" R# T/ \9 J& Z  W
在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?' T) |6 ~, ^9 ?$ ]5 O
如何实现这样的功能???
头像被屏蔽
发表于 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程序,已供作个参考借鉴。
. f* l; c( \! {: a1.首先,如何将文本文件中的词条读入程序中?" f$ [: g9 ~5 h/ S% F
    假定pop.txt文本文件的路径为:e:\ck " H% `! w  R) e" ?% x$ E$ g+ k
   且pop.txt文本文件的内容为:+ j9 p: X: F8 l; G" t; `; t
中国
) H4 d' z: j7 {英国
' N4 x3 a7 }# `美国# l2 V( E$ b  j& X( b/ p# S
( ~- D. Y4 w7 \2 V" o3 z3 `
   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  % O3 a* v3 j4 s5 B# K
5 d6 I: a6 g; N
   ;;读取文件中的词条
5 b" c! g, h" {7 z   (setq pf "e:\\ck\\pop.txt")
3 {  t# ]2 K5 d' ]7 ^! ]   (setq f (open pf "r"))
3 I2 Y/ A  k5 z3 W   (setq txti (read-line f))1 O9 C' S" X- r% T+ H
   (while (/= txti nil)
: g4 i$ V4 E" _, J, c0 |* n& X1 \      (progn+ R8 r" g  W+ g0 B3 W/ H' @
          (setq txt (append txt (list txti)))
, {6 u( c/ _2 ?6 |8 Y          (setq txti (read-line f))
) U& K  T8 S3 Q: U3 N% \      )
' ~1 n  D3 S& e! ?2 j    );end of while
$ q$ w! D" I% n2 N6 T    (close f)
4 q4 ~' Q- S$ \% y; f" N6 U/ K8 Q5 S# z1 O# o% s& H6 C
2. 如何将获得的词条加入对话框的弹出列表中?  }) ?% v& u6 d
   创建对话框文件pop.dcl如下:
1 _$ A) A/ z7 F" d8 L4 t   pop:dialog{6 [! a0 P, C+ d- `- Y; o  y7 l
          label="弹出列表应用";5 h$ K, l# N/ d% A! T
         :row{
' h  W$ I% T& L              :popup_list{$ f, M5 T) p# |! V
                         key="pop_i";
) W- i, J  a; `; z. h0 J+ R0 Z) `                         width=20;
2 @2 d8 C5 o% o- @; S; y9 C                         }2 b1 j& O: C3 o; D+ |3 A. `
             }
/ A; h" q( f% k# P         spacer;
" Y- g8 ^9 ^$ w- u; N         ok_cancel;7 W) f- i+ t0 [
   }
6 j& f8 v0 R" T, R+ k" j" n+ p  f; h2 e4 g2 U2 t
   编写加入对话框弹出列表子函数popup_box 如下:  
0 V0 n9 S4 }7 V  (defun popup_box (list_name list_tab)   
6 R5 x0 ]- `- K0 P- a* W. j      (stare_list list_name)# ~: V; [0 M; Q& Z
      (mapcar 'add_list list_tab)
+ S3 L+ ]' h2 [. y- W0 F6 b3 y$ j      (end_list)8 z9 Q) w, c& g  x% G8 i9 a& }
   )
: s. I, ?- W! i) i8 O& t8 x+ _' C/ {# p7 Z6 g( ^7 u4 F
  在主程序中编写如下代码运行对话框:
) j& {9 u& Z" B   ;;运行对话框! ?: C! b! u  {$ {- M& l
   (while (< 2 what_n)7 g& j2 Z9 G* a$ T9 K0 a! z
      (popup_box "pop_i" txt)   ;加入对话框弹出列表
" s9 i) e$ Z6 y3 s      (action_tile "cancel" "(done_dialog 0)")- V$ v# E2 n8 `
      (action_tile "pop_i" "(get_zhi $value)")* w3 u) [) I! ~4 ~9 s5 L
      (setq what_n (start_dialog))
3 |* w8 r! v/ V0 I$ J8 C      (cond ((= 1 what_n) (do txt_zhi)))
  |1 J6 I% U& G' U6 t% h4 F2 R* G    );end of while. ]! a  K! V7 S0 s- f7 J( G6 R8 ]
    (unload_dialog dcl_id)  I) x/ y5 K! ]+ e- S# ]% W5 t$ H! H
. x- y' X! d' J& u6 m) R
  至此,编程大功告成了。
" m9 _& ]4 }% C  Q& l; F+ y  v# I2 C" E  W' g/ o: ^& O
[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:
( C5 |' \5 C+ g) E6 L  S! \9 F& a4 s
# t; p* x4 K/ t  }; d  编写加入对话框弹出列表子函数popup_box 如下:  ! q* w5 T& j8 F9 s- t4 N
  (defun popup_box (list_name list_tab)   & J  Q& h# X! }4 B, d4 t
      (start_list list_name)                      ;更正的一句5 f- e( e; x. O; B# W
      (mapcar 'add_list list_tab)# V3 p& V5 U. m8 z( p- `
      (end_list)! M# b7 A3 I, X  e& X& j+ w
   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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