Este trecho de código abaixo, que não é bem uma subrotina, criar algumas variaveis globais que uso nos meus programas e carrega a TLB do civil 3d (2007 e 2008) e deve ser usada sempre que aparecer funções começando com “cvl*”. para facilitar, elas estão destatacadas assim: “cvl*”, pode parecer estranho, mas se você escreve programas grandes e complicados, deve estar separando o código em varios arquivos e depois junta tudo num VLX… se nao está, deveria, hehehe
mais…
(vl-load-com) ;2008-05-16
(setq acadapp (vlax-get-acad-object)
thisdrawing (vla-get-activedocument acadapp))
aec-ver (vl-position t
(list (= aec-ver “17.0s (LMS Tech)”);2007
(= aec-ver “17.1s (LMS Tech)”);2008
(= aec-ver “17.2s (LMS Tech)”);2009
)))
(IF aec-ver
(PROGN
(SETQ aec-tlb (strcat (vl-filename-directory (findfile “acad.exe”))
“\\Civil\\AeccXLand”
(nth aec-ver ‘(“40” “” “”))
“.tlb”))
(if (not (vl-catch-all-error-p
(Setq aec-app (vl-catch-all-apply
‘vla-GetInterfaceObject
(list acadapp
(strcat “AeccXUiLand.AeccApplication.”
(nth aec-ver
‘(“4.0” “5.0” “6.0”))))))))
(setq aec-rod (vla-GetInterfaceObject acadapp
(strcat “AeccXUiRoadway.AeccRoadwayApplication.”
(nth aec-ver ‘(“4.0” “5.0” “6.0”))))
aec-roaddoc (vla-get-activedocument aec-rod)
aec-adoc (vla-get-activedocument aec-app)
aec-db (vla-get-database aec-adoc)))
(vlax-import-type-library
:tlb-filename aec-tlb
:methods-prefix “cvlm-“
:properties-prefix “cvlp-“
:constants-prefix “cvlc-“))))
(setq acadapp (vlax-get-acad-object)
thisdrawing (vla-get-activedocument acadapp))
(
setq aec-ver (vla-get-version acadapp)aec-ver (vl-position t
(list (= aec-ver “17.0s (LMS Tech)”);2007
(= aec-ver “17.1s (LMS Tech)”);2008
(= aec-ver “17.2s (LMS Tech)”);2009
)))
(IF aec-ver
(PROGN
(SETQ aec-tlb (strcat (vl-filename-directory (findfile “acad.exe”))
“\\Civil\\AeccXLand”
(nth aec-ver ‘(“40” “” “”))
“.tlb”))
(if (not (vl-catch-all-error-p
(Setq aec-app (vl-catch-all-apply
‘vla-GetInterfaceObject
(list acadapp
(strcat “AeccXUiLand.AeccApplication.”
(nth aec-ver
‘(“4.0” “5.0” “6.0”))))))))
(setq aec-rod (vla-GetInterfaceObject acadapp
(strcat “AeccXUiRoadway.AeccRoadwayApplication.”
(nth aec-ver ‘(“4.0” “5.0” “6.0”))))
aec-roaddoc (vla-get-activedocument aec-rod)
aec-adoc (vla-get-activedocument aec-app)
aec-db (vla-get-database aec-adoc)))
(
if (findfile aec-tlb)(vlax-import-type-library
:tlb-filename aec-tlb
:methods-prefix “cvlm-“
:properties-prefix “cvlp-“
:constants-prefix “cvlc-“))))