95
477
383
后起之秀
使用道具 举报
106
1万
101
顶梁支柱
; update the COGG title blocks in a dwg; change the 410 to layout name;;-------------------=={ Parse Numbers }==--------------------;;;; ;;;; Parses a list of numerical values from a supplied string. ;;;;------------------------------------------------------------;;;; Author: Lee Mac, Copyright © 2011 - [url="http://www.lee-mac.com"]www.lee-mac.com[/url] ;;;;------------------------------------------------------------;;;; Arguments: ;;;; s - String to process ;;;;------------------------------------------------------------;;;; Returns: List of numerical values found in string. ;;;;------------------------------------------------------------;;(defun LM:ParseNumbers ( s ) ( (lambda ( l ) (read (strcat "(" (vl-list->string (mapcar (function (lambda ( a b c ) (if (or (< 47 b 58) (and (= 45 b) (< 47 c 58) (not (< 47 a 58))) (and (= 46 b) (< 47 a 58) (< 47 c 58)) ) b 32 ) ) ) (cons nil l) l (append (cdr l) (list nil)) ) ) ")" ) ) ) (vl-string->list s) ))(defun ah:sheetupdate1 ( / ss1 len lay plotabs tabname dwgname oldtag1 oldtag2 oldtag3 oldtag4 oldtag5)(setq doc (vla-get-activedocument (vlax-get-acad-object)))(vlax-for lay (vla-get-Layouts doc) (setq plotabs (cons (vla-get-name lay) plotabs)))(IF (NOT AH:getval3)(LOAD "GETVALS"))(AH:getval3 "Please enter dwg number" 12 9 "Please enter version for all sheets <Cr> no change" 8 5 "Please enter line1 details " 40 38)(setq dwgname VAL1)(setq newstr4 VAL2)(SETQ NEWSTR6 VAL3)(princ "0")(setq len (length plotabs))(setq x 0)(setq bname "DA1DRTXT")(repeat len (setq tabname (nth x plotabs)) (if (/= tabname "Model") (progn (setvar "ctab" tabname) (command "pspace") (setq ss1 (ssget "x" (list (cons 0 "INSERT") (cons 2 bname)(cons 410 tabname)))) (setq dwgnum (Lm:parsenumbers tabname)) (setq sheetnum (car dwgnum)) (setq oldtag1 "SHT_NO") ;attribute tag name (setq newstr1 (rtos sheetnum 2 0)) (setq oldtag2 "DRG_NO") ;attribute tag name (setq oldtag3 "PROJ_NO") ;attribute tag name (setq newstr3 dwgname) (setq oldtag4 "REV_NO") ;attribute tag name (setq oldtag5 "SHEETS") ;attribute tag name (setq oldtag6 "STREET") ;attribute tag name; if less than 10(if (< (car dwgnum) 10.0) (setq newstr2 (strcat dwgname "-D0" (rtos sheetnum 2 0))) (setq newstr2 (strcat dwgname "-D" (rtos sheetnum 2 0)))) (foreach att (vlax-invoke (vlax-ename->vla-object (ssname SS1 0 )) 'getattributes) (if (= oldtag1 (strcase (vla-get-tagstring att))) (vla-put-textstring att newstr1) ) ; end if (if (= oldtag2 (strcase (vla-get-tagstring att))) (vla-put-textstring att newstr2) ) ; end if (if (= oldtag3 (strcase (vla-get-tagstring att))) (vla-put-textstring att newstr3) ) ; end if (if (and (/= newstr4 nil) (= oldtag4 (strcase (vla-get-tagstring att))) ) (vla-put-textstring att newstr4) ) ; end if (if (= oldtag5 (strcase (vla-get-tagstring att))) (vla-put-textstring att (rtos (- len 1) 2 0)) ) ; end if(if (= oldtag6 (strcase (vla-get-tagstring att))) (vla-put-textstring att newstr6) ) ; end if ) ; end foreach ) ; end progn) ; end if(setq x (+ x 1))) ; end repeat(setq ss1 nil) ) ; end defun ah(ah:sheetupdate1)(princ)
本版积分规则 发表回复 回帖后跳转到最后一页
微信公众平台
扫描访问手机版
点击图片下载手机App
|关于我们|小黑屋|乐筑天下 繁体中文
GMT+8, 2025-3-13 13:51 , Processed in 0.551156 second(s), 58 queries .
© 2020-2025 乐筑天下
在线时间:10:00-17:00
暂无
扫一扫,关注我们
帮助中心
关于我们
下载APP客户端