QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?
, D/ u6 p0 N" u3 }5 G0 G7 q2 ?, y. p即在一文本文件中列出:
5 N4 Q, _4 p3 b: h' V中国
. Q1 r# `- l- s) `$ O英国3 U/ \" p9 }9 v/ r$ t
美国
( q2 k3 m1 r& {* p在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?& f4 z* @" G  L& r
如何实现这样的功能???
头像被屏蔽
发表于 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程序,已供作个参考借鉴。
/ }% V0 b9 Y" c9 k$ J1 D" G1.首先,如何将文本文件中的词条读入程序中?
9 {; o  [& C0 t* p0 m$ ?# r    假定pop.txt文本文件的路径为:e:\ck 9 P" V, E8 V# ^  T+ O
   且pop.txt文本文件的内容为:
$ |: m" k- }- Q- [$ Y中国
7 W. G! ^1 |- {# [$ h英国
3 `; {7 q5 n1 X( l3 r  ~& n美国
2 I. w5 n& T0 }7 Y* @( H) D+ ?& n$ s. j2 ]
   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  + c8 y% q1 c0 l/ {

/ }; X& k8 S* y. w: J8 E2 w# ^- [   ;;读取文件中的词条
# n/ D+ T0 O0 N" T, D   (setq pf "e:\\ck\\pop.txt")
" s3 [! H( N( k   (setq f (open pf "r"))
2 W' N. B( F; l! w   (setq txti (read-line f))( t2 _* o  ^! v6 O
   (while (/= txti nil)" Z2 |( y4 O$ h, N# m0 ?
      (progn6 B- w! N8 r- K; B7 ^) c
          (setq txt (append txt (list txti)))
$ J% H, U6 A/ |  U          (setq txti (read-line f))
2 ~# T. L. Y$ o+ h: q& r! r      )
- l, l& ^$ d4 K: k$ v" w    );end of while
* I/ M3 }+ L( u5 t% L    (close f)
$ q! |4 K# k. O- W0 Z/ z
2 B. a9 v7 @$ P9 y. b2. 如何将获得的词条加入对话框的弹出列表中?
- F7 h! B& i" P  o. u0 Q; l   创建对话框文件pop.dcl如下:, L4 o8 X0 ]' j5 y
   pop:dialog{
! @! @7 S! l; g$ z          label="弹出列表应用";' ^% S5 p9 b; X0 G8 B7 n
         :row{
* g5 y+ F7 M8 D' P              :popup_list{
/ p! s8 v/ D; r5 G# ?+ ~. p                         key="pop_i";, k; f* c4 t5 i
                         width=20;
9 C! W2 P& I5 C1 U                         }, U  @9 X% I9 l, _. y
             }8 ], M2 V# {8 F$ ^$ j0 Z: {1 `
         spacer;
5 r7 B* H' a  c  G         ok_cancel;
& y" Q0 V1 i! {  X' Y3 d   }( ~6 W8 l! `. ^  U( J% c2 o
5 [# \2 w! P, P9 a. D
   编写加入对话框弹出列表子函数popup_box 如下:  5 p% X+ i; B. a; a
  (defun popup_box (list_name list_tab)   ; ~( j% I% j5 e& d8 x/ a: K
      (stare_list list_name)4 U* x; B) Z8 B
      (mapcar 'add_list list_tab)
+ v  F+ ^8 L0 l  I. t      (end_list)/ l& s2 B2 ?3 f) X9 j
   )
2 x' a9 a0 x4 u) W; n% B- s+ B1 B2 ?" H# I+ v0 V$ }0 p& ^
  在主程序中编写如下代码运行对话框:3 o5 n6 l5 T/ D" z3 B
   ;;运行对话框
4 O. I0 E  e' [2 l9 @   (while (< 2 what_n)
* x; o7 Y1 @) F( ~7 u2 L* ]( m      (popup_box "pop_i" txt)   ;加入对话框弹出列表+ D+ y$ E) {& J' h7 u% \
      (action_tile "cancel" "(done_dialog 0)")
+ ^7 X6 a3 H9 m9 W      (action_tile "pop_i" "(get_zhi $value)")2 W$ Z' g: {8 S7 w
      (setq what_n (start_dialog))
0 M* f5 e8 _! }' V. s3 P9 |# b9 B      (cond ((= 1 what_n) (do txt_zhi)))
( M4 C8 z3 a" y: X  G* j7 [    );end of while
9 V6 ~: A7 R' _( K    (unload_dialog dcl_id)" t, a* @, ?! _) i2 ~+ n5 y

. w, ?2 y( @+ O: t. g1 s9 r  至此,编程大功告成了。) t* Z* v2 h3 {
( y7 q6 {; K% C8 D
[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:
8 o; n9 M% v7 ?6 l7 B  G" \. ^( B
' w/ V% d8 C; Y0 o3 s* `. z  编写加入对话框弹出列表子函数popup_box 如下:  % G! E; ^  ?5 O. E3 I; e" c
  (defun popup_box (list_name list_tab)   & H& A7 F# U0 Y0 g8 ]
      (start_list list_name)                      ;更正的一句
$ \- o- J# v! I. ^8 l* l( j4 w4 {      (mapcar 'add_list list_tab)
( z, d% w; o: z5 z  }      (end_list)
& Y, M* K3 m' R3 U   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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