Mehr

Warum ist mein Cursor leer?

Warum ist mein Cursor leer?


Gestern habe ich ein Python-Skript mit einem Cursor auf einer Ebene eingerichtet.

Heute habe ich es erneut versucht, und egal, was ich ausführe, der Cursor ist leer. Ich habe versucht, die Abfrage auf dem Layer zu entfernen, die Cursor zu löschen und meinen Computer neu gestartet, aber das Durchlaufen der Zeilen in meiner Tabelle führt immer noch zu nichts. Ich habe es direkt am FC (in SDE) und am Layer probiert.

testcursor = arcpy.SearchCursor("testlayer")

Diese sollte doch so viele Fows enthalten wie die Attributtabelle? Oder habe ich es falsch verstanden?

für Zeile im Testcursor: print "Zeile existiert" print row.getValue("SURVEY_NAME") Survey = row.getValue("SURVEY_NAME") Print Survey, falls Survey nicht in Layerliste: layerlist.append(row.getValue("SURVEY_NAME"))

Gestern hat das etwas bewirkt, aber jetzt tut es nichts.

Ebenenlisteist leer

Was habe ich falsch gemacht?


Haben Sie eine Auswahl, die derzeit angewendet wird?Testschicht? Haben Sie eine Definitionsabfrage zuTestschicht?
Beide können die Anzahl der Datensätze im Cursor begrenzen, wenn sie direkt in ArcMap ausgeführt werden.


Ist 'Reihen' definiert? Sieht so aus, als ob du anrufen solltest

für Zeile im Testcursor:

Versuche dies:

# leere Liste erstellen LayerList = [] # Suchcursor erstellen testCursor = arcpy.SearchCursor(r'D:workspace	estlayer') für Zeile in testCursor: if row.getValue("SURVEY_NAME"): survey = str(row.getValue ("SURVEY_NAME")) Umfrage drucken, wenn Umfrage nicht in LayerList: LayerList.append(survey)

Warum ist mein Cursor leer? - Geografisches Informationssystem

Sie haben eine maschinelle Übersetzung ausgewählter Inhalte aus unseren Datenbanken angefordert. Diese Funktionalität wird ausschließlich zu Ihrer Bequemlichkeit bereitgestellt und soll in keiner Weise die menschliche Übersetzung ersetzen. Weder SPIE noch die Eigentümer und Herausgeber der Inhalte geben ausdrückliche oder stillschweigende Zusicherungen oder Gewährleistungen jeglicher Art ab und lehnen diese ausdrücklich ab, einschließlich und ohne Einschränkung Zusicherungen und Gewährleistungen hinsichtlich der Funktionalität der Übersetzungsfunktion oder der Genauigkeit oder Vollständigkeit von die Übersetzungen.

Übersetzungen werden in unserem System nicht gespeichert. Ihre Nutzung dieser Funktion und der Übersetzungen unterliegt allen Nutzungsbeschränkungen, die in den Nutzungsbedingungen der SPIE-Website enthalten sind.

Formatkonvertierung zwischen CAD-Daten und GIS-Daten basierend auf ArcGIS

Qingqing Xie, 1 Bo Wei, 1 Kailin Zhang, 1 Zhichao Wang 1

1 Guilin-Univ. für Technologie (China)

ABONNIEREN SIE DIE DIGITALE BIBLIOTHEK

50 Downloads pro 1-Jahres-Abonnement

25 Downloads pro 1-Jahres-Abonnement

Enthält PDF, HTML und Video, falls verfügbar

Um die Datenressourcen voll auszuschöpfen und eine gemeinsame Nutzung der verschiedenen Datentypen in verschiedenen Branchen zu realisieren, wurde eine Methode zur Formatkonvertierung zwischen CAD-Daten und GIS-Daten basierend auf ArcGIS vorgeschlagen. Um die Integrität der konvertierten Daten zu bewahren, wurden einige wichtige Schritte zur Verarbeitung von CAD-Daten vor der Konvertierung in AutoCAD durchgeführt. Durch das Löschen unnötiger Elemente wie Titel, Rahmen und Legende wurde beispielsweise das Erscheinen unnötiger Elemente nach der Konvertierung vermieden, da das erneute Layern von Daten nach einem nationalen Standard verhinderte, dass die verschiedenen Arten von Elementen nach der Konvertierung in demselben Layer erscheinen. In ArcGIS wurde die Konvertierung von CAD-Daten in GIS-Daten durch die Entsprechung der grafischen Elementklassifizierung zwischen AutoCAD und ArcGIS ausgeführt. Darüber hinaus war eine leere geografische Datenbank und ein leeres Feature-Set erforderlich, um in ArcGIS zum Speichern der Textdaten von CAD-Daten zu erstellen. Die experimentellen Ergebnisse zeigen, dass die vorgeschlagene Methode einen großen Bearbeitungsaufwand bei der Datenkonvertierung vermeidet und die Integrität von Geodaten und Attributdaten zwischen vor und nach der Konvertierung beibehält.

