QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
2天前
查看: 3259|回复: 7
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-28 08:48:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 中国辽宁鞍山

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?$ ^1 s( G' t/ p0 H0 u" G8 ?
即在一文本文件中列出:3 Y9 F! S9 h2 @" x2 V8 ]* E
中国& r5 y9 f9 [; D
英国% S* z- Z4 @; n* B& w- [
美国$ C) d1 |' \# Y, ?
在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?1 A* G; A" f- H! x, R
如何实现这样的功能???
头像被屏蔽
2#
发表于 2008-8-28 16:50:45 | 只看该作者 来自: 中国江苏南京
提示: 作者被禁止或删除 内容自动屏蔽
3#
发表于 2008-8-28 19:28:05 | 只看该作者 来自: 中国浙江宁波
如果只是想在当前CAD中实现,比较简单将增加的项存在列表的变量中即可;如果想CAD关闭后再次打开还可用,就要把列表内的项存在文件中,如txt文件,程序启动时读取txt的列表项,然后加入,新增要写txt文件;

评分

参与人数 1三维币 +5 收起 理由
★新手★ + 5 技术讨论

查看全部评分

4#
 楼主| 发表于 2008-9-5 18:37:07 | 只看该作者 来自: 中国辽宁鞍山
二楼的能不能提供一下实例?随便编写一段LSP程序?
5#
发表于 2008-9-19 21:55:06 | 只看该作者 来自: 中国四川成都
楼主又发贴了,但无人接招。建议各位高手对求助类的帖子经常关注,直到解决为止,也不枉我等菜鸟的一片期待啊,谢谢
6#
发表于 2008-11-29 22:06:41 | 只看该作者 来自: 中国四川成都
本人编了一段AutoCAD Lisp程序,已供作个参考借鉴。( z! w# N0 e0 @$ S  i+ e3 y. r1 ^
1.首先,如何将文本文件中的词条读入程序中?: F! Q5 I5 ~+ H  M- Q
    假定pop.txt文本文件的路径为:e:\ck
% U1 S( H8 ?, d7 B   且pop.txt文本文件的内容为:
  {) X: z, P, t5 G; S中国
$ M' |6 Y1 T# O英国
: _3 b% R' {  d0 R! q4 ~' h美国
, c2 t7 L& ~) m2 }: D3 Z
% }; }) p7 q2 z( D# g  @& J) g   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  : Y+ R# i% f' W" F) q! u- ]" U
/ Q& d# Y# A) m( k! z
   ;;读取文件中的词条
) S: z0 q* O. e" @+ N" Y8 x   (setq pf "e:\\ck\\pop.txt")
( i8 a% O7 Z+ |1 M   (setq f (open pf "r"))( e& K- z- N6 d. P$ @5 X' R% v
   (setq txti (read-line f))
. r2 b; Q4 }% E   (while (/= txti nil)3 F' N# x  Q/ M! g* l8 x; W0 `) `
      (progn* f% Q6 g4 K1 Y8 H9 n
          (setq txt (append txt (list txti)))
* G1 u) E  T( b. V6 o  }- D- g& q          (setq txti (read-line f))$ a+ o: B$ S: R0 L; w1 x4 x' t
      )1 k" U2 i, L3 R, f: C/ a$ L
    );end of while' q8 w6 H8 y& r) T3 H
    (close f)
* a/ C2 _2 w1 I. d6 _, X# `8 {
3 k( t( l4 \/ x% \1 G2. 如何将获得的词条加入对话框的弹出列表中?1 N# H$ v4 ^6 v/ K6 M. b
   创建对话框文件pop.dcl如下:
5 X9 s; j( u- M9 _   pop:dialog{
: E7 Z, {2 ]4 J" H* P          label="弹出列表应用";1 n& w" K' s1 v6 O8 w. T* F/ N
         :row{7 v$ F8 |2 b8 J. B7 ~
              :popup_list{
7 F$ t5 o9 A; ]( A: F7 O- U                         key="pop_i";
$ M( P/ p( z) V: q                         width=20;8 D6 p: Z: a# t! C! N! H
                         }. a7 l' `+ \5 C: K4 ?
             }
0 R7 ?) O* v$ E6 G# C         spacer;
% W3 q& k/ C6 q7 T5 n: C         ok_cancel;0 b  |: K" ^) _! V% q0 M. e
   }0 ^$ d5 [) e! _
* K0 ^$ H1 F1 E: j7 \/ v" @
   编写加入对话框弹出列表子函数popup_box 如下:  
# R$ K# Y- X6 F6 x  (defun popup_box (list_name list_tab)   1 s( a3 p& c3 e" G; p, B6 {) G4 |
      (stare_list list_name)% |8 m, b3 A& ^: [& T
      (mapcar 'add_list list_tab)
9 u4 {* s9 h0 _" J3 L, O, u( z      (end_list)3 m" w/ |% }% K
   )- m+ G! S0 s8 q0 y' J1 T) I1 X
& v5 P  P* O' N9 n
  在主程序中编写如下代码运行对话框:
5 [1 U" l6 O2 N; E   ;;运行对话框
$ q/ w3 \/ t2 ^) R2 U5 ]5 F   (while (< 2 what_n)
9 F1 _9 f  @* P7 h      (popup_box "pop_i" txt)   ;加入对话框弹出列表
' `- i# C9 F) Q" k      (action_tile "cancel" "(done_dialog 0)")
$ Q, \! c2 J) n( b6 g2 @3 r3 F1 }      (action_tile "pop_i" "(get_zhi $value)")9 Q& l, X$ O( q4 s( `
      (setq what_n (start_dialog))
) I! s- ^3 {. [* ?% Z2 b" r      (cond ((= 1 what_n) (do txt_zhi)))
2 A/ K! g& R! s: G3 X3 E    );end of while
; z: T" P+ d2 N( N+ G3 K) i* M3 U* k    (unload_dialog dcl_id)$ a7 b  \! z3 D. N8 n0 u

: F' [" N5 F7 H5 ]$ ]  至此,编程大功告成了。2 {( n7 q/ [5 S8 g

: T; x; ]5 g$ W1 i) a9 F# D[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
7#
发表于 2008-12-4 20:00:12 | 只看该作者 来自: 中国四川成都
更正一个错误,更正如下:$ D/ J& [. o) P1 u" i; ^
3 y  a& a5 Q( d4 V- b
  编写加入对话框弹出列表子函数popup_box 如下:  
. {) z+ ^6 {/ ~- s  (defun popup_box (list_name list_tab)   
" Y! j4 ?3 y, [, t9 X      (start_list list_name)                      ;更正的一句, Q/ l& K4 O& c, {! r; D7 t
      (mapcar 'add_list list_tab)
4 h, k1 ^7 p  s3 ]' D8 J3 b# R; v, ~      (end_list)
' {* r% C6 W+ t6 z- B   )
8#
发表于 2010-10-14 17:11:32 | 只看该作者 来自: 中国广东深圳
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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