| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: Vorhandene Zeichnung Skalieren, Positionieren und anschließend Exceltabelle einfügen (2956 mal gelesen)
|
CoXiDo Mitglied

 Beiträge: 12 Registriert: 27.02.2005
|
erstellt am: 28. Feb. 2005 09:37 <-- editieren / zitieren --> Unities abgeben:         
Hallo, bin neu hier und auch ohne Erfahrung was AutoCAD angeht, muß allerdings für bestimmmte Leute ne Automatisierungssoftware schreiben. Hab es geschafft mit VBA bis jetzt über OLE AutoCAD 14R anzusprechen und Dateien zu öffnen. Doch nach Stunden der forschung komm ich nicht weiter und hoffe bei euch hier fündig zu werden. Problem: Ich soll eine vorhandene AutoCAD zeichnung als erstes Skalieren. Sie soll komplett auf eine bestimmte höhe verkleinert werden, danach soll ich sie an einen bestimmten punkt positionieren und zu guter letzt eine Exceltabelle als autocadobjekt unter diese zeichnung an einer bestimmten postion einfügen. Zum schluß soll das ganze unter ein DIN A3 Blatt alles ausgedruckt werden. Kann mit da jemand weiter Helfen? Zusätzliche Info: Alle layer in ACAD sollen aktiviert sein. Übersourcecodebeispiele währe ich sehr dankbar. Danke
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Huebi Mitglied Vermessungsing.
 
 Beiträge: 107 Registriert: 08.01.2004 Intel Core Duo E6750@2.66GHz NVIDIA GeForce 8600 GT AutoCAD 2004, 2007, 2008 AcadMAP 2004 und 2007 Civil 3D 2008 ADT 2009
