本帖最后由 yshf 于 2011-5-29 22:57 编辑
试试这个:
- (defun C:jh ()
- (vl-load-com)
- (setq text_M5_A "5.00")
- (setq text_M5_B "5.0 孔 ( %%C5钻穿 )")
- (if (setq text_txt (ssget '((0 . "DIMENSION"))))
- (progn
- (setq index 0)
- (repeat (sslength text_txt)
- (setq text_ent (ssname text_txt index)
- Object (vlax-ename->vla-object text_ent)
- ObjectName (vla-get-ObjectName Object)
- )
- (if (= ObjectName "AcDbDiametricDimension") ;直径
- (progn
- (if (= (setq text_A (vla-get-TextOverride Object)) "")
- (setq text_A (strcat "%%C" (rtos (vla-get-Measurement Object))))
- )
- (setq text_A_L (strlen text_A))
- (setq text_M5_AL (strlen text_M5_A))
- (setq n 1)
- (if (= text_M5_A "") (setq text_A_L 1))
- (repeat text_A_L
- (setq text_M5_Ax (substr text_A n text_M5_AL))
- (if (= text_M5_Ax text_M5_A)
- (progn
- (setq newsize (vl-string-subst text_M5_B text_M5_A text_A))
- (vla-put-TextOverride Object newsize)
- (vla-update Object)
- )
- )
- (setq n (1+ n))
- )
- )
- )
- (setq index (+ 1 index))
-
-
- )
- )
- )
- (princ)
- )
|