乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 74|回复: 6

如何设置变量与文件相关?

[复制链接]

15

主题

28

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2004-3-1 22:42:00 | 显示全部楼层 |阅读模式
我想实现这么个功能 使某个变量与CAD文件相关联 即使CAD文件被关闭后重新打开 这个变量的值也不变
回复

使用道具 举报

1

主题

8

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2004-3-1 23:07:00 | 显示全部楼层
Xrecord
回复

使用道具 举报

18

主题

177

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
249
发表于 2004-3-2 09:24:00 | 显示全部楼层
用Xrecord是首选。
但是,如果变量较少,也可用系统变量USERI1~USERI5 和 USERR1~USERR5来保存。
回复

使用道具 举报

15

主题

28

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2004-3-2 18:33:00 | 显示全部楼层
万分感谢
回复

使用道具 举报

15

主题

28

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2004-3-2 19:03:00 | 显示全部楼层
如果我想保存与文件关联的不是列表 而是数字或者字符串呢
另外
系统变量USERI1~USERI5 和 USERR1~USERR5 怎么使用?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-2 19:10:00 | 显示全部楼层
什么叫不是列表?楼上并没有人给出跟列表关联。。。
系统变量:
(setvar "useri1"        1),参数类型参考帮助文件介绍
回复

使用道具 举报

29

主题

1152

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1268
发表于 2004-3-3 08:04:00 | 显示全部楼层
使用vlax-ldata系列函數會更方便
從圖面字典或物件擷取 LISP 資料
(vlax-ldata-get dict key [default-data] [private])
引數
dict
VLA 物件、AutoCAD 圖面圖元物件或整體字典名稱的字串。
key
指定字典主鍵的字串。
default-data
如果字典中不存在符合的主鍵,要傳回的 LISP 資料。
private
如果指定非 nil 值給 private,且由分離名稱空間 VLX 呼叫 vlax-ldata-get,vlax-ldata-get 會從 dict 擷取私用 LISP 資料。
如果您指定 private,您必須也指定 default-data;您可以將 nil 對 default-data 使用。
請注意分離名稱空間 VLX 可以存放使用相同 dict 和 key的私用和非私用資料。私用資料只可以由相同的 VLX 存取,但是任何應用程式可以擷取非私用資料。
傳回值
key 項目的值。
範例
在 Visual LISP 「主控台」視窗輸入下列指令:
_$ (vlax-ldata-put "mydict" "mykey" "Mumbo Dumbo")
"Mumbo Dumbo"
_$ (vlax-ldata-get "mydict" "mykey")
"Mumbo Dumbo"
從 VLX 測試私用資料的使用
1        在 Visual LISP 「主控台」視窗輸入下列指令:
_$ (vlax-ldata-put "mydict" "mykey" "Mumbo Dumbo")
"Mumbo Dumbo"
_$ (vlax-ldata-get "mydict" "mykey")
"Mumbo Dumbo"
2        在檔案中輸入下列程式碼,使用「製作應用程式」從檔案建立 VLX。使用「製作應用程式精靈」的「專家」模式,選取「編譯選項」標籤的「分離名稱空間」選項。
(vl-doc-export 'ldataput)
(vl-doc-export 'ldataget)
(vl-doc-export 'ldataget-nilt)
(defun ldataput ()
         (princ "This is a test of putting private ldata ")
         (vlax-ldata-put "mydict" "mykey" "Mine! Mine! " T)
)
(defun ldataget ()
         (vlax-ldata-get "mydict" "mykey")
)
(defun ldataget-nilt ()
         (vlax-ldata-get "mydict" "mykey" nil T)
)
3        載入 VLX 檔案。
4        執行 ldataput 儲存私用資料:
_$ (ldataput)
This is a test of putting private ldata
請參考前面定義 ldataput 的程式碼:這個函數存放含有字串 "Mine! Mine!"
5        執行 ldataget 擷取 LISP 資料:
_$ (ldataget)
"Mumbo Dumbo"
請注意,由 ldataget 傳回的資料不是由 ldataput所存放的資料。這是因為 ldataget 不將 private 引數指定在它的 vlax-ldata-get 呼叫中。所以由 ldataget 擷取的資料,是由步驟 1 中 VISP 「主控台」發出 vlax-ldata-put 設定的資料。
_$ (ldataget-nilt)
"Mine! Mine! "
6        執行 ldataget-nilt 擷取 LISP 資料:
_$ (ldataget-nilt)
"Mine! Mine! "
這次傳回由 ldataput 儲存的私用資料,因為 ldataget-nilt 將 private引數指定在它的 vlax-ldata-get 呼叫中。
7        從 Visual LISP 「主控台」提示,發出 ldataget-nilt 用來自私用資料的同一呼叫:
_$ (vlax-ldata-get "mydict" "mykey" nil T)
"Mumbo Dumbo"
忽略 private 引數的時機是從分離名稱空間 VLX 之外發出vlax-ldata-get 時。如果指定的 dict 及 key         存在非私用資料(如本實例),資料會被擷取。
另請參閱 vlax-ldata-put、vlax-ldata-delete及 vlax-ldata-list函數。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-15 06:58 , Processed in 0.681583 second(s), 67 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表