JohannWeiher

Über Johann Weiher

Der Autor hat bisher keine Details angegeben.
Bisher hat Johann Weiher, 536 Blog Beiträge geschrieben.

EPLAN 2.8: Scripting Neuerungen

Die Beta ist noch nicht draußen, aber die Hilfe ist schon verfügbar.

 

Entfernt

EPLAN5 und EPLAN21 Übernahme. Somit auch die Action E21EasyImportSettingAction.

 

Hinzugefügt

 

Geändert

Die Aktion generatemacros  wurde um die folgenden optionalen Parameter erweitert:

  • PAGENAMEn  : Namen der zu berücksichtigenden Seiten
  • INSTALLATIONSPACENAMEn  : Namen der zu berücksichtigenden Bauräume
  • STRUCTUREn  : Strukturkennzeichen der zu berücksichtigenden Bauräume
  • WINDOWMACRODIR  : Verzeichnis für Fenstermakros
  • PAGEMACRODIR  : Verzeichnis für Seitenmakros
  • FILTERSCHEME  : Filterschema
  • OVERWRITE  : Überschreibmodus.

Dabei steht “n” für eine Nummer.

 

Von |2018-08-17T12:32:47+02:002018-08-02|EPLAN|

Buch – EPLAN Electric P8 automatisieren – 2. Auflage

Es ist wieder so weit… Nachdem die erste Auflage komplett ausverkauft ist, durfte ich mich wieder ans Schreiben machen.
Sehr stolz bin ich auf die Website zum Buch eep8a.de. Dort findet Ihr alle Scripte, Beispiele und Daten kostenlos!

Ehrlich gesagt war es viel Arbeit, denn ich habe alle Einflüsse & Rückmeldungen der letzten sieben (!) Jahre einfließen lassen. Vieles wurde umformuliert und Einiges hinzugefügt.

Hier der Changelog die Änderungen im Überblick:

  • Action überladen
  • Eigene Klasse
  • Decider
  • Action mit Rückgabewert
  • Debugging
  • FileSelectDecisionContext
  • RemoteClient
  • ChangeLayer
  • XEsSetProjectPropertyAcion
  • XML-Datei schreiben
  • XML-Datei lesen (eigene Klasse)

Somit lohnt sich auch für Käufer der ersten Ausgabe, die zweite zumindest mal anzuschauen. Beispielsweise der RemoteClient dürfte für viele Leute da draußen interessant sein. Mit diesem könnt Ihr EPLAN von einer eigenen Applikation aus steuern.

Eine Leseprobe findet ihr hier.

Genug der Werbung… Wie gewohnt könnt Ihr das Buch hier kaufen.
Erscheinungstermin ist voraussichtlich der 06.08.2018. Jetzt vorbestellen!
Freue mich sehr über eure Rückmeldungen!

Von |2018-07-30T07:20:16+02:002018-07-30|EPLAN|

CSS Scorpion Header

Ich schau grad die Serie Scorpion… Dort gefällt mir der Stil für Text die </ HTML Tags > zu verwenden. Hab das mal auf der Startseite für die Unterüberschrift verwendet im Suplanus-Grün.

Nun dachte ich mir das wäre doch auch schön für den Blog in der Überschrift. Gesagt getan…
Schön zu sehen was man mit CSS alles machen kann:

/* Post Header Style */
.fusion-post-title::before{
    content: '\00003C/ ' !important;
    left: 0;
}
.fusion-post-title::after{
    content: ' \00003E' !important;
    right: 0;
}
.fusion-post-title::before, .fusion-post-title::after {
    color: #1ba800;
}

Von |2018-07-31T12:05:56+02:002018-07-28|Allgemein|

EPLAN-API: Showcase 2018 Juli

Mit diesem API-Addin werden an die 1000 DXF Dateien importiert und in einer eigenen Symbolbibliothek abgespeichert.
Jedes Symbol gibt es in den jeweiligen Drehvarianten und gespiegelt.

Anhand der Seiten sieht man wie aus dem Import die einzelnen Varianten entstehen.
Fixed: Im Video ist das noch nicht ganz korrekt :^)

Von |2018-07-26T14:04:56+02:002018-07-26|EPLAN, EPLAN-API|

LedMatrix

Noch so ein Projekt was gefühlt schon ewig (zwei Jahre) zurückliegt, aber ich noch keine Zeit gefunden habe darüber zu schreiben. Eigentlich seit ich etwas mit Computer mache, wollte ich mir schon immer eine LED Matrix bauen.

 