© (2015) COPYRIGHT Society of Photo-Optical Instrumentation Engineers (SPIE). Das Herunterladen des Abstracts ist nur für den persönlichen Gebrauch gestattet.


Glatte Oberflächenmodellierung von DEMs basierend auf einer Regularized-Least-Squares-Methode des Thin-Plate-Spline

Thin-Plate-Spline (TPS) wurde weithin als Methode zur reibungslosen Anpassung verrauschter Daten akzeptiert. Das klassische TPS hat jedoch immer dann ein Problem der schlechten Konditionierung, wenn zwei Abtastpunkte sehr nahe beieinander liegen. Obwohl das modifizierte orthogonale TPS auf der Grundlage der kleinsten Quadrate (TPS-M) dieses Problem der schlechten Konditionierung vermeidet, ist es nicht vollständig immun gegen Überanpassung, wenn Abtastpunkte verrauscht sind. In diesem Beitrag wurde eine regularisierte Methode der kleinsten Quadrate des Thin-Plate-Spline (TPS-RLS) entwickelt, die dem Fehlerkriterium der orthogonalen kleinsten Quadrate (OLS) einen Gewichtungsstrafterm hinzufügt. TPS-RLS kombiniert die Vorteile von Regularisierung und OLS, die gleichzeitig die Probleme der Überanpassung und der schlechten Konditionierung vermeiden. Numerische Tests zeigen, dass TPS-RLS unabhängig von der Standardabweichung der Stichprobenfehler und der Anzahl der Knoten immer genauer ist als TPS-M für eine reibungslose Anpassung verrauschter Daten, während TPS-M ein ernsthaftes Überanpassungsproblem hätte, wenn die Die optimale Knotenzahl wurde nicht im Voraus bestimmt. Das reale Beispiel der Anpassung von Totalstationsinstrumentendaten zeigt, dass TPS-RLS unter den klassischen Interpolationsmethoden wie IDW, natürlicher Nachbar und gewöhnliches Kriging die höchste Genauigkeit für eine Reihe von DEMs mit unterschiedlichen Auflösungen, insbesondere für das grobe, aufweist. Die Oberflächenmodellierung von DEMs mit Höhenlinien zeigt, dass TPS-RLS eine bessere Leistung als die klassischen Methoden sowohl in Bezug auf den quadratischen Mittelwertfehler als auch das Erscheinungsbild der schattierten Karte mit Relief aufweist.

Dies ist eine Vorschau von Abonnementinhalten, auf die Sie über Ihre Institution zugreifen können.


MySQL: Loop-Over-Cursor-Ergebnisse werden vorzeitig beendet

Ich führe eine Schleife aus, die über die Ergebnisse eines Cursors iteriert. Der Code befindet sich in einer Triggerfunktion, und der wichtige Teil sieht so aus:

BEARBEITEN: Entschuldigung, dummer Fehler. Der Trigger wird nach dem Löschen auf "one_table" ausgeführt. Dies ist nicht die gleiche Tabelle, in der ich die Operationen "Löschen" oder "Aktualisieren" im Code des Triggers durchführe (siehe zweite Auflistung unten).

Die Schleife sollte 11-mal ausgeführt werden, da die Abfrage 11 Werte zurückgibt. Dies wird durch die 'insert'-Klausel überprüft. Die Variable 'num_rows' ist gleich 11. Das Problem ist jedoch, dass die Schleife nur 3 Mal ausgeführt wird.

