Jump to content

Команды API для изменения размера рамки swNote


Dizzzel71

Recommended Posts

Всем доброго времени суток.Хочу при помощи макроса менять ширину рамки с текстом. При этом в зависимости от заданных условий текст должен либо переноситься по строкам если рамка узкая, либо сжиматься без переноса строк. Есть кнопка "Уместить текст", вот её API хочу найти.

Сжатие текста делаю так:

Set txtForm = swNote.GetTextFormat
txtForm.WidthFactor = 0.7

swNote.SetTextFormat 0, txtForm

 

Координаты верхнего левого угла через swNote.SetTextPoint x,y,z

А вот уменьшить ширину рамки текста не знаю. Где это свойство width или что там?  Может где то сидят координаты маячков рамки за которые мышкой тянут? Помогите!

Link to post
Share on other sites


UnPinned posts
30.09.2023 в 00:41, Dizzzel71 сказал:

Есть кнопка "Уместить текст", вот её API хочу найти

swCommands_FitText

Но к ширине рамки Уместить текст не относится

 

Link to post
Share on other sites
30.09.2023 в 00:41, Dizzzel71 сказал:

А вот уменьшить ширину рамки текста не знаю. Где это свойство width или что там?  Может где то сидят координаты маячков рамки за которые мышкой тянут? Помогите!

Не знаю как там в последних версиях, но в старой версии вроде нельзя было поменять ширину рамки через API, после того как рамку в ручуню потягали за красные квадратики. В этом случае надо получить данные из заметки, удалить старую заметку и вставить новую с заданной шириной.

 

Вроде как-то так (выделено жирным) swTextFormat.LineLength = UpDownWeight.Value / 10 / 1000:

Цитата

Private Sub NoteAlign() ' Выравнивание заметки на листе

Note.Angle = 0
boolstatus = Note.SetBalloon(0, 0)
Dim Annotation As SldWorks.Annotation
Set Annotation = Note.GetAnnotation()
Dim swTextFormat                As SldWorks.TextFormat
    Set swTextFormat = Annotation.GetTextFormat(0)
        swTextFormat.CharHeight = UpDownHeight.Value / 10 / 1000
        swTextFormat.LineLength = UpDownWeight.Value / 10 / 1000
        swTextFormat.LineSpacing = UpDownInterval.Value / 10 / 1000
        'swTextFormat.Italic = True
        'swTextFormat.TypeFaceName = "Comic Sans MS"
Annotation.SetTextFormat 0, False, swTextFormat
'    Debug.Print swTextFormat.CharHeight
'    Debug.Print swTextFormat.LineLength
        Dim xar As String, LineCount As Long
        xar = Note.GetText
        LineCount = 1
        While InStr(xar, Chr(13)) <> 0
        xar = Right(xar, Len(xar) - InStr(xar, Chr(13)))
        LineCount = LineCount + 1
        Wend
        Debug.Print LineCount

   If ChkAlign.Value = 1 Then
       ' Определение координат заметки
       Set swSheet = ModelDoc2.GetCurrentSheet
       vSheetProps = swSheet.GetProperties
       'Debug.Print "  Width      = " & vSheetProps(5)
       'Debug.Print "  Height     = " & vSheetProps(6)
       NoteSetWidth = vSheetProps(5) - 0.185
       'NoteSetHeidth = 0.07 + RowQuantity * (swTextFormat.CharHeight + swTextFormat.LineSpacing)
       NoteSetHeidth = 0.07 + LineCount * (swTextFormat.CharHeight + swTextFormat.LineSpacing)
       longstatus = Annotation.SetLeader2(False, 0, True, True, False, False)
       boolstatus = Annotation.SetPosition(NoteSetWidth, NoteSetHeidth, 0)
   Else

        'Ни чего тут нет
   End If
End Sub

 

Link to post
Share on other sites
  • 1 month later...
03.10.2023 в 12:02, Kelny сказал:

Не знаю как там в последних версиях, но в старой версии вроде нельзя было поменять ширину рамки через API, после того как рамку в ручуню потягали за красные квадратики. В этом случае надо получить данные из заметки, удалить старую заметку и вставить новую с заданной шириной.

К сожалению это оказалось правдой... Спасибо за подсказку swTextFormat.LineLength - и правда работает когда новый swNote и его еще не тягали за рамку.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.



×
×
  • Create New...