Mir macht Löten keinen Spaß, darum hab ich das immer gescheut. Aber mit LED-Stripes ist das nun einfach und sogar relativ günstig. Man braucht eigentlich nur folgendes:

  • LED-Stripes: 16×16=256 (hab WS2812b genommen, sind nur 3-Leiter)
  • Netzteil: In meinem Fall 20A
  • Mikrocontroller: Muss schnell genug sein. Hab nen Tensy genommen
  • Optional Rapsberry Pi: Damit kann ich Ihn vom Netzwerk aus steuern
  • Optional USB-Umschalter: Damit kann ich zwischen Raspberry Pi und Standalone umschalten

Nun hab ich mir eine MDF-Platte hergeschnitten und Fächer aus Kunststoff erstellt. Hier wenn möglich was leichteres nehmen. Die LED-Matrix ist sehr schwer geworden. Hatte noch bisl Holz rumliegen. Das hab ich geflämmt. Milch-Plexiglas hab ich fertig bestellt.

Den Tensy kann man mit Arduino programmieren. In meinem Fall läuft ne Laufschrift durch bis ein Signal von Serial kommt. Hier nutze ich auf dem Pi Glediator. Über Screens kann ich vom iPad aus auch auf den Pi per VNC und das bequem bedienen (oder per Handy was auf einer Party praktisch ist).

#include <FastLED.h>
#include <LEDMatrix.h>
#include <LEDText.h>
#include <Font12x16.h>

#define LED_PIN            4

#define COLOR_ORDER         GRB
#define CHIPSET             WS2812B

// initial matrix layout (to get led strip index by x/y)
#define MATRIX_WIDTH   16
#define MATRIX_HEIGHT  16
#define MATRIX_TYPE    HORIZONTAL_ZIGZAG_MATRIX
#define MATRIX_SIZE    (MATRIX_WIDTH*MATRIX_HEIGHT)
#define NUMPIXELS      MATRIX_SIZE

#define WAITMAX      100000

// create our matrix based on matrix definition
cLEDMatrix<MATRIX_WIDTH, MATRIX_HEIGHT, MATRIX_TYPE> leds;
cLEDText ScrollingMsg;

int waitCount = 0;


const unsigned char TxtDemo[] = { EFFECT_SCROLL_LEFT " Hello World "};

void setup()
{
  Serial.write("Setup...\n");
  

  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);

  FastLED.addLeds<CHIPSET, LED_PIN, COLOR_ORDER>(leds[0], leds.Size());
  FastLED.setBrightness(255);
  FastLED.clear(true);
  FastLED.show();   
     
  FastLED.showColor(CRGB::Red);  
  delay(500);
  
  FastLED.showColor(CRGB::Green);  
  delay(500);
  
  FastLED.showColor(CRGB::Blue);
  delay(500);

  ScrollingMsg.SetFont(Font12x16Data);
  ScrollingMsg.Init(&leds, leds.Width(), ScrollingMsg.FontHeight(), 0, 0);
  ScrollingMsg.SetText((unsigned char *)TxtDemo, sizeof(TxtDemo) - 1);
  ScrollingMsg.SetTextColrOptions(COLR_RGB | COLR_SINGLE, 0xff, 0x00, 0xff);  
  
}

int serialReadBlocking() {
while (!Serial.available()) {}
    return Serial.read(); 
}

void loop()
{
  if (Serial.available())
  {
    waitCount = 0;
    while (serialReadBlocking() != 1) {} 
    digitalWrite(13, HIGH);
    for (long i=0; i < MATRIX_SIZE; i++) {
      leds(i).r = serialReadBlocking();
      leds(i).g = serialReadBlocking();
      leds(i).b = serialReadBlocking();
    }
    FastLED.show(); 
    digitalWrite(13, LOW);
  }
  else
  {    
    waitCount++;
    if(waitCount > WAITMAX)
    {
      waitCount = WAITMAX; // Fix no overflow
      if (ScrollingMsg.UpdateText() == -1)
      {
        digitalWrite(13, HIGH);      
        ScrollingMsg.SetText((unsigned char *)TxtDemo, sizeof(TxtDemo) - 1);          
      }
      else
      {      
        FastLED.show();      
        digitalWrite(13, LOW);
      }
      delay(50);
    }    
  }  
}

Für die Elektronik hab ich (verzeiht es mir) PE-Brücken genommen und dort immer die Spannungsversorgung der Stripes parallel drauf geschalten. Das Signal vom Tensy muss aber durchgeschleift werden.

Machte echt Spaß und sieht super aus!

Von |2018-07-26T06:00:07+02:002018-07-25|Projekte, Raspberry Pi|
Nach oben