Diese Zahlen (11, 3) sind nicht wichtig. Wenn ich die Abfrage ändere, um eine andere Anzahl von Ergebnissen zurückzugeben, bleibt das Problem bestehen: Die Schleife endet vor der geplanten Zeit.

Macht es irgendeinen Sinn? Ich kann etwas innerhalb der Schleife tun (der "Do Stuff"-Teil), das das Ende der Schleife verursacht. Es ist das einzige, was für mich logisch klingt.

BEARBEITEN: Ich füge den Teil „Mache Sachen“ hinzu. Das Problem wird wahrscheinlich dadurch verursacht, dass in diesem Teil einige 'ausgewählte' Sätze ausgeführt werden. Wenn einer dieser Sätze ein leeres Ergebnis zurückgibt, wird der definierte Handler ausgeführt, wobei done auf 'true' gesetzt und die Schleife unterbrochen wird.


VNC-Verbindung zu einer Linux-VM zeigt nur einen grauen Bildschirm und Hellip, aber läuft Gnome nicht?

Ich habe einige Jahre Erfahrung mit der Verwendung von Linux auf der Befehlszeile, aber dies ist mein erster Versuch, es mit einer GUI einzurichten.

Ich verwende CentOS 7 (64 Bit) und habe die folgenden Befehle ausgeführt:

Nachdem ich diese Befehle zum Installieren von Sachen verwendet hatte (einen VNC-Server und Gnome, glaube ich), habe ich diese Datei unter /root/.vnc/xstartup erstellt:

Dann habe ich versucht, den vnc-Server nur mit diesem zu starten: vncserver . Dies ausgedruckt:

Ich habe VNC Viewer auf meinem lokalen Computer (Windows 7, 64 Bit) gestartet und mich mit der VM verbunden, aber ich sah nur einen dunkelgrauen Hintergrund mit 3 Kontrollkästchen in der oberen linken Ecke bezüglich der Zwischenablagen. Ich bekomme ein X für einen Cursor.

Nichts, was ich auf der Tastatur drücke, scheint etwas zu tun.

Alles, was VNC angeht, scheint in Ordnung zu sein, aber ich hatte erwartet, eine Art Desktop zu haben, von dem aus ich mein Dateisystem durchsuchen könnte. oder eine andere Möglichkeit, mit dieser VM grafisch etwas zu tun.

Es scheint, als ob es meinen Fenster- oder Desktop-Manager oder so etwas nicht finden muss (meine Terminologie könnte deaktiviert sein - bitte korrigieren Sie mich, wenn dies der Fall ist) - aber mein Skript sagte, dass ich Gnome starten soll, und die VNC-Protokolle zeigten kein Problem an, also sollte ich nicht etwas anderes als ein graues Rechteck sehen?

Da ich es erwähnt habe, steht Folgendes in meinen VNC-Protokollen ( /root/.vnc/<VM-Name>:1.log ):

Nichts hier deutet für mich auf irgendeine Art von Fehler hin. Gibt es eine andere Protokolldatei, die ich woanders überprüfen sollte? Soll ich irgendwie einen Debug-Modus für etwas eingeben (was/wie?) Fehlt etwas in meinem xstartup-Skript (mit ist übrigens +x ausführbar). Funktioniert alles einwandfrei und ich muss nur eine Tastenkombination senden, um einen anderen Bildschirm als den leeren grauen Bildschirm zu erhalten? Gibt es etwas, nach dem ich in netstat oder ps suchen sollte, das mir anzeigen würde, ob die Dinge funktionierten oder nicht?

Bearbeiten: Nachdem ich von roaima vorgeschlagene Änderungen an meiner xstartup-Datei vorgenommen und VNC neu gestartet habe, erhalte ich dies in der Protokolldatei:


18 Antworten 18

Die Notation =$A$1 kann auch automatisch verschoben werden, wenn der Wert in (zB) A1 geändert wird.

Die einzige todsichere Lösung besteht darin, alle Ihre Referenzen in INDIRECT einzuschließen, z.B. =INDIREKT("$A$1") oder auch nur =INDIREKT("A1") .

Die Schwierigkeit bei beiden Lösungen besteht darin, dass Sie viele der gleichen Formeln haben, z.

Normalerweise würden Sie das erste =A1 ausfüllen und dann kopieren und einfügen (oder mit Autofill nach unten ziehen), um die fortlaufende Formel automatisch auszufüllen. Wenn jedoch die erste Formel =$A$1 oder =INDIRECT("A1") lautet, funktioniert dieser Trick nicht (tatsächlich ist $ dafür da - um zu verhindern, dass er automatisch geändert wird).

Wenn Sie viele aufeinanderfolgende Formeln haben, ist eine Lösung:

  1. Erstellen Sie die Formel wie gewohnt (verwenden Sie Plain = A1 und Autofill)
  2. Verwenden Sie den Ersetzen-Dialog ( Strg + H ) und verwenden Sie "Suche in Formeln", um alle =A1 , =A2 zu umschließen. =A99 in =INDIREKT("A1") usw. Beachten Sie, dass Sie beim Suchen und Ersetzen die Möglichkeit haben, reguläre Ausdrücke zu verwenden.

Wenn Sie mit der Maus über ausgewählte Zellen fahren und der Cursor zu einer "Hand" wird, können Sie die Zellen ziehen und ihre Referenzen beibehalten. Detaillierte Anweisungen unten:

Wählen Sie den Zellbereich aus. Verwenden Sie dann Strg + C (kopieren Sie dies, um die Zellen und ihre Formeln in den Einfügepuffer zu legen).

Ziehen Sie nun (bewegen Sie den Mauszeiger über den Rand der Auswahl, bis sich der Mauszeiger in eine Hand verwandelt, die Sie jetzt ziehen können) die ausgewählten Zellen an die neue Position.

Gehen Sie zurück zur ursprünglichen oberen linken Position der kopierten Zellen und verwenden Sie Strg + V (Einfügen).

Jetzt sollten Sie zwei Sätze von Formeln haben, die beide auf dieselben Zellen verweisen.

Auf der Suche nach einem ähnlichen Problem bin ich darauf gestoßen und habe am Ende eine Lösung für Excel gefunden, die in den Google-Tabellen perfekt zu funktionieren scheint.

Für die Zellbezüge, die Sie beim Einfügen nicht ändern möchten, fügen Sie einfach $ vor jedem Teil hinzu.

Aus G12 würde also $G$12 werden

Eine Zelle aus einer Tabellenkalkulation, die ich verwende, die tut, was ich brauche, sieht in etwa so aus:

Um in Google Spreadsheets Zellen auszuschneiden und einzufügen, ohne ihre Formeln automatisch zu verschieben, verwenden Sie Strg + X zum Ausschneiden (oder Strg + C zum Kopieren) und Strg + Umschalt + V zum Einfügen.

The Shift weist Google Sheets an, Ihre Formeln in Ruhe zu lassen.

Umgehen Sie dies auf die gleiche Weise wie in Excel:

KOPIEREN und fügen Sie die Daten ein. Gehen Sie dann zurück und löschen Sie sie vom ursprünglichen Ort.

Ausschneiden (statt Kopieren) scheint für mich zu funktionieren, wahrscheinlich aus dem gleichen Grund, aus dem das Ziehen ausgewählter Zellen funktioniert - dh es ist der gleiche Vorgang. Dies ist auch die einzige mir bekannte Möglichkeit, auf eine andere Seite einzufügen, ohne dass sich die Formel ändert.

Wenn Sie versuchen, eine Kopie statt einer Verschiebung durchzuführen, verwenden Sie entweder die Ziehmethode (Kopieren vor dem Ziehen) oder kopieren Sie sie zuerst an eine andere Stelle auf der Seite.

  1. Wechseln Sie in den Modus "Formeln anzeigen" (im Menü "Ansicht")
  2. kopiere den gewünschten Bereich
  3. Einfügen in einen externen Texteditor
  4. Nehmen Sie einige Änderungen vor - kann so einfach sein, wie irgendwo ein Leerzeichen hinzuzufügen
  5. Kopieren Sie die Formeln aus dem externen Texteditor
  6. Einfügen im Zielbereich im Blatt
  7. Formeln anzeigen deaktivieren

Dies scheint ein langer Vorgang zu sein, in der Praxis sind es jedoch nur wenige Tastendrücke. Außerdem ist Schritt 4 in meinem Setup obligatorisch - ohne ihn aktualisiert Sheets die Zellenpositionen immer noch, als wäre es ein direktes Kopieren und Einfügen. YMMV.

