Тема: Изменение штриховки программным путем

Необходимо изменить образец штриховки с ANSI31 на ANSI37. Использование PatternName приводит к ошибке. Кто нибудь изменял штриховку??

Re: Изменение штриховки программным путем

Artem A пишет:

Использование PatternName приводит к ошибке.

А точнее? И код в студию.

Re: Изменение штриховки программным путем

Ну вообще я уже понял что свойство PatternName только для чтения. Код приводить похоже бессмысленно. Но тогда получается что если я хочу изменить образец штриховки то мне ее нужно заново создать а прежнюю удалить?

(изменено: Александр Ривилис, 18 мая 2010г. 13:20:52)

Re: Изменение штриховки программным путем

Artem A пишет:

Ну вообще я уже понял что свойство PatternName только для чтения.

Signature

object.PatternName

object

Hatch
The object or objects this property applies to.

PatternName

String: read-write
The hatch pattern name.

Так что менять PatternName можно.
Уточни все-таки версию AutoCAD и код.

P.S.: Перепроверил. Действительно PatternName - read-only, т.е. справка врёт.

Re: Изменение штриховки программным путем

Вот код:

Private Sub HatchA()
Dim sSetObj As AcadSelectionSet
Dim gpCode(0) As Integer
Dim dataValue(0) As Variant
Dim j As Long
Set sSetObj = ThisDrawing.SelectionSets.Add("hatch111")
gpCode(0) = 0
dataValue(0) = "HATCH"
sSetObj.Select acSelectionSetAll, , , gpCode, dataValue
For j = 0 To sSetObj.Count - 1
    sSetObj.Item(j).PatternName = "ANSI37"
Next
sSetObj.Delete
Set sSetObj = Nothing
End Sub


Версия AutoCAD 2006

(изменено: Александр Ривилис, 18 мая 2010г. 13:35:37)

Re: Изменение штриховки программным путем

Перепроверил. Действительно PatternName - read-only, т.е. справка врёт.
Но зато работает метод SetPattern:

Public Sub ChangePattern()
   Dim obj As AcadHatch
   Dim pt As Variant
   On Error GoTo ErrGet
   ThisDrawing.Utility.GetEntity obj, pt, vbCrLf + "Выберите штриховку: "
   obj.SetPattern acHatchPatternTypePreDefined, "ANSI37"
   obj.Evaluate
 ErrGet:
   
End Sub

Re: Изменение штриховки программным путем

Спасибо большое! :)