Dienstag, 11. Dezember 2007

TextPad - Regex

Löschen zweier von drei Zeilen


Es soll nur jede dritte Zeile behalten werden:


Suchen und Ersetzen mittels Textpad und der RegEx Option:

Suchpattern: n(^.*$)n^.*$n^.*$
Ersetzen: n1


Anstatt daß explizit Zeilenanfang ^ und Zeilenende $ definiert werden ^.*$ , könnte auch nur .* genommen werden, da ja die n schon Zeilenanfang und -ende darstellen

Siehe auch http://www.tfh-berlin.de/~solymosi/fgi/TextPad.html



Dienstag, 2. Oktober 2007

Videos konvertieren






Videos konvertieren, rippen


http://mediacoder.sourceforge.net/

MP3 zu swf

Konvertierung jeder Menge von Audio und Video Formaten

SUPER von eRightSoft : http://www.chip.de/downloads/SUPER-2008_17370353.html

Ungeschützte DVD rippen:

Windows: DVDx_2_10_setup.exe
Ubuntu: dvd::rip

Das bessere Ergebnis (ohne Interlacing) erzielt Ubuntu.

Videos hosten bei http://sevenload.de (max. 200MB) oder http://video.google.com


Donnerstag, 13. September 2007

rem
rem Backupskript: xcopy "quelle*.*" "ziel" /d /e /c /h /y
rem
SET DRIVE=P

xcopy "C:WindowsFavoriten*.*"
"%DRIVE%:backup_shuttleC
WindowsFavoriten" /d /e /c /h /y

rem EINZELNE EINSTELLUNGEN
xcopy "C:Dokumente und EinstellungenRainerLokale
EinstellungenAnwendungsdatenIdentities{C611C16B-98CE-481A-89B1-1C6615EC58C0}MicrosoftOutlook
Express*.*" "%DRIVE%:backup_shuttleCDokumente und EinstellungenOutlook
Express" /d /e /c /h /y

xcopy "C:Dokumente und EinstellungenRainerEigene Dateien*.*"
"%DRIVE%:backup_shuttleCDokumente und EinstellungenRainerEigene
Dateien" /d /e /c /h /y

xcopy "E:hp*.*" "%DRIVE%:backup_shuttleEhp" /d /e /c /h /y
rem xcopy "E:Tutorials*.*" "%DRIVE%:backup_shuttleETutorials" /d /e /c
/h /y
rem xcopy "E:c++*.*" "%DRIVE%:backup_shuttleEc++" /d /e /c /h /y



backup2.bat

@ECHO off
CLS
REM ----------------------------
REM Name: Sicherung.bat
REM Autor: ***
REM Datum: 28.03.2005
REM ----------------------------
ECHO Beginn, datensicherung von Mozila und Foxmail
ECHO.
xcopy "C:Dokumente und EinstellungenAdministratorAnwendungsdatenMozilla*.*" "D:BackupMozilla%date%*.*" /Y /I /E /s
xcopy "C:ProgrammeFoxmail*.*" "D:BackupFoxmail%date%*.*" /Y /I /E /s
ECHO.
ECHO Ende, datensichung von Mozila und Foxmail
ECHO Beginn, loeschung der Ordner die Aelter als Sieben Tage sind.
ECHO.
for /f "skip=7" %%a in ('dir /b /a:d /o:-d D:BackupMozilla') do rd /s /q D:BackupMozilla%%a
for /f "skip=7" %%a in ('dir /b /a:d /o:-d D:BackupFoxmail') do rd /s /q D:BackupFoxmail%%a
ECHO.
ECHO Ende, loeschung der Ordner die Aelter als Sieben Tage sind.
REM -----------------------------Ende----------------------------



Bei mir wird mit %date% nur das Datum ohne Wochentag (und ohne Leerzeichen) ausgegeben. Damit habe ich dann auch getestet.

Wenn die Ordner z.B. "Mo 28.03.2005" heißen, müssen die Zeilen so aussehen:

for /f "skip=7 delims=" %%a in ('dir /b /a:d /o:-d D:BackupMozilla') do rd /s /q "D:BackupMozilla%%a"
und
for /f "skip=7 delims=" %%a in ('dir /b /a:d /o:-d D:BackupFoxmail') do rd /s /q "D:BackupFoxmail%%a"

Zwei Änderungen
Die delims= Option, damit die gesamte Ausgabezeile des dir Kommandos gelesen wird.
Wichtig: auf keinen Fall ein Leerzeichen zwischen delims= und dem Anführungszeichen setzen. Also so wie oben delims="

Änderung zwei, die Anführungszeichen in der Pfadangabe für das rd Kommando.

Donnerstag, 6. September 2007

Palm Desktop - Google Calendar Sync