So verschieben Sie einen Zellbereich an eine neue Position in Google Tabellen:

1. Wählen Sie den Zellbereich aus, den Sie verschieben möchten
2. Bewegen Sie die Maus an eine beliebige Kante der Auswahl, bis sich der Cursor in eine Hand verwandelt
3. Ziehen Sie Ihre Zellen an die neue Position

Das tut was es soll - es bewegt sie - so bleiben alle Zelleninformationen genau so, wie sie an ihrem ursprünglichen Ort waren.

ps. Google hat dies auch hier angewiesen, aber sie sagen nicht, dass Sie von jeder Kante ziehen können, nur von der obersten, und deshalb ist meine Anweisung besser! :) Es ist auch gut zu beachten, dass die von Ihnen ausgewählten Zellen benachbart sein müssen, damit dies funktioniert.

Ich habe gerade Suchen und Ersetzen alle Instanzen von '=' mit '' (oder so viele Formeln, die ich versuche zu kopieren, wie ich kann), um alle Formeln in Klartext zu verwandeln. Ich kopiere die Zellen und füge sie ein und füge dann die hinzu '=' zurück.

Hinweis: Dies funktioniert wahrscheinlich nicht für große Blätter, da es unbeabsichtigte Folgen haben kann, wenn andere Zellen bearbeitet werden, aber es funktioniert normalerweise für meine Zwecke.

Erstellen Sie eine Textkopie der Formel anstelle einer Zellenkopie: Wählen Sie den Formeltext mit der Maus aus und drücken Sie STRG+C. Wählen Sie dann das Zielfeld aus und drücken Sie STRG+V. Dies bewahrt die Formel

Am einfachsten ist es, alle Zellen, die Sie verschieben möchten, auszuwählen und per Drag & Drop an die gewünschte Stelle zu ziehen. Wenn Sie Formeln in anderen Zellen haben, die auf die ursprüngliche Position der verschobenen Zellen verweisen, werden die Referenzformeln automatisch an die neue Position der verschobenen Zellen aktualisiert. Hoffe das hilft! (Vorausgesetzt, dies funktioniert in Excel, aber ich habe es nur in Google Sheets getan).

Die Verwendung von INDIRECT() eignet sich hervorragend zum Beibehalten der absoluten Position von Referenzen nach dem Ziele kopiert und eingefügt wurden, aber das Problem ist, dass es auch die absolute Position beibehält, wenn die Formel kopiert wird, was bedeutet, dass Sie eine Formel nicht einfach so erweitern können, dass sie einen großen Bereich abdeckt, wenn Sie sie verwenden.

Die Lösung besteht darin, INDIRECT() mit ROW() , COLUMN() und ADDRESS() zu kombinieren, um die Position der Zielzelle basierend auf der Zelle der Formel programmgesteuert zu generieren.

Im einfachsten Fall, beispielsweise wenn die Zielzelle eine feste Spalte hat und immer in derselben Zeile wie die Formel bleibt, kann dies wie folgt geschehen:

INDIREKT("A"&ROW())

Um dynamische Offsets aus der Formelzelle einzuführen, können Sie ADDRESS() verwenden:

INDIREKT(ADRESSE(ZEILE()-1,COL()-4))

Im folgenden Screenshot wurden die Formeln in B1: E1 auf die 16 Zeilen darunter erweitert, und dann wurde die Zahlenfolge in A7: A10 ausgeschnitten und 6 Zellen nach unten eingefügt. Wie Sie sehen, wurden die einfachsten Formeln automatisch angepasst und desynchronisiert, während die naive Verwendung von INDIRECT() nicht richtig über alle Zeilen extrapoliert wurde, aber die beiden Formeln, die INDIRECT() zusammen mit dem programmgesteuerten Abrufen von Zeilen- und Spaltenpositionen verwenden, waren in der Lage um ihre Referenzen zu pflegen:


Was ist also die Standardeinstellung?

Mir ist dies bei der Verwendung von GVIM in Windows aufgefallen. Die Rücktaste scheint jedoch bei den meisten Linux-Systemen bei der Verwendung von VIM vom Terminal aus wie erwartet zu funktionieren.

Der Grund dafür ist, dass viele Linux-Distributionen mit vorgefertigten vimrc-Dateien ausgeliefert werden, die einige allgemeine Optionen festlegen. Auf meinem Arch Linux-System habe ich zum Beispiel /usr/share/vim/vimfiles/archlinux.vim mit:

Wenn Sie Vim unter Windows installieren, werden standardmäßig die standardmäßigen vimrc und gvimrc verwendet, mit denen Vim ausgeliefert wird.

Das Vim default ist ein leerer Wert für backspace . Die Standardeinstellungen von Arch Linux, Debian, CentOS oder $other_distro können unterschiedlich sein.


Wenn ich die Frage richtig verstehe, schauen wir uns an, warum es keine Entf-Taste (die über den Pfeiltasten auf einer herkömmlichen physischen Tastatur) gibt, während es immer noch eine Rücktaste gibt. Ich kann einige Gründe dafür angeben, die auf meinen eigenen basieren Erfahrungen und Beobachtungen:

  • Die meisten Fehler beim Eintippen einer Nachricht werden recht bald danach bemerkt und mit der Rücktaste korrigiert. Zum Beispiel tippt ein Benutzer ein oder zwei falsche Buchstaben ein und drückt die Rücktaste, um sie zu entfernen
  • Wenn nicht mit der Rücktaste korrigiert wird, sollen die Autokorrekturfunktionen den größten Teil der verbleibenden Arbeit übernehmen. Die Leute neigen dazu, die Korrektur bei Bedarf entweder zuzulassen oder sie selbst als Werkzeug zu verwenden
  • Für den Fall, dass man zurückgehen und ein Wort oder einen Textabschnitt löschen muss, wählt er es normalerweise über die Touch-Oberfläche aus und ändert/löscht (mit der Rücktaste) den Abschnitt oder schreibt von diesem Punkt aus weiter

Ich persönlich kann sagen, dass in den meisten Anwendungsfällen des mobilen Tippens (E-Mail, SMS usw.) die Rücktaste ausreicht, um meine Aktion "rückgängig zu machen". Die Ähnlichkeit der Entf-Taste bedeutet wahrscheinlich, dass sie nicht so wichtig ist, da das Löschen des Zeichens vor dem Cursor eine präzisere / spezifischere Aktion ist, die nicht so oft benötigt wird.

Ich spüre, dass die Leute ziemlich taub gegenüber unserem Wunsch nach einem Löschknopf sind. Ich persönlich würde es verwenden, weil ich oft über Material hin und her gehe, bevor ich es sende. Ich habe manchmal viel zu tippen, und es ist nicht sehr praktikabel, den Cursor inmitten eines großen Textkörpers, den ich senden möchte, genau zu positionieren. Normalerweise mache ich einen Rückschritt über die falschen Zeichen und tippe dann die Zeichen, die ich gerade versehentlich gelöscht habe, erneut ein.

Hier ist das Argument, dass die Schaltfläche "Löschen" im Handy nicht nützlich ist. Weil wir bereits den x-Button haben. Ich habe viele Anwendungsfälle, in denen Sie die Schaltfläche "Löschen" anstelle der Schaltfläche x benötigen.

1) Sagen wir, ich habe einige Sätze in meine App eingegeben. Nehmen wir an, ich möchte die letzten 2 Sätze von insgesamt 5 Sätzen löschen. Anstatt den gesamten Inhalt zu beenden, würde ich zu der Stelle gehen, an der ich diese Sätze löschen möchte. d.h. ich würde es vorziehen, zum Ende der 3. Aussage zu gehen und "Löschen" zu drücken und die letzten 2 Aussagen zu löschen.

2) Nehmen wir an, ich habe eine große URL, die ich kopiert und in die URL-Leiste des Browsers eingefügt habe. Jetzt möchte ich nur den Teil der URL, der den Inhalt nach einem "/" nicht benötigt, in diesem Fall würde ich zu diesem Schrägstrich gehen und die Schaltfläche "Löschen" drücken und den restlichen Teil der URL entfernen. Ich werde es nicht vorziehen, das 'x'-Symbol zu verwenden, um den letzten Inhalt einer großen URL zu löschen, da ich in diesem Fall überprüfen müsste, ob das letzte "/", das ich behalten wollte, erreicht ist oder nicht.

Jetzt brauche ich nur noch die URL bis zu Fragen. Ich weiß, dass dies keine große URL ist, aber betrachte es als große URL. Was würden Sie bevorzugen, wenn Sie eine URL bis zu https://ux.stackexchange.com/questions/ wünschen

Was ich bevorzugen würde, ist, dass ich keinen Inhalt nach Fragen/ möchte, also würde ich zu Fragen/ gehen und alle Inhalte danach mit der Schaltfläche "Löschen" löschen.


15 Antworten 15

Halten Sie während des Bootens die Umschalttaste gedrückt und drücken Sie dann e, um den GRUB-Eintrag zu bearbeiten. Entfernen Sie den Teil mit der Aufschrift "quiet splash" und ersetzen Sie ihn durch "text", um zu sehen, was während des Bootens passiert.

Ich bin auf dieses Problem gestoßen und es stellte sich heraus, dass das Problem bei mir lag Festplatte ist zu 100% voll. Die Schritte, die ich unternommen habe, um das Problem zu beheben und schließlich zu beheben, waren wie folgt:

  1. Booten mit blinkendem Cursor
  2. Drücken Sie Strg + Alt + f [Taste], um in den Bildschirm der virtuellen Tty-Konsole von Ubuntu zu gelangen, wobei der Schlüssel zwischen 2 und 6 liegt. In meinem Fall habe ich Strg + Alt + f2 gemacht
  3. Melden Sie sich mit Ihrem Benutzernamen und Passwort an, um Zugang zum Terminal zu erhalten
  4. Geben Sie df ein, um den Speicher zu überprüfen und ob tatsächlich kein freier Speicherplatz mehr vorhanden ist
  5. Wenn die Lagerung das Problem ist, schaffen Sie Platz!!
  6. Um sicherzustellen, dass auch die Grub-Einstellungen kein Problem darstellen, bearbeiten Sie die Grub-Einstellungen, indem Sie die Grub-Einstellungsdatei sudo nano /etc/default/grub . aufrufen
  7. Bearbeiten Sie die Zeile GRUB_CMD_LINUX_DEFAULT in der Grub-Einstellungsdatei in GRUB_CMD_LINUX_DEFAULT="nomodeset noresume"
  8. Grub-Einstellungen aktualisieren sudo update-grub
  9. Starten Sie neu, indem Sie sudo reboot oder sudo reboot now eingeben
  10. Booten Sie zum blinkenden Cursor und warten Sie, es sollte Sie jetzt zur Anmeldeseite bringen! :)

In meinem Fall war der blinkende Cursor alles, was ich jemals bekommen würde. Kein Stiefel. Es war bei der Installation eines neuen Ubuntu Minimal. Ich habe herausgefunden, dass es während des GRUB-Installationsschritts GRUB auf dem falschen Laufwerk installiert hat, dem "ersten" Laufwerk (/dev/sda).

Mein System hat 3 Laufwerke. Zwei 500-GB-Laufwerke im RAID, die ich während der Installation nicht anfassen wollte, und eine 120-GB-SSD, die ich für das Betriebssystem verwende. Aus irgendeinem Grund ist das "erste Laufwerk" (/dev/sda) eines meiner 500-GB-Laufwerke. /dev/sdb ist mein 120-GB-Laufwerk und /dev/sdc ist das andere 500-GB-Laufwerk.

Beim Formatieren mit einer Partitionstabelle von "mbr" auf meinem 120-GB-Laufwerk habe ich die normalen 117 GB bootfähigen ext4 und 3 GB Swap gemacht. Wählen Sie im GRUB-Installationsschritt NICHT Ja aus, um GRUB auf dem "ersten" Laufwerk abzulegen. Wählen Sie NEIN. Dadurch wird ein weiterer Bildschirm angezeigt, in dem Sie /dev/sdX eingeben können. In meinem Fall habe ich /dev/sdb und /dev/sdb1 ausprobiert, aber der Installer gab mir jedes Mal einen fatalen Fehler, der immer noch keinen Sinn macht.

