乐筑天下

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

[讨论]看看这个修改属性块的程序

[复制链接]

43

主题

152

帖子

6

银币

后起之秀

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

铜币
324
发表于 2004-5-13 14:51:00 | 显示全部楼层 |阅读模式
这个程序为什么不能只修改所选的对象了(如果我只选一个属性块,但它会循环更改图中所有的属性块):
(Defun c:SB (/ slist sname etbll)
(princ "\n修改属性值---VER 1.0。")
(SetQ sname (ssname (ssget '((0 . "INSERT"))) 0))
(setq sn sname)
(While sname
(setq slist (entget sname))
(if (= (cdr (assoc 0 slist)) "ATTRIB")
(progn
(command ".undo" "E")
(command ".undo" "BE")
(setq val (getstring (strcat "\n输入新的属性值" (cdr (assoc 1 slist)) ">>:")))
(setq val (if (= val "") (cdr (assoc 1 slist)) val))
(setq slist (subst (cons 1 val) (assoc 1 slist) slist))
(entmod slist)
(command ".undo" "E")
)
)
(setq sname (EntNext sname))
)
(entupd sn)
(princ)
)
另外能让
(setq val (getstring (strcat "\n输入新的属性值" (cdr (assoc 1 slist)) ">>:")))
换成是属性提示值吗(好像要ATTDEF对象)
(setq val (getstring (strcat "\n输入新的属性值" (cdr (assoc 1 slist)) ">>:")))
回复

使用道具 举报

101

主题

507

帖子

11

银币

中流砥柱

Rank: 25

铜币
910
发表于 2004-5-13 16:13:00 | 显示全部楼层
你用的是EntNext,他会一个一个的找下去,(if (= (cdr (assoc 0 slist)) "ATTRIB")
中多加条件,仔细看看飞班主连接给你的程序吧,我原来也搞不清楚的。
回复

使用道具 举报

29

主题

1152

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1268
发表于 2004-5-13 16:51:00 | 显示全部楼层
指令:_ddatte
回复

使用道具 举报

29

主题

1152

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1268
发表于 2004-5-14 08:14:00 | 显示全部楼层
(defun C:SB (/ SLIST SNAME ETBLL)
         (princ "\n修改屬性值---VER 1.0。")
         (setq SNAME (ssname (ssget ":s" '((0 . "INSERT") (66 . 1))) 0))
         (if SNAME
                         (progn
                                         (command ".undo" "E")
                                         (command ".undo" "BE")
                                         (setq SN                 SNAME
                                 SNAME (entnext SNAME)
                                         )
                                         (while (/= "SEQEND" (cdr (assoc 0 (setq SLIST (entget SNAME)))))
        (setq VAL (getstring (strcat "\n輸入新的屬性值"
                                                                 (cdr (assoc 1 SLIST))
                                                                 ">>:"
                                                         )
                         )
        )
        (setq VAL (if (= VAL "")
                                         (cdr (assoc 1 SLIST))
                                         VAL
                         )
        )
        (setq SLIST (subst (cons 1 VAL) (assoc 1 SLIST) SLIST))
        (entmod SLIST)
        (setq SNAME (entnext SNAME))
                                         )
                                         (entupd SN)
                                         (command ".undo" "E")
                         )
         )
         (princ)
)
回复

使用道具 举报

43

主题

152

帖子

6

银币

后起之秀

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

铜币
324
发表于 2004-5-14 08:53:00 | 显示全部楼层
龙版主的这个程序好棒,多谢了。如果能在提示里显示属性提示值就更好了。
另外你这个SEQEND是指什么?
请指教小弟的愚问。
回复

使用道具 举报

29

主题

1152

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1268
发表于 2004-5-14 13:24:00 | 显示全部楼层
;;選擇帶屬性圖塊(setq SNAME (ssname (ssget ":s" '((0 . "INSERT") (66 . 1))) 0))                Dxf 66         變動屬性伴隨旗號(可選擇的;預設值 = 0);若屬性伴隨旗號的值是 1,則插入點後預期會接著一系列屬性元件(由 seqend 元件結束)        seqend元件 標記聚合線頂點(頂點類型名稱)的結尾,或具有屬性值(由 66 群碼表示且在插入圖元中不為 0 )屬性圖元(屬性類型名稱)的結尾。這個碼不會儲存在 DXF 檔案中。
(defun C:SB (/ SLIST SNAME ETBLL SN1 SN1LIST)
         (princ "\n修改屬性值---VER 1.0。")
         (setq SNAME (ssname (ssget ":s" '((0 . "INSERT") (66 . 1))) 0))
         (if SNAME
                         (progn
                                         (command ".undo" "E")
                                         (command ".undo" "BE")
                                         (setq SN                 SNAME
                                 SNAME (entnext SNAME)
                                         )
                                         (setq SN1
                                         (cdr
                                                         (assoc -2
                                                         (tblsearch "block" (cdr (assoc 2 (entget SN))))
                                                         )
                                         )
                                         )
                                         (while (/= "SEQEND" (cdr (assoc 0 (setq SLIST (entget SNAME)))))
        (setq SN1LIST (entget SN1))
        (setq VAL (getstring (strcat "\n輸入新的屬性值"
                                                                 (cdr (assoc 1 SLIST))
                                                                 ">>:"
                                                         )
                         )
        )
        (setq VAL (if (= VAL "")
                                         (cdr (assoc 1 SLIST))
                                         VAL
                         )
        )
        (setq SLIST (subst (cons 1 VAL) (assoc 1 SLIST) SLIST))
        (entmod SLIST)
        (setq SN1 (entnext SN1))
        (setq SNAME (entnext SNAME))
                                         )
                                         (entupd SN)
                                         (command ".undo" "E")
                         )
         )
         (princ)
)
回复

使用道具 举报

43

主题

152

帖子

6

银币

后起之秀

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

铜币
324
发表于 2004-5-14 14:13:00 | 显示全部楼层
非常感谢龙版主!!
回复

使用道具 举报

43

主题

152

帖子

6

银币

后起之秀

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

铜币
324
发表于 2004-5-14 16:10:00 | 显示全部楼层
哦,龙版主,有个问题请教,用你6楼的程序测试下面这个图提参数类型错误:
        
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:rasjj0onclo.dwg 
下载次数:0  文件大小:34.32 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]

回复

使用道具 举报

43

主题

152

帖子

6

银币

后起之秀

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

铜币
324
发表于 2004-5-17 11:03:00 | 显示全部楼层
再请教龙版主,SEQEND这个是指什么?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-5-17 11:19:00 | 显示全部楼层
看看帮助文件中的创建复杂图元
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-16 23:16 , Processed in 1.190859 second(s), 89 queries .

© 2020-2025 乐筑天下

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