|
erstellt am: 28. Feb. 2005 10:38 <-- editieren / zitieren --> Unities abgeben:          Nur für CoXiDo
Servus CoXiDo, erstmal wilkommen im Forum! Ohne AutoCAD Kenntnisse wirst Du Dir sehr hart tun bei dem was Du vor hast, da VBA für AutoCAD natürlich an den Methoden und Funktionen in AutoCAD zusammenhängt. Zuerst versuche doch mal zu beschreiben, wie Du das, was Du machen möchtest, manuell in AuoCAD machen würdest. Es klingt so, als möchtest Du einen Ausschnittplot verkleinert auf ein festes Format bringen und dazu via OLE eine Excel-Tabelle einblenden. Das mit dem Einblenden von Excel-Tabellen wurde schon mehrfach im AutoCAD-Forum beschrieben (schau mal unter Suchen nach) und ich hab wenig Hoffnung, daß Du das mit VBA automatisieren kannst. Beschreibe doch mal die Schritte, die das künfige Programm abarbeiten soll und vielleicht (sehr wahrscheinlich, wenn die Fragestellung konkret ist) wird Dir dann hier im Forum bei der Umsetzung (wenn's hakt) geholfen. Liebe Grüße aus München Hübi ------------------ Schaun ma mal, dann seng ma scho....  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoXiDo Mitglied

 Beiträge: 12 Registriert: 27.02.2005
|
erstellt am: 28. Feb. 2005 11:52 <-- editieren / zitieren --> Unities abgeben:         
An Hubi, erstmal möchte ich auf deine Antwort eingehen. Ich kenn mich zwar nicht aus aber ich denke es sollte doch nicht so unlösbar sein. Es ist ja kein Problem den Modelbereich auf dem sich die zeichnung befindet auszulesen und z.B. einen normalen Text einzufügen. Es ist ja auch kein Problem einzelne linien oder Kreise zu selektieren und z.B. die Farbe und position zu bestimmen. 1.Frage: wie selektiere ich ein komplettes Bild im Modelbereich? 2. Frage: wie verändere ich die Größe und die postition der kompletten auswahl 3. Frage: einfügen der daten aus meiner Excel Tabelle ob nun die komplette Tabelle oder nur die ausgelesenen daten eingebunden werden könne ist egal. Ich erstelle mit den Daten nur eine Legende die unter der Zeichnung beim ausdrucken sichbar sein soll.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoXiDo Mitglied

 Beiträge: 12 Registriert: 27.02.2005
|
erstellt am: 28. Feb. 2005 12:45 <-- editieren / zitieren --> Unities abgeben:         
Hi, damit jeder mein Problem versteht hier die mauelle vorgehensweise: -mit der Maus die komplette Zeichnung selektieren mit allen erstellten Layern -Zeichnung skalieren. Höhe = 146mm -Zeichnung move(alle, erster punkt 0,0, zweiter 20,145) -Rasterabstand mit LIMMAX 1980,297 -Excelvorgehensweise: aus einer Exceltabelle werden zuerst 20 Zeilen kopiert (STRG+C) und dann in AutoCAD als "AUTOCAD-Objekt" eingefügt -skalierfaktor x= 0,34, y=0,531 -im Autocad den befehl explode eingeben um layer und farbe ändern zu können danke im vorraus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Huebi Mitglied Vermessungsing.
 
 Beiträge: 107 Registriert: 08.01.2004 Intel Core Duo E6750@2.66GHz NVIDIA GeForce 8600 GT AutoCAD 2004, 2007, 2008 AcadMAP 2004 und 2007 Civil 3D 2008 ADT 2009
|
erstellt am: 28. Feb. 2005 14:11 <-- editieren / zitieren --> Unities abgeben:          Nur für CoXiDo
Hallo CoXiDo, ich denke, zuerst brauchst Du die Maximalwerte (Ausdehnung) Deiner Zeichnung um sie skalieren zu können. Schau Dir dazu mal diesen Beitrag an: http://ww3.cad.de/foren/ubb/Forum259/HTML/000520.shtml Den Befehl "_scale" und "_move" machst Du am besten via "SendCommand" z.B. so (unter der Annahme, Deine Zeichungseinheit entspricht 1mm): Code:
Dim AllMin, AllMax As Variant 'Die zuvor ermittelten Maximalwerte Dim XMinStr, YMinStr, ScaleFaktor As String Const SollHoehe = 146ScaleFaktor = CStr(SollHoehe / (AllMax(1) - AllMin(1))): If InStr(ScaleFaktor, ",") Then Mid(ScaleFaktor, InStr(ScaleFaktor, ","), 1) = "." XMinStr = CStr(AllMin(0)): If InStr(XMinStr, ",") Then Mid(XMinStr, InStr(XMinStr, ","), 1) = "." YMinStr = CStr(AllMin(1)): If InStr(YMinStr, ",") Then Mid(YMinStr, InStr(YMinStr, ","), 1) = "." 'Skalieren ThisDrawing.SendCommand "_scale" & vbCr & "alle" & vbCr & vbCr & _ XMinStr & "," & YMinStr & vbCr & ScaleFaktor & vbCr 'verschieben ThisDrawing.SendCommand "_move" & vbCr & "alle" & vbCr & vbCr & _ "0,0" & vbCr & "20,145" & vbCr
Wozu Du den Wert von LIMMAX ändern magst kann ich nicht ganz nachvollziehen (und muß es eigentlich auch nicht) aber das geht natürlich analog: Code:
ThisDrawing.SendCommand "LIMMAX" & VbCr & "1980,297" & VbCr
Beim Einfügen der Excel-Tabelle passe ich. Es ist mir auch neu, daß man diese als AuoCAD-Objekt einfügen kann. Ich kenne nur das Einblenden der Tabelle als OLE-Objekt, das über AutoCAD Befehle nicht angesprochen werden kann. Falls es da was anderes gibt, würde es mich freuen, wenn ich davon auch erfahren würde. Ich hoffe, es hat was geholfen Hübi
------------------ Schaun ma mal, dann seng ma scho....  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoXiDo Mitglied

 Beiträge: 12 Registriert: 27.02.2005
|
erstellt am: 28. Feb. 2005 16:13 <-- editieren / zitieren --> Unities abgeben:         
Hi, jo die ansätze waren schon super. Allerdings hätt ich da trotzdem noch ein paar fragen. Also als erstes, ich programmiere ja mit VB6 und nicht mit dem vom Autocad mitgelierferten VBA. Daher kann ich solche Objekte wie ThisDrawing und die Methode SendCommand nicht benutzen bzw. finden. Desweiteren hatte ich die idee die Funktion ScaleEntity(BasePoint, ScaleFactor) einzugeben. Mein Code Dim Selectionset As Object Set Selectionset = acadDoc.SelectionSets.Add("Test") Dim p1(0 To 2) As Double, p2(0 To 2) As Double
Dim selmin, selmax As Variant p1(0) = 0 p1(1) = 0 p1(2) = 0 p2(0) = 1000 p2(1) = 1000 p2(2) = 0 selmin = p1 selmax = p2 Selectionset.Select acSelectionSetAll, selmin, selmax Selectionset.ScaleEntity(BasePoint, ScaleFactor) Ich habe gehofft das dieses schon klappen würde aber tuts net. WALUM? :-) Danke
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Huebi Mitglied Vermessungsing.
 
 Beiträge: 107 Registriert: 08.01.2004 Intel Core Duo E6750@2.66GHz NVIDIA GeForce 8600 GT AutoCAD 2004, 2007, 2008 AcadMAP 2004 und 2007 Civil 3D 2008 ADT 2009