Schließlich musste ich mein 120-GB-Laufwerk mit einer Partitionstabelle von "gpt" formatieren. Bei GPT müssen Sie manuell eine GRUB-Partition erstellen. Das ist die Art und Weise, wie die Dinge mit GPT gemacht werden. Die erste Partition, die ich für GRUB erstellt habe, war also 32,0 MB formatiert für "Boot oder so (Vergiss den Wortlaut)". Zweite Partition war meine 3.0 GB formatiert für "Swap", am "Ende". Die dritte Partition war der verbleibende Speicherplatz, der als "ext4" formatiert wurde.

Wenn Sie nun während des GRUB-Installationsschritts NEIN wählen, geben Sie überraschenderweise /dev/sdb und nicht /dev/sdb1 manuell ein, und dann funktioniert es. GRUB wird in der 32-MB-Boot-Partition auf dem richtigen Laufwerk installiert und das System bootet normal. YAY!

Übrigens, Sie müssen zu Beginn der Installation Expert install aus dem Menü wählen, um all dies zu tun und Ihre Festplatte "manuell" und nicht "geführt" zu formatieren. Guided wählt immer /dev/sda als erstes Laufwerk und ein blinkender Cursor/kein Booten führt dazu, wenn /dev/sda nicht Ihr Betriebssystemlaufwerk ist.


Hier ist eine Möglichkeit, die davon ausgeht, dass Ihr Objekt über 0,0,0 zentriert ist:

  1. Bringen Sie den 3D-Cursor zum Ursprung des Objekts ( ⇧ Shift S )
  2. Legen Sie je nach Ausrichtung Ihres Objekts die Position des 3D-Cursors entlang einer Achse auf 0 fest (basierend auf Ihrem Screenshot möchten Sie ihn auf der Y-Achse auf 0 setzen).
  3. Den Ursprung am Cursor ausrichten ( ⎈ Strg ⇧ Shift ⎇ Alt C )

Es gibt zwei Möglichkeiten, wie Sie Ihren Ausgangspunkt zurücksetzen können, und beide sind wirklich einfach:

  1. Gehen Sie in den Objektmodus, halten Sie [Strg] [Shift] [Alt] [C] gedrückt und ein Menü sollte erscheinen. Wählen Sie einfach "Ursprung auf Mitte setzen", wenn es in der Mitte des Rasters erscheinen soll.

Wenn Sie möchten, dass es an einer anderen Stelle angezeigt wird, klicken Sie einfach auf die gewünschte Stelle (damit der Kreis und das Fadenkreuz dort erscheinen), führen Sie dann die obige Methode aus, wählen Sie diesmal jedoch "Ursprung auf 3D-Cursor setzen" und Viola! Dein Ausgangspunkt wurde verschoben :)

Wenn Sie das etwas schwierig finden, können Sie hier eine andere Methode ausprobieren:

  1. Gehen Sie in den Bearbeitungsmodus, wählen Sie das gesamte Modell aus, indem Sie die Taste [A] drücken, ziehen Sie dann einfach Ihr Modell, bis der Ursprungspunkt dort ist, wo Sie es auf dem Modell haben möchten, dann gehen Sie einfach in den Objektmodus und bewegen Sie das Modell zurück zu das Zentrum oder wo immer Sie es wollen (der Ursprung bleibt jetzt dort.

Anstatt den Ursprungspunkt des Objekts zu verschieben, sollten Sie a . verwenden Spiegel Modifikator mit einer leeren Achse als Spiegelobjekt.

Ich habe hier die Hälfte des Affennetzes, das irgendwo vom Ursprung entfernt schwebt und alle Transformationen angewendet wurden. Wenn ich den Modifikator "Spiegeln" anwende, funktioniert er eindeutig nicht so, wie ich es möchte.

Um dies zu beheben, drücke ich Umschalt + A Leer > Ebene Achse. Ich verschiebe es dann dorthin, wo die Spiegelung erfolgen soll. In diesem Fall schnappe ich es einfach dort ein, wo ich das Netz in zwei Hälften schneide.

Wählen Sie dann die Ebene Achse als die Spiegelobjekt, und ändern Sie bei Bedarf die Reflexionsachse. Da Ihr Objekt nun richtig gespiegelt ist, überordnen Sie die Leere Achse zu Ihrem Objekt und verstecken Sie es. Auf diese Weise können Sie Ihr Objekt jetzt verschieben, ohne den Spiegelmodifikator durcheinander zu bringen.