QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?; }3 S5 {, B5 Y; M
即在一文本文件中列出:1 S; y: ~$ A8 H! t% j6 W
中国
$ U- H* }- k2 j  p  h( J英国: |+ o  K& z5 Y& [! r, U# G! I
美国
9 \* J+ Y- N( Y- E3 l8 ~- E在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?
5 W# ?$ y+ t8 O; _& h8 J6 E$ K3 G如何实现这样的功能???
头像被屏蔽
发表于 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程序,已供作个参考借鉴。5 C- r0 b3 S9 i
1.首先,如何将文本文件中的词条读入程序中?
4 _$ ]! J# A2 L5 s: r$ s    假定pop.txt文本文件的路径为:e:\ck
( N  C5 k. n# E7 E0 {% j   且pop.txt文本文件的内容为:
' ]* a0 w8 o( {  x& ?' k) h中国
- @, q" _  W7 x4 e4 a" b6 e3 k英国) D! T" y& `. ?/ W3 @( C
美国
4 {. M) o! p; |
" F1 y( E( {% U$ }* o! B   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  8 w; w: V: W2 O; ]: h6 L5 Y

) |/ z3 ^5 G7 X   ;;读取文件中的词条" P+ `, T/ [* Y
   (setq pf "e:\\ck\\pop.txt")" i/ f3 Y/ l5 [
   (setq f (open pf "r"))  p. @1 Z) T2 w  Q
   (setq txti (read-line f))
  k6 b1 ^% p9 P   (while (/= txti nil)
7 u9 I. ^3 ^; N      (progn0 O. r$ W6 \# R! G6 l9 U. M
          (setq txt (append txt (list txti)))
6 n6 o/ i) E0 N! e          (setq txti (read-line f))
7 I2 S. G- M$ ?# o( t6 Z1 E  h      )4 l7 P# V) W" B8 o
    );end of while
7 B$ n) d% g% Z    (close f)2 f# k: Z$ ^$ _8 L6 i, J
3 X; p% o  |+ b! q' l
2. 如何将获得的词条加入对话框的弹出列表中?% _0 M- u" O/ i
   创建对话框文件pop.dcl如下:2 b: C9 H% D5 E
   pop:dialog{# C1 y" P% m: a3 q( ?2 r
          label="弹出列表应用";
0 S& E' Q1 l/ m6 u, }         :row{
% @1 \; X% [1 ]2 K4 V              :popup_list{+ p% |7 C2 l9 D( t+ P. g# k9 |
                         key="pop_i";7 I2 y0 F. {6 O1 X! E9 p
                         width=20;
  Q- K4 Y9 I+ m4 j) O, \                         }
+ b6 ^* c& l+ Y( J2 {- g* F% D+ y             }* E* [$ j& q/ k, c+ S: z
         spacer;
' Y2 U+ ^' K, K- ?         ok_cancel;
7 ^2 z1 j* I- G- T   }
; m, _* ?6 Y2 P
, ]) J' \( `' Y5 S   编写加入对话框弹出列表子函数popup_box 如下:  
. P* k, d6 F* a  (defun popup_box (list_name list_tab)   # r: F6 j# W; s$ H
      (stare_list list_name)
/ y, T' K& z1 e" I3 f      (mapcar 'add_list list_tab)1 m0 f4 Z  `1 |: ]
      (end_list)' K, @  |1 P1 [0 w$ b  L
   )
$ P; Q6 f2 v8 D9 W1 P/ Z
& i9 i' r" D- |0 W9 p5 _0 Y0 w  在主程序中编写如下代码运行对话框:' Y3 L6 F6 u% p( j2 I
   ;;运行对话框; P3 O1 p1 p2 |2 r
   (while (< 2 what_n)
; w8 i! @% {7 I; q0 U) O5 t      (popup_box "pop_i" txt)   ;加入对话框弹出列表
- f6 R9 l+ r8 Y6 l      (action_tile "cancel" "(done_dialog 0)")
$ A; G! \* B, i  y* ~& t      (action_tile "pop_i" "(get_zhi $value)")
& G. J$ |! j! c7 \- u      (setq what_n (start_dialog))
0 m& x# r/ Z$ }- W6 Q' s      (cond ((= 1 what_n) (do txt_zhi)))5 |  e/ y5 B/ O5 j1 m* ]& [+ x1 l
    );end of while
) c: p6 |( G6 k3 O, _& L    (unload_dialog dcl_id)4 i' n" M/ K; H% O1 K6 J
6 D1 g- Z3 A1 o6 F/ x, p  `
  至此,编程大功告成了。
( @# p3 F- Y0 I" T# m2 ?# D- j0 V- E: g& q' w
[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层 来自: 中国四川成都
更正一个错误,更正如下:
6 H6 C( Q' ~- \# W5 o( W0 F/ Z0 {5 Q9 U0 s( M$ F! B
  编写加入对话框弹出列表子函数popup_box 如下:  " x; j5 `' O( {2 G
  (defun popup_box (list_name list_tab)   ) O9 h9 o/ P  ]/ d2 j
      (start_list list_name)                      ;更正的一句
6 _1 n* B8 l4 d3 s      (mapcar 'add_list list_tab)
; ]3 e% o7 Y% c7 {" Y      (end_list)
7 M3 N' N7 |- n3 x: X. N* K   )
发表于 2010-10-14 17:11:32 | 显示全部楼层 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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