|
erstellt am: 28. Feb. 2005 17:04 <-- editieren / zitieren --> Unities abgeben:          Nur für CoXiDo
Servus CoXiDo, Zitat: Also als erstes, ich programmiere ja mit VB6 und nicht mit dem vom Autocad mitgelierferten VBA. Daher kann ich solche Objekte wie ThisDrawing und die Methode SendCommand nicht benutzen bzw. finden.
Du benutzt doch die Variable "acadDoc" die Du auch als AutoCAD-Document in Deinem VB6 Programm definierst. Nun nimm einfach den Namen "ThisDrawing" und ersetze es mit Deinem "acadDoc" und schon sollte es funktionieren. Hier mal ein Schnellschuß in VB6: Code:
Private Sub Command1_Click()Dim AcadApp As Object Dim MyDrawing As AcadDocument Dim Min, Max, AllMin, AllMax As Variant Dim AcSSet As AcadSelectionSet Dim FilterType(0) As Integer Dim FilterData(0) As Variant Dim ScaleFactor As Double On Error Resume Next Set AcadApp = GetObject(, "Autocad.Application") If Err <> 0 Then MsgBox ("Bitte die betreffende Zeichnung in AutoCAD öffnen") End If AcadApp.Visible = True Set MyDrawing = AcadApp.ActiveDocument On Error GoTo 0 'Filter auf den Modellbereich setzen FilterType(0) = 67 FilterData(0) = "0" 'Erstelle Auswahlsatz "Alle" On Local Error Resume Next If TypeName(MyDrawing.SelectionSets("Auswahl")) = "Nothing" Then Set AcSSet = MyDrawing.SelectionSets.Add("Auswahl") Else Set AcSSet = MyDrawing.SelectionSets("Auswahl") End If AcSSet.Clear AcSSet.Select acSelectionSetAll, , , FilterType, FilterData 'Schleife durch den Auswahlsatz für Maximalwerte For i = 0 To AcSSet.Count - 1 AcSSet.Item(i).GetBoundingBox Min, Max If i = 0 Then AllMin = Min AllMax = Max Else If Min(0) < AllMin(0) Then AllMin(0) = Min(0) If Min(1) < AllMin(1) Then AllMin(1) = Min(1) If Max(0) > AllMax(0) Then AllMax(0) = Max(0) If Max(1) > AllMax(1) Then AllMax(1) = Max(1) End If Next i ScaleFactor = 0.5 'Alle Elemente skalieren For i = 0 To AcSSet.Count - 1 AcSSet.Item(i).ScaleEntity AllMin, ScaleFactor Next i End Sub
Das sollte doch ein wenig weiterhelfen, oder? Gruß vom Hübi ------------------ Schaun ma mal, dann seng ma scho....  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoXiDo Mitglied

 Beiträge: 12 Registriert: 27.02.2005