syncronisation - Synchronisation - synchronisieren
Angepasst nach http://herold.org/google-calendar-palm-sync.php



Palm <-> Palm Desktop <-> AirSet Desktop Sync <-> www.airset.com <-alle 24h-> calendar.google.com

Kontakte und Kalender zwischen Palm und AirSet, Kalendar zwischen AirSet und Google



Sync your Google Calendar and Palm Device via Airset

    • Airset Google Calendar Sync
  • Select Calendar - Subscribe
    • Airset Google Calendar Sync
  • Click Next
    • Airset Google Calendar Sync
  • To get your Google iCal Address go to Google 'Manage Calendars' and select the calendar you want to import.
    • Google Calendar Sync
  • Click on the iCal icon for your private or public calendar address. Most likely you are using a private address...
    • 0make sure you have your Google iCal Address.
  • Copy the iCal address link to your clipboard
    • 0make sure you have your Google iCal Address.
  • Insert your Google Calendar iCal URL
    • Airset Google Calendar Sync
  • Review the calendar import details and confirm by clicking next.
    • Airset Google Calendar Sync
  • Select the Airset Calendar that you want your Google Calendar to sync with.
    • Airset Google Calendar Sync

Congratulations. Remember Airset Calendars will sync your google calendar every 24 hours. (They indicate that they will create a manual sync button in the future, but in the meantime remember you'll just get a daily update.

You can now sync Airset with your Palm Desktop and Palm Device.

  • Download and Install the Airset Desktop Sync http://www.airset.com/User/Sync.jsp
Install the Application and you'll be sync'n your Google Calendar and Palm Device.

Freitag, 3. August 2007

Ajax Project - Form Entry Suggest

(vgl. http://www.crackajax.net/suggest.php)


ajax.js


var url = "myajaxfunctions.php?param=";

function get_spot_id(idValue)
{

//var idValue = document.getElementById("agtel").value;
var myRandom = parseInt(Math.random()*99999999); // cache buster
http.open("GET", url + escape(idValue) + "&rand=" + myRandom, true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}


function handleHttpResponse()
{
if (http.readyState == 4)
{
document.getElementById("hiddenDIV2").innerHTML=http.responseText;
document.getElementById("hiddenDIV2").style.width="200px";
//alert(document.getElementById("response_table_font").size);
var l = document.getElementById("response_table").rows.length;
document.getElementById("hiddenDIV2").style.height= l*25 +"px";
document.getElementById("hiddenDIV2").style.visibility="visible";
}
}

function loadrecord(record) {
//document.forms[1].telno.value = record;
document.getElementById("agtel").value = record;
document.getElementById("hiddenDIV2").innerHTML='';
document.getElementById("hiddenDIV2").style.height="0px";
document.getElementById("hiddenDIV2").style.width="0px";
document.getElementById("hiddenDIV2").style.visibility="hidden";
}

myajaxfunctions.php

if(strlen($_REQUEST['param'])>0)
{
/*$result = mysql_query("SELECT * FROM contact WHERE ContactTel LIKE '$_REQUEST['param']%'");
if(mysql_num_rows($result)>0)
{
while($myrow = mysql_fetch_array($result))
{
$agenttel = $myrow["ContactTel"];
$agentid = $myrow["ContactID"];
$textout .= "<table><tr style="border: 0px solid black"> <td style="border: 0px solid black; padding: 0px 10px 0px 10px"> <a href="javascript:loadrecord('".$agenttel."')">" .$agentid."</a></td> <td style="border: 0px solid black; padding: 0px 10px 0px 10px">" .$agenttel."</td></tr></table>";
}
}
else { $textout=""; }
*/

$textout .= "<table width='50px'>";
$textout .= "<tr style="border: 0px solid black"> <td style="border: 0px solid black; padding: 0px 10px 0px 10px"> <a href="javascript:loadrecord('112')">112</a></td> <td style="border: 0px solid black; padding: 0px 10px 0px 10px">Tom</td></tr>";
$textout .= "<tr style="border: 0px solid black"> <td style="border: 0px solid black; padding: 0px 10px 0px 10px"> <a href="javascript:loadrecord('100111')">100111</a></td> <td style="border: 0px solid black; padding: 0px 10px 0px 10px">Rainer</td></tr>";
$textout .= "</table>";

$textout='';
$textout .= "<font id='response_table_font' size='2'>";
$textout .= "<table id='response_table'>";
$textout .= "<tr > <td > <a href="javascript:loadrecord('112')">112</a></td> <td >Tom</td></tr>";
$textout .= "<tr > <td > <a href="javascript:loadrecord('112')">112</a></td> <td >Tom</td></tr>";
$textout .= "<tr > <td > <a href="javascript:loadrecord('112')">112</a></td> <td >Tom</td></tr>";
$textout .= "<tr > <td > <a href="javascript:loadrecord('112')">112</a></td> <td >Tom</td></tr>";
$textout .= "<tr > <td > <a href="javascript:loadrecord('112')">112</a></td> <td >Tom</td></tr>";
$textout .= "</table></font>";

}
echo $textout;


page.html


Wo?<br />
<input id="agtel" type="text" name="telno" onKeyUp="javascript:if(this.value.length > 3) get_spot_id(this.value);">

<div id="hiddenDIV2" name="hiddenDIV2" style="position:relative; top: 2px; left: 2px;width: 200px; visibility:hidden; background-color:white; border: 1px solid black;"> </div>



Editieren mit Browser - edit.php

<?php


$_REQUEST['dateiname'] =='' ? $file = "./index.php" : $file = $_REQUEST['dateiname'];


if(isset($_GET['action']) AND $_GET['action'] == 'update' AND $_POST['update_txt']!='') {
$fp = fopen($file, "w");
if(fwrite($fp, stripcslashes($_POST['update_txt']))) {
echo "Update erfolgreich.";
} else {
echo "Fehler beim Update.";
}
}
// else {
$content = file_get_contents($file);
echo '<form action="'.$_SERVER['PHP_SELF'].'?action=update&file='.$file.'" method="post" >';
echo 'Zu öffnende Datei: <input name="dateiname" type="text" size="50" maxlength="50" value="'.$file.'"><br>';
echo '<textarea name="update_txt" cols="70" rows="30" >'.$content.'</textarea><br/>';
if($file==''){ echo '<input type="submit" value="Datei laden" /></form>';}

else{ echo '<input type="submit" value="Update" /></form>';}
//}

function listdir($start_dir='.') {

$files = array();
if (is_dir($start_dir))
{
$fh = opendir($start_dir);
while (($file = readdir($fh)) !== false)
{
# loop through the files, skipping . and .., and recursing if necessary
if (strcmp($file, '.')==0 || strcmp($file, '..')==0) continue;
$start_dir == "." ? $filepath = $file : $filepath = $start_dir ."/". $file;
if ( is_dir($filepath) )
$files = array_merge($files, listdir($filepath));
else
array_push($files, $filepath);
}
closedir($fh);
}
else
{
# false if the function was called with an invalid non-directory argument
$files = false;
}

return $files;

}

echo "Vorhanden sind folgende Dateien:<br>";
$files = listdir();
foreach($files as $f)
echo " <a href='./edit.php?dateiname=".addslashes($f)."' >".$f."</a>,";
?>

Donnerstag, 2. August 2007

Ajax Tutorial - Kurzeinführung


Hier eine von mir angepasste Ajax Einführung von Rasmus.

I find a lot of this AJAX stuff a bit of a hype.  Lots of people have
been using similar things long before it became "AJAX". And it really
isn't as complicated as a lot of people make it out to be. Here is a
simple example from one of my apps. First the Javascript:

function createRequestObject() {
var req = null;
try{
req = new XMLHttpRequest();
}
catch (ms){
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (nonms){
try{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (failed){
req = null;
}
}
}
return req;
}

var http = createRequestObject();

function sndReq(action) {
http.open('get', 'myajaxfunctions.php?ajaxaction='+action);
http.onreadystatechange = handleResponse;
http.send(null);
}

function handleResponse() {
if(http.readyState == 4){
var response = http.responseText;

var update = new Array();

if(response.indexOf('|' != -1)) {
update = response.split('|');

document.getElementById(update[0]).innerHTML = update[1];
}
}
}


This creates a request object along with a send request and handle
response function. So to actually use it, you could include this js in
your page. Then to make one of these backend requests you would tie it
to something. Like an onclick event or a straight href like this:

<div id="my_ajax_div">
</div>
<a href="javascript:sndReq('search_spots')">doit</a>

That means that when someone clicks on that link what actually happens
is that a backend request to myajaxfunctions.php?ajaxaction=search_spots will be sent.

In myajaxfunctions.php you might have something like this:

<?php
switch($_REQUEST['ajaxaction']) {
case 'search_spots':
echo "my_ajax_div|Search done.";
break;
}
?>

Now, look at handleResponse. It parses the "my_ajax_div|Search done." string and
splits it on the '|' and uses whatever is before the '|' as the dom
element id in your page and the part after as the new innerHTML of that
element. That means if you have a div tag like this in your page:

<div id="my_ajax_div">
</div>

Once you click on that link, that will dynamically be changed to:

<div id="my_ajax_div">
Search done.
</div>

That's all there is to it. Everything else is just building on top of
this. Replacing my simple response "id|text" syntax with a richer XML
format and makine the request much more complicated as well. Before you
blindly install large "AJAX" libraries, have a go at rolling your own
functionality so you know exactly how it works and you only make it as
complicated as you need. Often you don't need much more than what I
have shown here.

Expanding this approach a bit to send multiple parameters in the
request, for example, would be really simple. Something like:

function sndReqArg(action,arg) {
http.open('get', 'myajaxfunctions.php?ajaxaction='+action+'&arg='+arg);
http.onreadystatechange = handleResponse;
http.send(null);
}

And your handleResponse can easily be expanded to do much more
interesting things than just replacing the contents of a div.

-Rasmus

Mittwoch, 18. Juli 2007

Regex


iX

Perls reguläre Ausdrücke

Zeichen und Klassen

.ein beliebiges Zeichen außer Newline; paßt im Singleline-Mode auf das n-Zeichen
xein x
Wort"Wort"
[xyz]Zeichenklasse: trifft x, y oder z
[a-z]Zeichenklasse: paßt auf jedes Zeichen zwischen a und z
(Wort)eingefangenes "Wort", wird in $i gespeichert; mit i im Ausdruck verwendbar
(?:Wort)gruppieren, aber nicht speichern
x(?=y)x wenn y folgt; Klammern speichern nicht
x(?!y)x wenn kein y folgt. Klammern speichern nicht
wWortzeichen
w+ganzes Wort (Wortzeichen mit folgendem Leer- oder Satzzeichen)
WNicht-Wortzeichen: Satzzeichen, Leerzeichen und so weiter
sLeerraum: Leerzeichen, Tabulator, Newline
Salles, was kein Leerraum ist: Buchstaben, Ziffern et cetera
bWortgrenze, wie in vi < und >
dZiffer

Quantifizierer

*vorangehender Ausdruck beliebig oft, auch gar nicht
+vorangehender Ausdruck beliebig oft, mindestens einmal
?vorangehender Ausdruck höchstens einmal
{4}vorangehender Ausdruck genau 4mal
{2,7}vorangehender Ausdruck 2- bis 7mal

Sonderzeichen

|oder, auf Zeichen und Gruppen anwendbar: (ganz)|(gar nicht)
^Anfang der Zeile oder des Ausdrucks
$Ende der Zeile oder des Ausdrucks
[^x]alles, was nicht "x" ist
Backslash, nimmt Sonderzeichen die Spezialbedeutung
Ualle Zeichen bis E in Großbuchstaben
Lalle Zeichen bis E in Kleinbuchstaben
Qalle Sonderzeichen bis E mit schützen
EEnde von U, L, Q

Operatoren und Modifizierer

m//suche
s///suche und ersetze
s###suche und ersetze, aber verwende # als Trenner
//gjedes Vorkommen finden
//iGroß- und Kleinschreibung ignorieren
//mMultiline-Mode, ^ und $ passen auf logische Zeilenanfänge und -enden, . matched kein Newline
//sSingleline-Mode, ^ und $ erkennen Anfang/Ende des gesamten Strings, . matched Newline
//smkombiniert: Logische Zeilen plus Newline
//xKommentare und Leerzeichen im Suchen-Teil erlaubt
s///ekann im Ersetzungsteil einen Ausdruck erst evaluieren und dann ersetzen.; erlaubt ist alles, was einen ersetzungsfähigen Ausdruck ergibt

Spezialvariablen

$1Wert der ersten einfangenden Klammer; nur im Ersetzungsteil verwenden
1Rückbezug auf die erste einfangende Klammer
$&letzter gefundener Treffer
$'Text nach dem Treffer
$`Text vor dem Treffer
$+Treffer der letzten einfangenden Klammer
$/Zeilentrenner (Input Record Separator)


Total Commander


Reguläre Ausdrücke

Reguläre Ausdrücke sind ein sehr mächtiges Suchwerkzeug. Sie erlauben die Suche nach komplexen Klassen von Wörtern. Reguläre Ausdrücke sind vor allem für Profis gedacht, können aber auch im Büroalltag zum Finden bestimmter Dokumente nützlich sein (siehe Beispiele unten).

Total Commander unterstützt reguläre Ausdrücke in folgenden Funktionen:
- Befehle - Suchen (im Dateinamen und im Dateiinhalt!)
- Im Lister
- Im Mehrfach-Umbenenntool

- Im Markieren-Dialog

Reguläre Ausdrücke bestehen aus normalen Zeichen und speziellen Zeichen, sogenannten Metazeichen. Folgende Zeichen sind Metazeichen oder der Anfang von Metazeichen:
. ( ) [ ] { } ^ $ + * ? (nur in Zeichenklassen: - )

Normale Zeichen:


test findet den Text "test" im durchsuchten Text. Hinweis: Das findet "test" irgendwo im Dateinamen bzw. Text.

Escape-Sequenzen:

Ein Backslash leitet eine Escape-Sequenz ein. Beispiele für Escape-Sequenzen:

t Tabulatorzeichen
xnn Zeichen mit dem Hexadezimalcode nn. Beispiel: x20 ist ein Leerzeichen. Die Zeichentabelle charmap.exe (sofern installiert) zeigt den Zeichencode der meisten Spezialzeichen an. Mit dem Taschenrechner von Windows können Sie den Dezimalcode in Hexadezimal umrechnen.
[ Eckige Klammer auf: Weil die eckige Klammer ein Metazeichen ist, muss man [ schreiben, wenn man die Klammer selbst finden will.

\ Findet einen Backslash.
. Findet einen Punkt ("." allein findet irgend ein Zeichen, siehe unten).

Zeichenklassen:


Zeichen in eckigen Klammern bilden eine Zeichenklasse. Es wird genau ein Zeichen aus dieser Klasse gefunden. Mit einem Bindestrich werden Gruppen definiert, etwa [a-z]. Ein ^ am Anfang findet alle Zeichen ausser den genannten.
Beispiele:

[aeiou] Findet genau einen dieser Vokale.
[^aeiou] Findet alles ausser einem Vokal
M[ae][iy]er Findet Herrn Meier in allen möglichen Schreibweisen: Mayer, Meyer, Maier, Meier. Sehr nützlich, wenn man sich nicht mehr an die genaue Schreibweise erinnern kann!


Metazeichen

Hier eine Liste der wichtigsten Metazeichen:

^ Zeilenanfang
$ Zeilenende
. Ein beliebiges Zeichen
w ein Buchstabe, eine Ziffer oder der Unterstrich
W das Gegenteil von w
d eine Ziffer
D keine Ziffer
s ein Worttrennzeichen (Leerzeichen, Tabulator etc)
S kein Worttrennzeichen
b findet eine Wortgrenze (Kombination aus s und S)
B Gegenteil von b

Iteratoren

Iteratoren stehen für Wiederholungen des Zeichens links des Iterators.
* Zeichen kommt nicht oder mehrmals vor
+ Zeichen kommt mindestens einmal vor

{n} Zeichen kommt genau n-mal vor
{n,} Zeichen kommt mindestens n-mal vor
{n,m} Zeichen kommt mindestens n-mal, max. m-mal vor

All diese Operatoren sind "gierig", d.h. sie nehmen so viele Zeichen, wie sie bekommen können. Ein nachgestelltes Fragezeichen macht den Operator "genügsam", d.h. er nimmt nur so viele Zeichen wie nötig.
Beispiel: "b+" angewandt auf den Zielstring "abbbbc" findet "bbbb", "b+?" findet "b".

Alternativen

Alternativen stehen in runden Klammern, und werden durch einen senkrechten Strich getrennt.

Beispiel: (Hans|Fritz|Peter) findet einen der Namen Hans, Fritz oder Peter.

Teilausdrücke für Suchen und Ersetzen


Textteile in Klammern gelten als Teilausdrücke.
Beispiel: Wenn man in einer MP3-Datei Titel und Interpret vertauschen will, die durch einen Bindestrich und zwei Leerzeichen getrennt sind (Titel - Interpret.mp3), so kann man das so lösen:
Suchen nach: (.*) - (.*).mp3
Ersetzen durch: $2 - $1.mp3
Dabei steht $1 für den Text in der ersten Klammer, $2 für den in der 2. Klammer.

Rückwärtsreferenzen


n Findet Teilausdruck n ein weiteres Mal im Suchresultat.

Beispiel: (.+)1+ Findet z.B. abab (wobei das erste ab von .+ gefunden wird, das zweite von 1+

Modifikatoren

Schalten die Funktionsweise von regulären Ausdrücken um.


(?i) Ignoriere Gross-/Kleinschreibung. Ist in Total Commander standardmässig aktiv für Dateinamen.
(?-i) Beachte Gross-/Kleinschreibung.
(?g) Schalte in den "gierig"-Modus (standardmässig aktiv)
(?-g) Schalte in den "genügsam"-Modus, so dass "+" dasselbe bewirkt wie "+?"


Die anderen Modifikationen sind bei Total Commander nicht relevant, weil das Programm nur innerhalb einer Zeile suchen kann.


Total Commander verwendet die freie Delphi-Bibliothek TRegExpr von Andrey V. Sorokin: http://regexpstudio.com/
Einige der oben aufgeführten Erklärungen stammen aus der Hilfe zu dieser Bibliothek.
Stab2D gemerkt

Hinweise zu Stab2d

Hinweise zur Verwendung von Stab2d

Sowohl die Statik A-Hausübung als auch die erste und zweite Aufgabe der Statik B-Hausübung lassen sich mit dem Programm Stab2d kontrollieren. Sie können sich das Programm kostenlos aus dem Internet herunterladen:

http://www.isd.uni-hannover.de/62.html

Schräge Lager:

Die Lagerungsbedingungen geben Sie Im Menü Eingabe System Knoten ein. Nachdem Sie die Koordinaten des betreffenden Knotens eingegeben haben, müssen Sie die Lagerungsbedingungen eingeben.

X bedeutet hierbei eine Festhaltung in x-Richtung, Z bedeutet eine Festhaltung in z-Richtung und R bedeutet eine Festhaltung der Rotation (z.B. für eine Einspannung). Geben Sie J ein, wenn der Knoten in der entsprechenden Richtung gelagert ist, geben Sie N ein, wenn der Knoten nicht gelagert ist.

Im nächsten Feld („Verdrehung in Grad“) können Sie den Drehwinkel Ihres schrägen Auflagers eingeben.

Eingabe von Gelenken:

Häufig kommt es vor, dass mehrere Stäbe an ein Gelenk anschließen. Oft machen die Anwender dann den Fehler, jedem der angreifenden Stäbe ein Gelenk zuzuweisen, und wundern sich dann, dass Stab2d die Warnung „Steifigkeitsmatrix ist singulär – Möglicherweise liegt ein verschiebliches System vor“ ausgibt.

Grundsätzlich gilt: Greifen n Stäbe an einem Gelenk an, so muss genau (n-1) Stäben ein Stabendgelenk zugewiesen werden. Einem Stab darf kein Gelenk zugewiesen werden.

Würde man allen Stäben ein Stabendgelenk zuweisen, so könnte sich der Knoten frei drehen, das System wäre damit kinematisch – deshalb die Warnung in Stab2d.

Einflusslinien:

Mit Stab2d kann man auch Einflusslinien berechnen. Beispielhaft wird hier das Vorgehen für die Einflusslinie Mm infolge einer vertikalen Wanderlast 1 erklärt.

Der aufzubringende Lastfall ist das Arbeitskomplement zur Einflussgröße Mm, also in diesem Fall ein Knick um 1. Geben Sie in Stab2d zunächst ein Momentengelenk an der Stelle m ein. Wählen Sie nun bei Belastung Gelenklasten. Geben Sie den Knick um 1 als Verformung ein.

Die Einflusslinie ist das Arbeitskomplement zur Wanderlast, in diesem Fall also die w-Linie. Lassen Sie sich also von Stab2d die Biegelinie berechnen. Sie können sich die Zahlenwerte auch in der Ergebnistabelle ansehen. Sollte die interessierende Stelle nicht ausdrücklich angegeben sein, müssen Sie an dieser Stelle einen Knoten definieren. Dann wird der Wert der Einflusslinie an dieser Stelle auch ausgegeben.

Vorspannung / zu kurz oder zu lang eingebaute Stäbe:

Zur Berücksichtigung der Vorspannung geben Sie an dem entsprechenden Stab ein Normalkraftgelenkt ein. Wählen Sie nun im Menü Belastung den Punkt Gelenklasten aus. Geben Sie die gewünschte Vorspannung als Verformungslast ein.

Abbildung von Längsfedern:

In der 3. Aufgabe der Statik A-Übung ist ein System gegeben, das eine Längsfeder enthält. Das Programm Stab2d hat aber keine Funktion zur Berücksichtigung von Längsfedern. Man kann durch einen kleinen "Trick" aber trotzdem Längsfedern berücksichtigen:

Die Federkonstante k einer Längsfeder gibt an, mit welcher Kraft F die Feder belastet werden muss, damit sie sich um die Länge DL zusammendrückt: k = F / DL

Ein beidseitig gelenkig angeschlossener Stab der Länge L und der Dehnsteifigkeit EA erfährt unter der Last F eine Verkürzung von DL = F L / EA. Er hat also die "Ersatzsteifigkeit" F / DL = EA / L.

Man kann also eine Längsfeder durch einen dehnsteifen Stab ersetzen, indem man das Verhältnis EA / L der Federsteifigkeit k anpasst, sich also beispielsweise die Länge des Stabes zu L = 1 Meter vorgibt und EA entsprechend ausrechnet.

Bei der Eingabe der Materialien ist zu beachten, dass die anderen Stäbe des in Aufgabe 3 gegebenen Systems eine Dehnsteifigkeit von EA = unendl. haben. Es empfiehlt sich also die folgende Eingabe:

Stab

E

I

A

1

1

I1 / IC

10000

2

1

I2 / IC

10000

3

1

I3 / IC

10000

Feder

1

1000

Betrag von k


Abbildung von Drehfedern:

Auch Drehfedern können mit Hilfe von Ersatzstäben berücksichtigt werden. Die Drehfedersteifigkeit kD ist definiert als kD = M / Dj. Gibt man sich einen Ersatzstab der Länge L vor und belastet ihn mit einem Moment M=1, so lässt sich die Verdrehung des Lastangriffspunktes durch "Koppeln" der beiden entstehenden M-Linien ermitteln:

j = 1 * 1 * 1 * L / EI

Daraus ergibt sich also eine "Ersatzdrehfedersteifigkeit" von

M / Dj = 1 / (L / EI) = EI / L

Durch Gleichsetzen von kD und EI / L lässt sich jetzt eine Biegesteifigkeit EI für den Ersatzstab bestimmen, wenn man sich die Länge des Stabes zu L = 1 Meter vorgibt.

Der Ersatzstab wird an der Stelle, an der sich die Drehfeder befindet, biegesteif angeschlossen und an seinem anderen Ende einwertig (!) so gelagert, dass die Verdrehung verhindert wird. Eine zweiwertige Lagerung darf nicht angebracht werden, weil der Stab sonst auch Normalkräfte oder Querkräfte aufnehmen könnte und das ursprüngliche System dann nicht mehr korrekt abbilden würde.

Kontrolle der Flexibilitätsmatrix (dik – Werte):

Die dik – Werte (=die Einträge in der Flexibilitätsmatrix) können mit Stab2d kontrolliert werden. Das ist gerade dann sinnvoll, wenn zwar die Einheitsbelastungszustände (M0-Linie, M1-Linie usw.) mit Stab2d übereinstimmen, die endgültige M-Linie aber von den Ergebnissen aus Stab2d abweicht. Es muss dann also ein Fehler beim „Koppeln“ vorliegen.

Geben Sie nun in Stab2d Ihr statisch bestimmtes Hauptsystem ein. Bringen Sie als Belastung die Größe X1=1 auf. Sie können jetzt alle di1 – Werte kontrollieren. Der d21-Wert entspricht beispielsweise dem Arbeitskomplement zur Größe X2 in dem unter der Last X1 belasteten Hauptsystem. Falls Sie für X2 eine Kraft ausgelöst haben, müssen Sie also eine Verschiebung an der Stelle 2 berechnen.

Belasten Sie das statisch bestimmte Hauptsystem nun nacheinander mit den Lasten Xi und der äußeren Last (zur Kontrolle der di0-Werte auf der rechten Seite).

Wenn Sie alles richtig eingegeben haben, erkennen Sie die Symmetrie des Gleichungssystems: dik = dki. Die Verschiebung an der Stelle i infolge einer Belastung 1 an der Stelle k ist gleich der Verschiebung an der Stelle k infolge einer Last 1 an der Stelle i (Satz von Betti).

Kontrolle der Steifigkeitsmatrix:

Sie können mit Stab2d auch die Steifigkeitsmatrix des Drehwinkelverfahrens kontrollieren. Geben Sie dazu das statische System ein und bringen Sie zusätzlich zu den ohnehin schon vorhandenen Lagern alle Festhaltungen des Starrsystems auf. Dazu zählen beispielsweise Knotendrehwinkel (Drehfesthaltung eingeben!) und Lager bzw. Hilfsstäbe gemäß Ihrer m-Zustände.

Bringen Sie jetzt als Belastung nacheinander die folgenden Zwangsverformungen auf:

Um die Einträge in der Knotengleichung zu kontrollieren, weisen Sie dem jeweiligen Knoten eine Verdrehung um 1 zu. Lassen Sie sich nun die Lagerreaktionen an den im Starrsystem zusätzlich aufgebrachten Lagern ausgeben. Der Eintrag in der Knotengleichung im Feld m1 entspricht gerade der Lagerreaktion am Lager m1, wenn der Knotendrehwinkel zu 1 vorgegeben wurde.

Um die Einträge der Netzgleichung zu kontrollieren, weisen Sie dem jeweiligen Lager eine Lagerverschiebung um 1 zu bzw. wenn Sie einen Hilfsstab eingefügt haben weisen Sie ihm ein Normalkraftgelenk und eine Gelenkverschiebung um 1 zu. Die Einträge in der Netzgleichung entsprechen nun wieder den jeweiligen Lagerreaktionen (bzw. bei einem Hilfsstab der Normalkraft in diesem Stab).

Vorsicht:

In Ihrer Handrechnung haben Sie wahrscheinlich die m-Zustände nicht so gewählt, dass die Verschiebung des jeweiligen Lagers 1 ist. Daher müssen Sie die zu dem jeweiligen m-Zustand gehörigen Zeilen und Spalten des Gleichungssystems Ihrer Handrechnung durch den Betrag der Verschiebung aus Ihrem m-Zustand teilen.

Vergleichen Sie nun die Ergebnisse aus Stab2d mit der modifizierten Steifigkeitsmatrix aus Ihrer Handrechnung. Falls ein m-Zustand falsch sein sollte, weichen die Werte der jeweiligen Zeile und Spalte des Gleichungssystems voneinander ab. Sie können so den Fehler eingrenzen.

Ó www.dirk-ostermann.de

Mittwoch, 27. Juni 2007

MediacenterGMX als Netzwerkresource einbinden


Windows+e->Extras->Ordneroptionen->Allgemeine Aufgaben einschalten


Netzwerkumgebung->Netzlaufverk verbinden->mit Netzwerkserver verbinden


https://mediacenter.gmx.net angeben,

USER rainer.schamel@gmx.de,

PW


Scannen mit SilverFast

Schritt für Schritt:


















Sollte es Probleme geben, weil die Software nach einem Scannerstillstand nicht mehr die 100 Bilder zur Wahl gibt (die du mit Strg+A ausgewählt hast), dann muß in

C:Dokumente und EinstellungenRainerAnwendungsdatenLasersoft ImagingSilverFastPrefs oder in
C:Dokumente und EinstellungenRainerAnwendungsdatenLasersoft ImagingSilverFastPreview

eine der Dateien gelöscht werden. Welche, weiß ich nicht mehr.

EXIF und IPTC Tag bearbeiten

EXIF

Portable Exif_Sorter_v2.56 um nach Übertragung auf den PC das Aufnahme-Datum der iphone Bilder in den Dateinamen zu schreiben.

Dateidatum iphone Bilder

Mittels der Dropbox- Importsoftware auf dem PC werden automatisch Datums-Uhrzeit-Stempel als Dateinamen erzeugt.

Exif Tool GUI

zum Ändern des Datei und Exif Datums

EXIF und IPTC Tag bearbeiten


Mit XnView Bilder nach Exif-Datum umbenennen, da das Dateidatum nach Import der Canon Bilder auf den Computer das Datum des Imports haben:

Bilder markieren - Rechtsklick - Mehrfaches umbenennen: <Date Taken [Y-m-d_H.M.S]>_

----------------------------


Eingescannte Dias für Picasa aufbereiten


rem STEP1: TotalCommander


rem STEP2: jhead (Jhead homeage: http://www.sentex.net/~mwandel/jhead)

rem Evtl. Header anlegen
rem jhead.exe -mkexif  *.jpg

rem Sets the date stored in the Exif header to what is specified on the command line
jhead.exe -ts1994:01:14-00:00:00 *.jpg

rem Sets the file's system time stamp to what is stored in the Exif header.
jhead.exe -ft *.jpg

rem STEP3: XnView (URL: http://www.xnview.com - http://www.xnview.org)
rem Nun die IPTC Daten mit XnView bearbeiten!! Das Feld IPTC-Daten->Allgemein->Objektbeschreibung wird bei Picasa angezeigt,

die IPTC-Daten->Stichworte  erscheinen als Tags bei Picasa online.

rem STEP4: Picasa




jhead: http://www.sentex.ca/~mwandel/jhead/usage.html

Date / Time manipulation options




-ftSets the file's system time stamp to what is stored in the Exif header.

-dsftSets the Exif timestamp to the file's timestamp. Requires an Exif header to pre-exist.
Use -mkexif option to create one if needed.

------------------------------------

Tracks - Maps - Geo Location

http://www.technikblog.ch/2012/01/hochauflosendes-foto-aus-gps-track-fur-fotoalbum-erstellen/
http://www.dslr-forum.de/showthread.php?p=9331739

http://gps-camera.eu/geotagging-blog/46-wissen/97-tracks-aus-gps-bildern-extrahieren-mit-prune-exif-zu-gpx-oder-kml.html

exif zu gpx
Portable Geosetter

Laufwerksbezeichnung ändern - E: statt F:



iTunes erkennt die Musiksammlung nicht mehr

Wenn die externe Festplatte mit den MP3 Dateien nicht wieder als Laufwerk E: angemeldet wird, erkennt iTunes die Musikstücke nicht mehr. Das Einfachste ist nun, die Laufwerkbezeichnung der Festplatte zu ändern. Bei Windows XP geht das über die Computerveraltung:


Start > Einstellungen > Systemsteuerung > Verwaltung > Computerverwaltung > Datenspeicher > Datenträgerverwaltung > Rechtsklick auf Festplatte: Laufwerkbuchstaben und -pfade ändern > ändern