Тема: О вставке динамических блоков и изменении их свойств

ThisDrawing.SendCommand "._-insert" & vbCr & str & vbCr _
& "Масштаб" & vbCr & "1" & vbCr
для динамических блоков не работает...
Есть ли подобное решение - чтобы на курсоре "висел"?
И как программно управлять режимами (видимости или растягивания, например) в этих блоках, изменять атрибуты.

Re: О вставке динамических блоков и изменении их свойств

Ну почему же не работает, все работает и для динамических. Если надо программно менять параметры вставленного блока, то получить объект после SendCommand можно с помощью:

If ThisDrawing.ModelSpace(ThisDrawing.ModelSpace.Count - 1).ObjectName = "AcDbBlockReference" Then
   Set insertedBlock = ThisDrawing.ModelSpace(ThisDrawing.ModelSpace.Count - 1)
end if

Ну а менять значения динамических параметров можно:

AttrDin = insertedBlock.GetDynamicBlockProperties
    For Each Attr In AttrDin
        If Attr.PropertyName = "Длина" Then Attr.value = 1000
        If Attr.PropertyName = "Видимость" Then Attr.value = "Вариант1"
    Next

Само собой,все переменные надо предварительно объявить.

Re: О вставке динамических блоков и изменении их свойств

Почемуто блок вставляется и превращается в обычный, без динамических свойств. Что не так?

Re: О вставке динамических блоков и изменении их свойств

И что, если просто вставить блок средствами Acadа, то он динамический; а программно - нет? Как то не верится...

Re: О вставке динамических блоков и изменении их свойств

Вышел из ситуации так - сохраняю блок в 2009 с галочкой save block definition to drawing file, и всё ОК. В 2007 и 2008 такой галочки не нашёл.
Возможно из-за этого проблема.