|
erstellt am: 01. Mrz. 2005 12:07 <-- editieren / zitieren --> Unities abgeben:         
Hallo. Erstmal vielen dank Hubi für deine Hilfe und unterstützung. Ich war gestern doch zu ko den Code zu verstehen aber ich bin ihn heut durchgegangen und hab mir mal ein dummy prog geschireben. Dein Ansatz find ich logisch aber :-) es tut nix. Es wird nichts verkleinert bzw. skaliert und ich weiß net warum. Also nochmal von vorne. Im Anhang liegt der code, ist nur wenig anders als der von Hubi einen eintrag vorher. Ansonsten noch die Frage, währe es den in LISP möglich ein Skript zu schreiben mit dem ich alle Elemente im Modelbereich selektieren, dann skalieren und zu guter letzt positionieren kann? Wenn man sich mit meinem Sourcecode beschäftigt stellt man fest das die Funktion ScaleEntity nix tut! Danke [Diese Nachricht wurde von CoXiDo am 01. Mrz. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Huebi Mitglied Vermessungsing.
 
 Beiträge: 107 Registriert: 08.01.2004 Intel Core Duo E6750@2.66GHz NVIDIA GeForce 8600 GT AutoCAD 2004, 2007, 2008 AcadMAP 2004 und 2007 Civil 3D 2008 ADT 2009
|
erstellt am: 01. Mrz. 2005 14:24 <-- editieren / zitieren --> Unities abgeben:          Nur für CoXiDo
Servus CoXiDo, Also zuerstmal: Mein Name is Huebi und nicht Hubi!!!!! *lach*, ich bitte um Beachtung. Zum zweiten gebe ich Dir den Rat das Programm erst in VBA für AutoCAD zu erstellen. Da hast Du den vollen Zugriff auf die (sehr umfangreiche und mit Beispielen gut dokumentierte) Hilfe. Wenn's läuft kannst Du's ja dann nach VB6 portieren. Beim übertragen nach VB6 mußt Du natürlich auch an die Verweise denken (aber das weißt Du ja sicher). Nun zu Deinem Code: Du öffnest eine AutoCAD Zeichnung namens "AcDok" und möchtest in dieser Zeichnung dann ein SelectionSet definieren. In Deinem Code hast Du aber 2 AutoCAD Zeichnungen in Aktion. Deine "AcDok" und mein "MyDrawing". Wenn Du das SelectionSet in "MyDrawing" definierst muß es Dich doch nicht wundern, daß Du in "AcDok" nicht auf diese SelectionSet zugreifen kannst - oder? Ich hab den Eindruck, daß Du derzeit ein bischen zu verwirrt bist. Geh einfach mal den Code Schritt für Schritt durch und schiel nicht schon gleich wieder auf eine andere Lösung, die sicherlich nicht viel einfacher zu realisieren sein wird wird als diese. Als kleines Bonbon hier mal Dein Code überarbeitet (und er funktioniert hervorragend in VB6). Den Befehl für "Move" darfst Du aber selbst ranhängen *lach*..was ja nun nicht all zu schwer sein dürfte *zwinker*. Code:
Private Sub Command2_Click()Dim AcadApp As Object Dim AcDok As AcadDocument Dim Min, Max, AllMin, AllMax As Variant Dim AcSSet As Object Dim FilterType(0) As Integer Dim FilterData(0) As Variant Dim ScaleFactor As Double Me.Hide 'Zu öffnenden Zeichnung DwgName = "F:\tmp\Zeichnung1.dwg" 'Instanz starten und sichtbar machen On Error Resume Next Set AcadApp = GetObject(, "Autocad.Application") If AcadApp Is Nothing Then Set AcadApp = CreateObject("Autocad.Application") End If AcadApp.Visible = True On Error GoTo 0 'Fehler zurücksetzen 'Dwg Zeichnung öffnen Set AcDok = AcadApp.Documents.Open(DwgName) 'Filter auf den Modellbereich setzen FilterType(0) = 67 FilterData(0) = "0" 'Erstelle Auswahlsatz "Alle" On Local Error Resume Next If TypeName(AcDok.SelectionSets("Auswahl")) = "Nothing" Then Set AcSSet = AcDok.SelectionSets.Add("Auswahl") Else Set AcSSet = AcDok.SelectionSets("Auswahl") End If AcSSet.Clear AcSSet.Select acSelectionSetAll, , , FilterType, FilterData 'Schleife durch den Auswahlsatz für Maximalwerte For i = 0 To AcSSet.Count - 1 AcSSet.Item(i).GetBoundingBox Min, Max If i = 0 Then AllMin = Min AllMax = Max Else If Min(0) < AllMin(0) Then AllMin(0) = Min(0) If Min(1) < AllMin(1) Then AllMin(1) = Min(1) If Max(0) > AllMax(0) Then AllMax(0) = Max(0) If Max(1) > AllMax(1) Then AllMax(1) = Max(1) End If Next i MsgBox "gleich wird 5-fach vergrößert" 'Alle Elemente skalieren ScaleFactor = 5 For i = 0 To AcSSet.Count - 1 AcSSet.Item(i).ScaleEntity AllMin, ScaleFactor AcSSet.Item(i).Update Next i MsgBox "gleich wird 5-fach verkleinert" 'Alle Elemente skalieren ScaleFactor = 0.2 For i = 0 To AcSSet.Count - 1 AcSSet.Item(i).ScaleEntity AllMin, ScaleFactor AcSSet.Item(i).Update Next i MsgBox "Fertig" AcDok.Save AcDok.Close Me.Show End Sub
Gruß aus dem kalten München *bibber* Huebi ------------------ Schaun ma mal, dann seng ma scho....  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoXiDo Mitglied

 Beiträge: 12 Registriert: 27.02.2005
|
erstellt am: 01. Mrz. 2005 15:08 <-- editieren / zitieren --> Unities abgeben:         
|
Huebi Mitglied Vermessungsing.
 
 Beiträge: 107 Registriert: 08.01.2004 Intel Core Duo E6750@2.66GHz NVIDIA GeForce 8600 GT AutoCAD 2004, 2007, 2008 AcadMAP 2004 und 2007 Civil 3D 2008 ADT 2009
|
erstellt am: 01. Mrz. 2005 15:32 <-- editieren / zitieren --> Unities abgeben:          Nur für CoXiDo
Menno Franjo! Gehst Du mal in Einzelschritten durch das Programm? Guckst Du Dir die Variablen im Überwachungsfenster an ob sie gefüllt werden? Hast Du in VB6 den Verweis auf AutoCAD gesetzt? Wann ist eine Variable leer und wann gefüllt? Funktioniert überhaupt das Starten von AutoCAD und das Öffnen der Datei? Hast Du den Code mal in "VBA für AutoCAD" angeguckt? Fragen über Fragen. Geht nicht gibt's nicht. Bei mir klappt's hervorragend. Wenn Du willst, daß man Dir hilft (und ich hab's Dir wirklich schon vorgekaut), dann mußt Du schon präziser werden ab welcher Variablen oder welcher Codezeile es nicht funktioniert. Gruß Hübi ------------------ Schaun ma mal, dann seng ma scho....  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoXiDo Mitglied

 Beiträge: 12 Registriert: 27.02.2005
|
erstellt am: 01. Mrz. 2005 16:00 <-- editieren / zitieren --> Unities abgeben:         
Also Huebi, ich bin dir sehr dankbar für die Hilfe und weiß es auch zu schätzen. Das mit dem Debugen hab ich schon längst doch es sind verschiedene Probleme. Ich fang mal mit dem hauptproblem an. AcSSet.Item(i).ScaleEntity AllMin, ScaleFactor wenn man sich AcSSet genauer anschaut und die einzelnen Elemente betrachtet erwarte ich eigentich nach dem durchlauf dieser funktion das sich z.B. beim rechteck die werte für Witdh und Hight ändern. Das tuen sie allerdings nicht!!! und ich verstehe nicht warum. Von VB6 kann ich nicht loslassen und auf VBA übergehen da mein Admin nicht das komplette ACad packet installiert hat und ich kein VBA drauf habe!!! (bzw. vielleicht bin ich auch zu blöde es zu finden) und das ist es eigentlich auch schon woran ich die ganze Zeit hocke. Ein weiteres Problem ist auch das ich net so Standartmässig Objekttypen vergeben kann wie Dim AcDok As AcadDocument Meine möglichkeit ist entweder Dim AcDok As AutoCAD.IAcadDocument mit der allerdings immer fehlermeldungen wie Typemismatch auftauchen oder damit sich auch irgendwas tut Dim AcDok As Object Indem nun alle ACOBJ bei mir normale Objekte sind die überladen werden kann ich eigentlich trotzdem alles machen was ich will. Dein Code klappt ja auch bis auf die oben erwähnte Zeile. Beim Debugen (jetzt das 5 mal) stimmt alles überein ausser die zeile. Dann währ das problem ja auch gelöst. Tut mir wirklich Leid das ich euch allen hier so auf die Nerven damit gehe aber ich tick langsam auch aus bei der Sache.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Huebi Mitglied Vermessungsing.
 
 Beiträge: 107 Registriert: 08.01.2004 Intel Core Duo E6750@2.66GHz NVIDIA GeForce 8600 GT AutoCAD 2004, 2007, 2008 AcadMAP 2004 und 2007 Civil 3D 2008 ADT 2009
|
erstellt am: 01. Mrz. 2005 16:22 <-- editieren / zitieren --> Unities abgeben:          Nur für CoXiDo
Servus Franjo, ich glaub Dir schon, daß Du bald am Verzweifeln bist (armer Kerl). Ich vermute mal, daß es etwas mit der AutoCAD-Release zu tun haben könnte. Evtl. unterstützt ja Vers. 14 die Methode object.ScaleEntity nicht (das wär eine Frage für die 14-Anwender - bitte melden!!). Naja, als Workaoround kann ich Dich nur auf meinen ersten Beitrag verweisen (SendCommand). Das sollte doch funktionieren - ist ja recht "robust" *lach*. Vielleicht kann Dir ja jemand anders weiterhelfen - ich für meinen Teil bin mit meinem 1x1 am Ende. Gruß vom Hübi ------------------ Schaun ma mal, dann seng ma scho....  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoXiDo Mitglied

 Beiträge: 12 Registriert: 27.02.2005
|
erstellt am: 02. Mrz. 2005 10:47 <-- editieren / zitieren --> Unities abgeben:         
HALLO :-) Es hat geklappt. Also erstmal vielen lieben dank Huebi!!!! Und nun nochmal für alle meine Funktionierende Lösung: CODE: Dim acApp As Object 'Anwendungsobject Dim acDoc As Object 'Dokumentobject Dim acSelect As Object 'Selectionobject (Ausgewählte 'Elemente) 'Setzen des Aktuellen Dokumentes und öffnen der Datei Set acApp = CreateObject("Autocad.Application") Set acDoc = acApp.ActiveDocument acDoc.Open ("C:\temp\blabla.dwg") 'Raster setzten LIMMAX 1980, 297 Dim newLimits(0 To 3) As Double newLimits(0) = 0# newLimits(1) = 0# newLimits(2) = 1980# newLimits(3) = 297# acDoc.Limits = newLimits 'Auswahl der Bildelemente treffen Set acSelect = acDoc.SelectionSets.Add("Auswahl") Dim FilterType(0) As Integer Dim FilterData(0) As Variant FilterType(0) = 67 FilterData(0) = "0" Call acSelect.Clear Call acSelect.Select(acSelectionSetAll, , , FilterType, _ FilterData) 'Start und End Punkte setzten Dim start(0 To 2) As Double Dim ende(0 To 2) As Double 'Alle Elemente werden verschoben 'so das die Ecke links unten 'die Position hat: _move 20,145 start(0) = 0 start(1) = 0 start(2) = 0 ende(0) = 20 ende(1) = 145 ende(2) = 0 acApp.Visible = True 'macht Autocad sichtbar Dim ScaleFactor As Double 'Dimensionierungsfaktor ScaleFactor = 0.518 'Skalierung Dim dummy As Object For i = 0 To acSelect.Count - 1 Step 1 Set dummy = acSelect.Item(i) dummy.ScaleEntity start, ScaleFactor dummy.Move start, ende Next i acDoc.Regen (acAllViewports) 'gesammte Zeichnung neu 'Regenerieren Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Huebi Mitglied Vermessungsing.
 
 Beiträge: 107 Registriert: 08.01.2004 Intel Core Duo E6750@2.66GHz NVIDIA GeForce 8600 GT AutoCAD 2004, 2007, 2008 AcadMAP 2004 und 2007 Civil 3D 2008 ADT 2009
|
erstellt am: 02. Mrz. 2005 16:34 <-- editieren / zitieren --> Unities abgeben:          Nur für CoXiDo
Na Gott sei's gedankt!!!! Ich freu mich mit Dir Franjo, daß es nun endlich klappt. Bekommst auch 10 Pünktchen dafür *smile* Gruß aus München Hübi ------------------ Schaun ma mal, dann seng ma scho....  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |