Parikon Opublikowano 8 Maja 2017 Zgłoś Udostępnij Opublikowano 8 Maja 2017 (edytowane) using (zzd.DBText acText = new zzd.DBText()) { if (pełny.IsChecked == false) { acText.TextString = "%%U" + textBox.Text + "-" + textBox.Text; } else { acText.TextString = "%%UPrzekrój " + textBox.Text + "-" + textBox.Text; } acText.HorizontalMode = zzd.TextHorizontalMode.TextCenter; acText.VerticalMode = zzd.TextVerticalMode.TextBottom; acText.AlignmentPoint = ptStart; acText.Height = dimscala * 5; btr.AppendEntity(acText); tr.AddNewlyCreatedDBObject(acText, true); } Powyższy kod w AutoCAD 2010 tworzy podkreślony napis "single text". Napis ten jest wstawiany centralnie do punktu który wskazuję. Film ukazujący działanie kodu W ZwCAD 2017 użycie tak spreparowanego stringa string text = "%%UPrzekrój " + textBox.Text + "-" + textBox.Text; powoduje to, że metoda nie radzi sobie z wyznaczeniem środka tekstu. Na razie poradziłem sobie w ZwCAD poprzez rezygnację z podkreślenia. Ale wydaje mi się, że trzeba to zakwalifikować jako błąd do poprawy i zgłosić producentowi. Funkcja w ZwCAD pozbawiona podkreślenia ze względu na brak dokładnego ustawienia napisu. Edytowane 8 Maja 2017 przez Parikon Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kojacek Opublikowano 8 Maja 2017 Zgłoś Udostępnij Opublikowano 8 Maja 2017 Utwórz tekst bez podkreślenia, tak jak sugerujesz. Potem do istniejącego już dodaj "%%u". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 8 Maja 2017 Zgłoś Udostępnij Opublikowano 8 Maja 2017 Sprawdziłem to i wstawiło tekst poprawnie: z podkreśleniem i punktem wstawienia na środku tekstu. Ciekawe co robimy inaczej. Czy mógłby Pan przysłać najprostszy projekt zawierający tylko wstawienie tekstu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 8 Maja 2017 Zgłoś Udostępnij Opublikowano 8 Maja 2017 Myślę, że dobrze byłoby zsynchronizować vernum. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Parikon Opublikowano 8 Maja 2017 Autor Zgłoś Udostępnij Opublikowano 8 Maja 2017 (edytowane) // Create a single-line text object using (zzd.DBText acText = new zzd.DBText()) { if (pełny.IsChecked == false) { string text = "%%U" + textBox.Text + "-" + textBox.Text; acText.TextString = text; } else { string text = "%%UPrzekrój " + textBox.Text + "-" + textBox.Text; acText.TextString = text; } acText.HorizontalMode = zzd.TextHorizontalMode.TextCenter; acText.VerticalMode = zzd.TextVerticalMode.TextVerticalMid; acText.AlignmentPoint = ptStart; acText.Height = dimscala * 5; acText.Layer = layername; acText.ColorIndex = coloroznaczenia; acText.TransformBy(mat); btr.AppendEntity(acText); tr.AddNewlyCreatedDBObject(acText, true); anonyGroup.Append(acText.ObjectId); } vernum = "2017.04.06(15637)_x64" Tworzymy obiekt o nazwie acText któremu nadajemy właściwość Textstring Ten string zaczynamy %%U aby był podkreślony W AutoCAD tekst jest wyśrodkowany a w powyższym vernum wygląda to tak. Film w ZwCAD z podkreśleniem Edytowane 8 Maja 2017 przez Parikon Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Parikon Opublikowano 8 Maja 2017 Autor Zgłoś Udostępnij Opublikowano 8 Maja 2017 Z zachowania wynika, że metoda w ZwCAD wylicza centrum dla ciągu gdzie bierze część stringu %%U jako tekst, który powiększa długość tekstu jaki został wyświetlony, a metoda w AutoCAD uwzględnia, że ten tekst w rzeczywistości jest krótszy o te 3 niewyświetlane znaki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 8 Maja 2017 Zgłoś Udostępnij Opublikowano 8 Maja 2017 już (dopiero?) rozumiem na czym polega problem. Odpowiednie zgłoszenie przesłałem do ZWSOFT. co Pan na to, żeby skorzystać z MText zamiast Text ? using (MText objText = new MText()) { objText.Contents = "{\\LPrzekrój A-A}"; objText.SetAttachmentMovingLocation( AttachmentPoint.BottomCenter ); objText.Height = 5; zsBlkTblRec.AppendEntity(objText); ZsTrans.AddNewlyCreatedDBObject(objText, true); objText.Location = new ZwSoft.ZwCAD.Geometry.Point3d(100, 100, 0); } Parikon 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Parikon Opublikowano 9 Maja 2017 Autor Zgłoś Udostępnij Opublikowano 9 Maja 2017 Chciałem tylko zgłosić, że można dopracować metodę w .net. Dziękuję za wysłanie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Parikon Opublikowano 12 Maja 2017 Autor Zgłoś Udostępnij Opublikowano 12 Maja 2017 (edytowane) vernum 2017.05.08(17156)_x64" Poniżej próba podkreślenia textu już istniejącego w rysunku. Czyli rozwiązanie problemu jaki proponował powyżej kolega @kojacek. Tekst po podkreśleniu przesuwa się w lewo. Film Edytowane 12 Maja 2017 przez Parikon Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Parikon Opublikowano 14 Lutego 2018 Autor Zgłoś Udostępnij Opublikowano 14 Lutego 2018 Problem wydaje się rozwiązany vernum = "2018.02.11(28325)_x64" dmatusz3 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 14 Lutego 2018 Zgłoś Udostępnij Opublikowano 14 Lutego 2018 Dziękuję bardzo za informacje. Zatem zamykam wątek. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi