(defun c:test ()
(setq ad (_GetAeccDocument)) ;Get the Aecc Document
(setq s (vlax-get-property ad 'Settings))
;Get the aecc settings from the Aecc Document
(setq ds (vlax-get-property s 'DrawingSettings))
;Get the Drawing Settings from the aecc settings
(setq as (vlax-get-property ds 'AbbreviationSettings))
;Get the abbreviation settings from the drawing settings
(setq alignAbbrev (vlax-get-property as 'AlignmentAbbreviations))
;Get the Alignment abbreviations from the abbreviation settings
(setq alignBeg (vlax-get-property alignAbbrev 'AlignmentBeginning))
;Get the alignment beginning abbreviation from the alignment abbreviations
(princ (strcat "
Current AlignmentBeginning Abbreviation: "
alignBeg
)
) ;Print the current value of the alignment beginning abbreviation
(vlax-put-property alignAbbrev 'AlignmentBeginning "BEG")
;Set the value of the Alignment Beginning abbreviation
(princ
(strcat "
New AlignmentBeginning Abbreviation: "
(vlax-get-property alignAbbrev 'AlignmentBeginning)
)
) ;Print the new value of the alignment beginning abbreviation
(princ) ;exit clean
)
(defun _GetAeccDocument ()
(setq C3D (strcat "HKEY_LOCAL_MACHINE\"
(if vlax-user-product-key
(vlax-user-product-key)
(vlax-product-key)
)
)
C3D (vl-registry-read C3D "Release")
C3D (substr
C3D
1
(vl-string-search "." C3D (+ (vl-string-search "." C3D) 1))
)
C3D (vla-getinterfaceobject
(vlax-get-acad-object)
(strcat "AeccXUiLand.AeccApplication." C3D)
)
)
(vlax-get-property C3D 'ActiveDocument)
)
2020年2月19日
留存这段代码是准备翻译成.net语言的,
刚搜索了一下其中个别方法,
可以用Autodesk.AutoCAD.Runtime.SystemObjects.DynamicLinker.ProductKey
或者Autodesk.AutoCAD.DatabaseServices.HostApplicationServices.Current.UserRegistryProductRootKey
原帖在此,上面的方法是够可行还没进行验证。