本帖最后由 langjs 于 2012-1-5 01:24 编辑
求助了好几天也不见动静,因此也悬赏吧,希望能得到解决。
一个问题困扰好久了,我摸索了很长时间也没成功。实在没有办法测试图纸有个标题栏信息存储在用(namedobjdict)得到的词典下面的PC_PAPER_DIC再下面的PC_PAPER_REC中,其内容如下: PC_PAPER_REC====((-1 . <图元名: 7efc1728>) (0 . TH_PAPERRECORDER) (5 . 2A5) (102 . {ACAD_REACTORS) (330 . <图元名: 7efc1720>) (102 . }) (330 . <图元名: 7efc1720>) (100 . TH_PaperRecorder) (70 . 800) (170 . 4) (171 . 1) (172 . 1) (173 . 1) (174 . 1) (175 . 1) (176 . 1) (177 . 0) (178 . 0) (179 . 2) (180) (140 . 0.04) (300 . Tydh) (301 . 国电南自) (302 . 国电南自) (303 . 国电南自) (-3 (TH_PaperRecorder (1070 . 1) (1070 . 23) (1070 . 2) (1000 . 制图) (1070 . 3) (1000 . ) (1070 . 4) (1000 . 产品名称或材料标记) (1070 . 5) (1000 . ) (1070 . 6) (1000 . 比例) (1070 . 7) (1000 . 1:25) (1070 . 8) (1000 . 重量) (1070 . 9) (1000 . ) (1070 . 10) (1000 . 材料) (1070 . 11) (1000 . 304) (1070 . 12) (1000 . 零件名称) (1070 . 13) (1000 . 自制法兰) (1070 . 14) (1000 . 标准化) (1070 . 15) (1000 . ) (1070 . 16) (1000 . 设计) (1070 . 17) (1000 . ) (1070 . 18) (1000 . 图纸张数) (1070 . 19) (1000 . 1) (1070 . 20) (1000 . 共几页) (1070 . 21) (1000 . ) (1070 . 22) (1000 . 设备型号) (1070 . 23) (1000 . ) (1070 . 24) (1000 . 产品名称) (1070 . 25) (1000 . ) (1070 . 26) (1000 . 日期) (1070 . 27) (1000 . ) (1070 . 28) (1000 . 图幅) (1070 . 29) (1000 . A4) (1070 . 30) (1000 . 审核) (1070 . 31) (1000 . ) (1070 . 32) (1000 . 审定) (1070 . 33) (1000 . ) (1070 . 34) (1000 . 第几页) (1070 . 35) (1000 . ) (1070 . 36) (1000 . 设备名称) (1070 . 37) (1000 . ) (1070 . 38) (1000 . 图样代号) (1070 . 39) (1000 . XKZ-25.08006) (1070 . 40) (1000 . 工艺) (1070 . 41) (1000 . ) (1070 . 42) (1000 . 图样名称) (1070 . 43) (1000 . ) (1070 . 44) (1000 . 零件数量) (1070 . 45) (1000 . 1件) (1070 . 46) (1000 . 企业名称) (1070 . 47) (1000 . ) (1070 . 48) (1070 . 4) (1070 . 49) (1070 . 0) (1070 . 50) (1070 . 0) (1070 . 51) (1070 . 2) (1070 . 52) (1070 . 2) (1070 . 53) (1070 . 1) (1070 . 54) (1070 . 1) (1070 . 55) (1070 . 4) (1070 . 56) (1070 . 1) (1070 . 57) (1070 . 1) (1070 . 58) (1070 . 1) (1070 . 59) (1040 . 0.04) (1070 . 60) (1000 . Tydh) (1070 . 61) (1000 . 国电南自) (1070 . 62) (1000 . 国电南自) (1070 . 63) (1000 . 国电南自)))) 目前,我用如下程序可以将其读取出来(那个repeat语句觉得很别扭,却不知道其它办法怎么弄),这个功能已经成功了 ;;; =============================================* ;;; 读取标题栏字典测试 * ;;; * (defun c:ccc ( / dicts i name) (setq dicts (dictsearch (namedobjdict) "PC_PAPER_DIC")) (repeat (setq i (length dicts)) (if (= (cdr (nth (setq i (1- i)) dicts ) ) "PC_PAPER_REC" ) (setq name (cdr (nth (1+ i) dicts))) ) ) (princ "\nPC_PAPER_REC====") (princ (entget name '("*"))) (princ) ) 现在我需要一个函数,目的是替换内容并更新该词典:例如,我现在要将(1000 . 零件名称)位置后的第2个表(1000 . 自制法兰)部分替换成(1000 . 螺栓),替换后更新词典。其中“零件名称”和“螺栓” 为变量。 万分感谢!!
|