好的,从我在另一个帖子上得到的图纸中的同一块。
我想根据版本更改查找1。
现在,当我在旧版本中传递它时,它工作了:
- (vlax-for lt (vla-get-layouts adoc)
- ;(vla-put-activelayout adoc lt) ; optionnel
- (vlax-for obj (vla-get-block lt)
- (if (and (= "AcDbBlockReference" (vla-get-objectname obj))
- (member (vla-get-effectivename obj) Nombloc)
- (= :vlax-true (vla-get-hasattributes obj) ))
- (progn
- (setq atts (vlax-invoke obj 'getattributes))
- (foreach x atts
-
- (if (= Tag#Pg (vla-get-tagstring x))
- (vla-put-textstring x Tnumtabs)
- )
- (setq N-E-dbp (nth 2 (vlax-invoke obj 'GetDynamicBlockProperties)))
- (vla-put-value N-E-dbp TRev)
- )
- )
- )
- )
- )
但现在它无法从其他代码中获取VLA对象。
所以当我通过这个密码时:
- [/code]
- 现在我的代码是这个,它不工作了
- [code](defun _Revision (/ TRev TDesc Tdate TPar TApp
- TagRev TagNRev TagDesc TagDat TagPar TagApp
- lt obj atts x DynBP)
- ;| Élénment de text |;
- (if (= choix "N")
- (setq TRev "0"))
- (if (= choix "R")
- (setq TRev (itoa (fix (getreal "\n Numéro de révision : ")))))
- (setq TDesc (strcase (getstring T "\n Donner la raison de la révision. : "))
- Tdate (_Today)
- )
-
- (initget 1 "C F J S")
- (setq TPar (getkword "\n Qui a fait les changements sur le plan? [Charle/François/Julieta/Simon]: "))
- (if (= TPar "C")(setq TPar "C.L"))
- (if (= TPar "F")(Setq TPar "F.L"))
- (if (= TPar "J")(setq TPar "J.L"))
- (if (= TPar "S")(setq TPar "S.D"))
-
- (initget 1 "J S")
- (setq TApp (getkword "\n Qui a approuvé les changement [Julieta/Simon]: "))
- (if (= TApp "J")(setq TApp "J.L"))
- (if (= TApp "S")(setq TApp "S.D"))
- ;| Élénment des TAG |;
- (setq TagRev "REV"
- TagNRev (strcat "N°REV" TRev)
- TagDesc (strcat "DESCRITION" TRev)
- TagDat (strcat "DATE" TRev)
- TagPar (strcat "PAR" TRev)
- TagApp (strcat "APP" TRev)
- )
- ;Inscrit le texte dans chacun des attributs
-
- (mapcar '_Text->Attribute->Layout
- (list TagRev TagNRev TagDesc TagDat TagPar TagApp)
- (list TRev TRev TDesc Tdate TPar TApp)
- )
-
- )
|