QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
goto3d 说: 此次SW竞赛获奖名单公布如下,抱歉晚了,版主最近太忙:一等奖:塔山817;二等奖:a9041、飞鱼;三等奖:wx_dfA5IKla、xwj960414、bzlgl、hklecon;请以上各位和版主联系,领取奖金!!!
2022-03-11
全站
goto3d 说: 在线网校新上线表哥同事(Mastercam2022)+虞为民版大(inventor2022)的最新课程,来围观吧!
2021-06-26
查看: 3089|回复: 7
收起左侧

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

[复制链接]
发表于 2008-8-28 08:48:29 | 显示全部楼层 |阅读模式

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

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

x
如何在DCL文件中的下拉框中显示指定文本文件的内容?
+ G5 {4 o' I9 a" v, j: C" ?) k" Y; O) L即在一文本文件中列出:
3 p" x2 B6 M+ J# P中国
2 E/ Y* e& w( R2 o英国
4 V3 d! W' e# x' h美国7 q5 |: C) c) v# c' [  m2 V
在DCL的下拉框中显示这几个选项, 如果文本文件修改了,比如增加"日本",则在下拉框中的选项也相应增加?
* D$ }; G( ]3 v如何实现这样的功能???
头像被屏蔽
发表于 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程序,已供作个参考借鉴。
3 O& ~4 h# L$ T- o6 }+ n8 d% M1.首先,如何将文本文件中的词条读入程序中?
. \/ B% \; Y) M7 o% b# y    假定pop.txt文本文件的路径为:e:\ck
/ B7 `. p: V/ P0 _2 q   且pop.txt文本文件的内容为:- v7 n+ r* R( u/ s" t: d3 }
中国, c  m" `( L- A: f$ N
英国9 U5 m: T+ r. ^( _
美国
0 `5 X* y) ]+ m/ c
/ F, Q& E2 B% J+ \1 L9 D7 T+ p   在主程序中编写如下代码,就能完成将pop.txt中的词条读入变量txti中。  
8 X( ~! |3 @- }+ C
9 o& I: R0 t7 a) A$ {& I+ M' {* j$ I   ;;读取文件中的词条
2 P. d7 c% t! X; A3 N% U   (setq pf "e:\\ck\\pop.txt")
! ^3 l) U/ i( Q; `4 Q   (setq f (open pf "r"))
* X' v  I- V: a% [4 z1 P! w9 }   (setq txti (read-line f))7 h; L/ G) f( k: x' Y# g4 s( m) \
   (while (/= txti nil)
9 l# ?+ W. l% k8 N; O' I      (progn
5 L; m0 k' j& B" k          (setq txt (append txt (list txti)))
) K* B  R7 B" u& O* h8 y0 s          (setq txti (read-line f))2 ]- K/ e% M  o" Q. [2 w
      )
2 ?5 I; w+ u! o, T$ X    );end of while
# B9 G% s/ g, \; x9 V  u    (close f)6 W8 z* w; R; x; K
5 \& ]( F. i$ i5 Q; m7 k% a
2. 如何将获得的词条加入对话框的弹出列表中?; i$ n9 }% V8 N9 }  E
   创建对话框文件pop.dcl如下:
% R3 P  o, q  v$ \   pop:dialog{
! s5 J# d1 {9 }& h          label="弹出列表应用";
; `+ H8 e  @* s& J# Q         :row{. T% z7 p7 w& b3 ?4 d
              :popup_list{0 b0 N, V7 ~3 _( N1 ^5 L
                         key="pop_i";9 |( q, G* P- w' n- ~6 b$ g
                         width=20;
" s3 \9 `# N! Z! g, S                         }( V/ G0 l" P- w3 l$ k) n6 t% d- \
             }/ R; q# \0 O+ J0 X6 x2 O
         spacer;
* K7 c& x) \& T- n8 S9 Q$ a. P$ ~$ z         ok_cancel;
( m3 G+ {) f1 i+ r$ z   }7 ~; K: w8 J- f9 `2 n

* w2 _* W2 F& r) C8 H, o3 z: w. l! W4 r   编写加入对话框弹出列表子函数popup_box 如下:  
, B7 @/ ?$ {) O  (defun popup_box (list_name list_tab)   
5 e5 q" D# |- y% q6 X      (stare_list list_name)) I4 D7 P, S4 m; P5 b" ~+ ?- Q
      (mapcar 'add_list list_tab)
5 O5 d7 n' t; k0 `2 k! d      (end_list)+ l) {! ~: y: n% C+ j9 W. V7 M( N
   )
5 P2 R3 G' c4 Q4 I( B
/ n( H, s2 u) S  \  在主程序中编写如下代码运行对话框:
& O, S- w/ F6 `* J* {   ;;运行对话框% x* T/ f' X4 @
   (while (< 2 what_n)* g! X! z4 ?' b" b/ S( P
      (popup_box "pop_i" txt)   ;加入对话框弹出列表6 j* ^6 C; `7 O, |" J
      (action_tile "cancel" "(done_dialog 0)")" n9 n! D8 |. D5 i
      (action_tile "pop_i" "(get_zhi $value)")7 F, L( G9 d' c% r# Y
      (setq what_n (start_dialog))0 M  |; {. `4 V, Y; V
      (cond ((= 1 what_n) (do txt_zhi)))) f. y) j( @5 R; z. H  B) M. B
    );end of while2 [8 V4 a8 v" X: r8 _, \
    (unload_dialog dcl_id)
4 C: a/ j0 z) O) d( j4 H" t3 c0 e: W" @+ L: f3 b3 q0 \
  至此,编程大功告成了。
1 q7 H! Q0 R1 W1 }8 r' m( i: G" g7 U( B9 P2 m5 _  Q9 |
[ 本帖最后由 ljm68 于 2008-11-29 22:13 编辑 ]
发表于 2008-12-4 20:00:12 | 显示全部楼层
更正一个错误,更正如下:; b' r8 s; e/ b  H

' }* A' Z* k) M& x  编写加入对话框弹出列表子函数popup_box 如下:  / H5 n! J  ^5 }1 I  {, ]5 r7 O
  (defun popup_box (list_name list_tab)   7 H( t  m$ f& K4 M% f* a
      (start_list list_name)                      ;更正的一句+ u7 W$ T8 O% b; z- L
      (mapcar 'add_list list_tab)
2 b' @7 i# K$ |/ G  ~7 k! _# u: v7 E8 U      (end_list)
. @2 O/ t* T4 X, v4 o9 g4 |7 D   )
发表于 2010-10-14 17:11:32 | 显示全部楼层
很好!试验一下,谢谢!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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