| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Round & other ... (862 mal gelesen)
|
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 07. Apr. 2004 18:39 <-- editieren / zitieren --> Unities abgeben:         
Abend zusammen, zwei Fragen zu folgendem Codeversuch: 1.Irgendwie klappt weder die Funktion 'Round' noch 'FormatNumber' bei mir, da kommt immer 'Sub oder Function nicht definiert' ??? 2. Wie müsste der Code lauten, wenn ich gleichzeitig einen zweiten Text - von mir aus text2="blablabla" - etwa um 1 oberhalb der y-Achse des ersten Textes anordnen möchte? lg Nancy -- Sub test() Dim sset As AcadSelectionSet Set sset = ThisDrawing.SelectionSets.Add("sset_3") Dim pline As AcadEntity Dim textObj As AcadText Dim text$ Dim insertionPoint(0 To 2) As Double Dim minPoint, maxPoint sset.SelectOnScreen For Each pline In sset 'text = Str(Round(pline.Area, 2)) 'text = Str(formatnumber(pline.Area, 2)) text = Str(pline.Area) pline.GetBoundingBox minPoint, maxPoint insertionPoint(0) = ((maxPoint(0) - minPoint(0)) / 2) + minPoint(0) insertionPoint(1) = ((maxPoint(1) - minPoint(1)) / 2) + minPoint(1) insertionPoint(2) = ((maxPoint(2) - minPoint(2)) / 2) + minPoint(2) Set textObj = ThisDrawing.ModelSpace.AddText(text, insertionPoint, 1) Next sset.Delete End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
harryk Mitglied Projektleiter
 
 Beiträge: 124 Registriert: 19.08.2003
|
erstellt am: 07. Apr. 2004 19:08 <-- editieren / zitieren --> Unities abgeben:          Nur für startrek
tach auch, round und formatnumber geht bei mir einwandfrei (ac2k2 und mso2k auf xp), ist aber keine autocad spezifische funktion, vielleicht mal verweise überprüfen. ansonsten: Sub test() Dim sset As AcadSelectionSet Set sset = ThisDrawing.SelectionSets.Add("sset_1") Dim pline As AcadEntity Dim textObj As AcadText Dim text$ Dim insertionPoint(0 To 2) As Double Dim minPoint, maxPoint 'machst du hier.... Dim firstText As Boolean Dim txtPoint(0 To 2) As Double sset.SelectOnScreen For Each pline In sset text$ = Str(Round(pline.Area)) 'text = Str(formatnumber(pline.Area, 2)) ' text = Str(pline.Area) pline.GetBoundingBox minPoint, maxPoint insertionPoint(0) = ((maxPoint(0) - minPoint(0)) / 2) + minPoint(0) insertionPoint(1) = ((maxPoint(1) - minPoint(1)) / 2) + minPoint(1) insertionPoint(2) = ((maxPoint(2) - minPoint(2)) / 2) + minPoint(2) 'und dann hier... If firstText = True Then txtPoint(1) = txtPoint(1) + 1 Else txtPoint(0) = insertionPoint(0): txtPoint(1) = insertionPoint(1): txtPoint(2) = insertionPoint(2) Set textObj = ThisDrawing.ModelSpace.AddText(text, txtPoint, 1) firstText = True End If Set textObj = ThisDrawing.ModelSpace.AddText(text, txtPoint, 1) Next sset.Delete End Sub gruss, harry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 07. Apr. 2004 19:46 <-- editieren / zitieren --> Unities abgeben:         
Hi Harry, thx für das schnelle Reply. Okay was Round & Co angeht, prüf ich mal, aber komisch kommts mir schon vor, sind ja reine VB's oder? [a2k/win98/win2k] Zum andern, bin heut nimmer sooo taufrisch irgendwie ... aaalso eigentlich sollte er für jede Polyline zwei Zeilen Text [jeweils mittig Bounding] platzieren. Allerdings schreibt er mir innerhalb der ersten pline nun alles untereinander. Naja aber ein Ansatz is ja nun da, ich werd mal versuchen das umzubasteln, auch wenn die Bool's nich so meine Kumpels sind, true & false verwechsel ich mind. genauso oft wie rechts und links  Nichtsdestotrotz, ich danke Dir  lg Nancy -- If this were a logical world, men would ride sidesaddle. Rita Mae Brown Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
harryk Mitglied Projektleiter
 
 Beiträge: 124 Registriert: 19.08.2003
|
erstellt am: 08. Apr. 2004 04:11 <-- editieren / zitieren --> Unities abgeben:          Nur für startrek
ähhh, ja klar, hab mich schon gewundert was das soll. dann halt nix mit boolen: Sub test() Dim sset As AcadSelectionSet Set sset = ThisDrawing.SelectionSets.Add("sset_1") Dim pline As AcadEntity Dim textObj As AcadText Dim text$ Dim insertionPoint(0 To 2) As Double Dim minPoint, maxPoint sset.SelectOnScreen For Each pline In sset text$ = Trim(Str(Round(pline.Area))) 'text = Str(formatnumber(pline.Area, 2)) ' text = Str(pline.Area) pline.GetBoundingBox minPoint, maxPoint insertionPoint(0) = ((maxPoint(0) - minPoint(0)) / 2) + minPoint(0) insertionPoint(1) = ((maxPoint(1) - minPoint(1)) / 2) + minPoint(1) insertionPoint(2) = ((maxPoint(2) - minPoint(2)) / 2) + minPoint(2) Set textObj = ThisDrawing.ModelSpace.AddText(text$, insertionPoint, 1) text$ = "blablabla...": insertionPoint(1) = insertionPoint(1) + textObj.height * 1.5 Set textObj = ThisDrawing.ModelSpace.AddText(text$, insertionPoint, 1) Next sset.Delete End Sub gruss, harry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 08. Apr. 2004 09:38 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |