| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Gitterkreuze im Papierbreich (1536 mal gelesen)
|
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 16. Sep. 2005 16:09 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe wieder mal ein Problem (Brett vorm Kopf oder so) Ich habe im Papierbereich Fahnen zu einer Karte erzeugt. Jetzt möchte ich noch an den glatten Koordinatenschnittpunkten Gitterkreuze erzeugen. Die Frage ist, wie errechne ich am einfachsten die Positionen der Einfügepunkte ??? Bekannt sind Papier- und Modellbereichskoordinaten der Eckpunkte und der Drehwinkel des Anzeigefensters. Stelli1 ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 17. Sep. 2005 18:40 <-- editieren / zitieren --> Unities abgeben:
Hallo, habs umständlich selber hinbekommen. Ich wollte das über eine Matrix zur Umformung lösen. Die hab ich leider nicht mehr hinbekommen und habe es Vermessungsmäßig gelöst. Hat hier einer noch einen Lösungsansatz mit Transformationsmatrix? Stelli Anbei noch mein Code zur Verwendung:
Code:
erste_StationR = (Int(MinY / Abstand)) * Abstand erste_StationR = erste_StationR + Abstand erste_StationH = (Int(MinX / Abstand)) * Abstand erste_StationH = erste_StationH + Abstand ' Gitterkreuze Dim Dy#, Dx#, Riwi#, Strecke#, Str_Faktor# ' Es wird ein Raster durchlaufen das durch die Modelbereichs Extremwerte ' der vier Ecken begrenzt wird For rechts = erste_StationR To MaxY Step Abstand For Hoch = erste_StationH To MaxX Step Abstand ' -- Drehstreckung ' Richtungswinkel und Strecke zwischen Mittelpunkt ' und geplantem Rasterpunkt/Gitterkreuz im Modelbereich Dy = rechts - ModelYZentrum Dx = Hoch - ModelXZentrum Riwi = x_Riwi(0, 0, Dy, Dx) Strecke = Sqr(Dy * Dy + Dx * Dx) ' Skalierfaktor zwischen Papier und Modelbereich Str_Faktor = PapierBreite / ModelBreite ' Strecke auf Länge im anderen Koordinatensystem Strecke = Strecke * Str_Faktor ' Richtung um Verdrehung der Koordinatensysteme ändern Riwi = Riwi + Drehung ' Punktkoordinaten im Papierbereich EPunkt(0) = PapierYZentrum + (Sin(Gon2Rad(Riwi)) * Strecke) EPunkt(1) = PapierXZentrum + (Cos(Gon2Rad(Riwi)) * Strecke) ' Prüfen ob Punkt in das Ansichtsfenster fällt ' (Liegt keine Drehung vor liegen alle Punkte innerhalb) If EPunkt(0) > Y_ul And EPunkt(0) < Y_ur Then If EPunkt(1) > X_ul And EPunkt(1) < X_ol Then ' Blockreferenz im Papierbereich einfügen Set obj_ACAD_Papierbereich = obj_ACAD_app.ActiveDocument.PaperSpace Set obj_ACAD_Entity = obj_ACAD_Papierbereich.InsertBlock(EPunkt, Blockname, 1, 1, 1, 0) obj_ACAD_Entity.Layer = "0" obj_ACAD_Entity.Color = 256 obj_ACAD_Entity.Rotation = Gon2Rad(ChangeRichtung(Drehung)) obj_ACAD_Entity.Update ' Xdaten Markierung zum löschen setzen ac_SetXdata obj_ACAD_Entity, "IS_TOOLS_PLOT", obj_ACAD_app.ActiveDocument.ActiveLayout.ObjectID End If End If Next Hoch Next rechts
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|