Originally Posted by
Rui Pestana
Caro leo_munters o erro está em que você está a acrescentar um bloco, visto como definição, na colecção de blocos de um desenho.
Para entender melhor o que estou a dizer abra um desenho e execute o comando ".insert". Aparece-lhe uma caixa de diálogo e no canto superior esquerdo tem uma caixa de texto com uma seta para baixo (ComboBox) os itens dessa lista são a colecção de blocos do desenho. isto é são os blocos que se podem inserir como "BLOCK REFERENCE". Experimente a inserir um bloco no desenho e execute o comando ".List" selecionando esse bloco. Vai reparar que o objecto é um ""BLOCK REFERENCE" e não um "BLOCK".
Isto tudo para dizer que: para inserir um "bloco" deve instanciar-se um AcadBlockReference e não um AcadBlock. Veja o seu exemplo alterado:
' Define the blockreference
Dim blockRef AcadBlockreference
Dim insertionPnt(0 To 2) As Double
Dim pathform As String
pathform = "C:/eletrico/forma4.dwg"
insertionPnt(0) = 0
insertionPnt(1) = 0
insertionPnt(2) = 0
Set blockObj = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, pathform,1,1,1,0)
'end of code
Notas:
1. Se o Bloco já existir no desenho basta inserir o seu nome, não é necessário o caminho completo.
2. Os Valores 1,1,1,0 dizem respeito a: escala em X, Y, Z e rotação por esta ordem.
3. Procure "InsertBlock" na ajuda VB do AutoCAD.
Cumprimentos,
Rui Pestana.
PS. Desculpe-me o Filipe pois obviamente o seu método também funciona.