Jump to content

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


Dizzzel71

Recommended Posts

Dizzzel71

Всем доброго времени суток.Хочу при помощи макроса менять ширину рамки с текстом. При этом в зависимости от заданных условий текст должен либо переноситься по строкам если рамка узкая, либо сжиматься без переноса строк. Есть кнопка "Уместить текст", вот её 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
alek77
30.09.2023 в 00:41, Dizzzel71 сказал:

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

swCommands_FitText

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

 

Link to post
Share on other sites
Kelny
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...
Dizzzel71
03.10.2023 в 12:02, Kelny сказал:

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

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.




  • Сообщения

    • mrvcf1
      @Дмитрий Гайдай просто дугу построй с касательностью и совпадением.
    • Дмитрий Гайдай
      Попробовал показать что я имею ввиду  
    • Дмитрий Гайдай
      При работе с эскизами в модели не хочет. По крайней мере инструментом скругление. Единственный +- адекватный способ который пока что нашел - строить скругление (ту билиберду которую он дает), а потом через редактирование параметров кривой задавать вручную касательность в крайних точках и через положение средней точки +- подгонять положение дуги и ее радиус под нужный. Не идеально, но как минимум аналитическая плавность обеспечивается.
    • mrvcf1
      @Дмитрий Гайдай все строит.  
    • Tad
    • Дмитрий Гайдай
      Господа, прошу вашей помощи. Есть аналитически плавная кривая, состоящая из эллипса, дуги окружности и скругления между ними.  Для понимания о чем речь При попытке повторить энтот профиль в NX 10.0 все упирается в скругления. NX наотрез отказывается строить смешанное сопряжение, и устраивает только внешнее. В итоге получается разного рода билиберда В прошлом вместо эллипса была окружность, тогда скругления он еще хоть как-то ставил. И то с миллионной попытки. Теперь вообще наотрез отказывается.   Куда тыкнуть этого немецкого болванчика чтобы построить смешанное сопряжение? Вариант "на глаз построить что-то похожее на скругление" не рассматриваю, нужна именно аналитически плавная геометрия.   P.S. смешанное сопряжение это вот:    
    • areg
      Здравствуйте! Прошу расценить стоимость и срок изготовления заготовок для деталей, изображенных на чертежах. Стоимость, срок изготовления штампов и сколько поковок они смогут изготовить прошу сообщить отдельной строкой. Количество 2000 штук каждой детали. Если предложите скидку возможно размещение у вас заказа на 10000 шт. единовременно. Чертеже не очень качественные, если возникнут по ним вопросы — пишите — дам пояснения. Так же интересуют специалисты в этой области на предмет платных консультаций, так как заказчик хочет освоить эту технологию. Предложения в личку.
    • maxx2000
      Некоторые метчики, развёртки имеют рабочий конец не тупой с центровочным ортверстием, а заострённый. Из-за этого ими и чертят и используют как керн. Всё в пределах нормы.  
    • vasillevich68
      Не все тут так просто. Если спать перед обедом, то можно проспать обед, и тогда будет нечего обедать. Короче, всё, как с той булевой операцией 
    • gudstartup
      Cмотреть почему нет этого сигнала по логическому уравнению! Хотя тут писали Как вы нашли этот бит подсказали?
×
×
  • Create New...