马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 st788796 于 2013-11-27 18:14 编辑
目前API还有Layout几个属性没有加入,写的有些罗嗦,不过是一种思路
 - (defun c:tt (/ e pre num BlockName Papers Tag)
- (if (and (setq e (car (nentsel "\n点选编号属性: ")))
- (= (xdrx_getpropertyvalue e "IsA") "AcDbAttribute")
- (setq pre (getstring "\n前缀: "))
- (setq num (getint "\n起始编号: "))
- )
- (progn
- (setq Tag (xdrx_getpropertyvalue e "Tag")
- BlockName (car (xdrx_getpropertyvalue
- (xdrx_getpropertyvalue e "Owner")
- "BlockTableRecord"
- )
- ) ;_获取所属图块名
- Papers (vl-sort
- (mapcar
- 'cadr
- (vl-remove-if-not
- '(lambda (x) (wcmatch (car x) "`*Paper*"))
- (XD::Object:Get "Block")
- )
- ) ;_获取所有图纸空间
- '(lambda (l1 l2)
- (< (cdr
- (assoc
- 1
- (reverse
- (entget (xdrx_getpropertyvalue
- l1
- "Layout"
- )
- )
- )
- )
- )
- (cdr (assoc
- 1
- (reverse
- (entget (xdrx_getpropertyvalue
- l1
- "Layout"
- )
- )
- )
- )
- )
- )
- )
- ) ;_排序后和显示一致(layoutlist) getTabSort
- )
- (mapcar
- '(lambda (x)
- (mapcar
- '(lambda (a)
- (if
- (and
- (= (xdrx_getpropertyvalue a "IsA")
- "AcDbBlockReference"
- )
- (= (car (xdrx_getpropertyvalue a "BlockTableRecord"))
- BlockName
- )
- )
- (mapcar
- '(lambda (b)
- (princ "\n")
- (princ (xdrx_getpropertyvalue b "Tag"))
- (if (= (xdrx_getpropertyvalue b "Tag") Tag)
- (progn (xdrx_setpropertyvalue
- b
- "Textstring"
- (strcat pre (itoa num))
- )
- (setq num (1+ num))
- )
- )
- )
- (xdrx_insert_getattribs a)
- )
- )
- )
- (mapcar 'cadr (XD::Object:Get x)) ;_当前图纸空间所有实体
- )
- )
- (reverse Papers)
- ) ;_遍历所有图纸空间
- )
- )
- (princ)
- )
|