Symmetrisches Shape

Hallo Herr Martin,
Das Zentrum des Shapes soll seine y-Koordinaten nicht verändern, nur die Linien sollen sich (symmetrisch?) verlängern und die Texte auf Höhe der Dreiecke bleiben. Wie mache ich so etwas?
Hallo Herr M.,
Die Antwort zu Ihrem Supply Limit: es gibt keine Taste, um die Höhe (oder Breite) symmetrisch zum Pin zu ändern. Man könnte es über das Fenster Ansicht / Größe und Position machen – umständlich!

Ich schlage ein bisschen ShapeSheet vor: Fügen Sie einen Controlpunkt ein und beziehen die beiden Labels, die beiden Dreiecke und die beiden Enden der Linie auf diesen Punkt.

Sie finden meine Lösung unten links in dem roten Kasten. Hilft das?

Ein Ventil

Heute fragte eine Teilnehmerin in der Visio-Schulung, wie man es machen kann, dass beim Vergrößern eines Ventils nur das „T“ wächst. Die Antwort: man muss einige relative Verweise durch absolute Zahlen ersetzen – dann wird weder das „N“ vergrößert noch ändert sich die Unterkante des „T“.

 

Hintergrund- und Vordergrund

Guten Tag Herr Martin,
Ich habe ihre Videos auf Video2Brain gesehen und angefangen mit Visio zu basteln. Ist es möglich im ShapeSheet des Zeichenblattes eine Referenz zu dem X Wert des Hintergrundes herzustellen?
Ziel ist es, dass das Hintergrundblatt ,bei Änderung von Hoch- in Querformat, sich automatisch anpasst.
Ich würde mich über eine Antwort freuen.

Mit freundlichen Grüßen FK.


Hallo Herr K.,
ja – verweisen Sie vom Hintergrundblatt auf das Vordergrundblatt, indem Sie bei PageWidth eintragen:
=Pages[Page-1]!ThePage!PageWidth
Analog bei PageHeight:
=Pages[Page-1]!ThePage!PageHeight
Und: dann sollten Sie Shapes die Hintergrundblattes auf die Größe verweisen lassen – also das Logo sitzt beispielsweise bei:
ThePage!PageWidth-10 mm
und bei
ThePage!PageHeight-10 mm
wenn die beiden LocPinX und LocPinY bei:
Width*1
und bei
Height*1 sitzen.

Text an der selben Position

Der Kunde möchte bestimmte Texte stets an der gleichen Stelle auf einem Zeichenblatt positioniert haben. genau: einige Millimeter oberhalb einer Linie.
Nun: mit einem Bezug auf die Y-Position des Shapes ist das kein Problem. Über ein Steuerelement kann der Text dennoch verschoben werden. So wie auch die Position des querlaufenden Balkens.

20161018messstelle01

201610108messstelle02

Verborgene Blätter und pdf

Amüsant: Für eine Firma habe ich eine Vorlage eingerichtet. Sie enthält ein Zeichenblatt mit mehreren Elementen. Die Vorlage enthält ein weiteres Zeichenblatt, das ich über das ShapeSheet ausgeblendet habe (UIVisibility 1).
Ein Blatt ist verborgen
Ein Blatt ist verborgen
Nun fragte mich der Kunde, warum beim pdf-Export zwei Blätter ausgedruckt werden. Natürlich mein verborgenes Blatt.
Leider ein Blatt zu viel im pdf-Dokument
Leider ein Blatt zu viel im pdf-Dokument
Um dies zu verhindern, schaue ich ins ShapeSheet, ob es dort eine Blatt-Eigenschaft „NonPrinting“ (wie beim Shape) gibt. Leider nein.
Nun – da ich nur die Informationen des verborgenen Blattes benötige, wandle ich es in ein Hintergrundblatt um. Und damit wird es auch nicht gedruckt.

Text drehen – geht nicht

Ein Teilnehmer in der Visio-Schulung wundert sich, dass er den Text eines Pfeiles mit dem Werkzeug „Textblock“ nicht drehen kann. Ich frage, ob er den Pfeil durch einen Verbinder erzeugt hat. Ein Blick in den Shape-Namen zeigt, dass er aus dem Master-Shape „Linie mit Pfeil“ erzeugt wurde.
Und ein zweiter Blick ins ShapeSheet zeigt – tatsächlich: der Winkel ist geschützt.

20160913pfeil

Bedingte Formatierung

Eine hübsche Frage aus der letzten Visio-Schulung:
Ein Verbinder soll blau formatiert werden bei einem (Prozent-) Wert > 50; bis einschließlich 50 soll die Linie rot dargestellt werden.
Die Datengrafiken scheiden aus, da man dort nur die Füllung bedingt formatieren kann, jedoch nicht die Linie. Über Layer kann man zwar Linien formatieren, aber nicht bedingt. Also das ShapeSheet:
Aus eine Verbinderlinie wird eine Dateneigenschaft eingetragen. Diese wird über Einfügen / Feld auf der Linie angezeigt und kann problemlos mit den Werkzeug „Textblock“ verschoben werden.
Im ShapeSheet wird in der Zelle LineColor folgende Formel eingetragen:
=GUARD(IF(Prop.Anteil<=50,RGB(255,0,0),RGB(0,0,255)))
Natürlich kann man auch weitere Farben verwenden. So kann man eine bedingte Formatierung nachbilden.

20160912verbinder01

Eigene Organigrammsvorlage

Ich hätte es nicht geglaubt, aber es funktioniert:
Wenn Sie in Visio 2010 die Vorlage Organigramm öffnen, können Sie auf ihrer Basis eine neue Vorlage erstellen.
Ziehen Sie die Shapes für Chef und Mitarbeiter auf das Zeichenblatt, formatieren Sie sie und speichern Sie diese Shapes in einer neuen Schablone.
Achtung: Die Shapes müssen andere Namen tragen als die Shapes in der Orga-Schablone, beispielsweise xyPosition.
Achtung: Gut testen – möglicherweise müssen einige Einstellungen im Shapesheet mit GUARD fixiert werden, damit der Assistent sie nicht überschreibt.
20160904Orga01
Und: nun sehr erstaunlich: trägt man in eine Excel-Tabelle die Namen der neuen Mastershapes ein, greift der Assistent darauf zu und erzeugt ein Organigramm mit den neuen Shapes. Klasse!
20160904Orga02 20160904Orga03

Dynamische Listen

Hallo Herr Dr. Martin,
 
vielen Dank für die schnelle Antwort.
 
Gleichzeitig hänge ich mal mein Beispiel vom Klimaschrank an. Ich habe da die Shape Daten kreiert. Nun möchte ich erreichen, wenn ich aus der Liste der Modelle (Property Model) eines auswähle, dass sich die Werte von „Air Flow“ (Property AirFlow), „DX Cooling Capacity (total)“ (Property DX_total) usw. ändern. Kann man das erreichen und wie?
 
Vielen Dank im Voraus.
20160811Daten01 20160811Daten02
#######
Hallo Herr P.,
Da Sie einige längere Texte haben, schlage ich folgendes Vorgehen vor:
Ich habe einige User-defined Zellen eingefügt:
In User.Model steht die Formel:
=FIND(Prop.Model,Prop.Model.Format)
Sie ermittelt die Position des Auswahltextes aus der Liste, also bei CCD/U 41 A den Wert 1, bei CCD/U 61 A den Wert 12, bei CCD/U 81 A den Wert 23 usw.
Die Zelle User-Auswahl wandelt diese Liste in 0,1,2,3,4,5,6,7 um.
In die Zelle User.Werte habe ich Dummy-Werte eingetragen: die erste Liste lautet 1;2;3, die zweite 4;5;6, die dritte 7;8;9 usw. getrennt wurden sie durch ein „|“.
In der Zelle User-Liste (=INDEX(User.Auswahl,User.Werte,“|“)) ermittle ich die gewünschte Liste. Diese wird nun in die Zelle Prop.Air_Flow gezogen.
So etwas möchten Sie?
20160811Daten03

ShapeSeet – Dynamische Daten

Sehr geehrter Herr Dr. Martin,
 
ich habe mir gerade Ihr Buch „Visio 2010 Programmierung“ zugelegt.
 
Ich habe ein Shape erstellt (Klimaschrank), das in den Abmessungen für eine Reihe von Modellen gleich ist, sich aber in den technischen Details unterscheidet. Ich habe mir deshalb eine Reihe von Shape Daten erstellt. Nun möchte ich die Shape Daten selbst (Properties) ändern, wenn ich das Modell in der Auswahlliste das Modell auswähle (CCD/U 41 A;CCD/U 61 A;CCD/U 81 A;CCD/U 121 A;CCD/U 171 A;CCD/U 201 A;CCD/U 110 CW;CCD/U 200 CW).
Ich habe mir mal das Beispiel mit der Flügelmutter angeschaut und versucht, den Durchmesser zu setzen. Dazu habe ich die Eigenschaft auf „Visible“ gesetzt und unter „Actions“ einen neuen Eintrag „Actions.Row_5“ mit „=SETF(GetRef(User.Diameter),Prop.Diameter)“ erzeugt. Leider bleibt der voreingestellte Wert immer erhalten, egal welchen Durchmesser ich angebe.
Wie kann man die Werte automatisch verändern? Muss ich dazu ein VBA Makro schreiben?
####
Hallo Herr P.,
 
Sie haben einen Parameter in der Formel vergessen, bzw. falsch eingetragen: Sie muss korrekt heißen:
 
=SETF(GetRef(Prop.Diameter.Invisible),FALSE)
 
wenn Sie die Eigenschaft einblenden woollen (Invibible = FALSE)
 
Sie können auch auf die Funktion GetRef verzichten und schreiben:
 
=SETF(„Prop.Diameter.Invisible“,TRUE)
 
wenn Sie sie wieder ausblenden wollen.
Oder Sie packen beide Funktionen in eine Zelle (dynamisch: ein- und ausschalten).
 
Wenn Sie den „Umweg“ übe eine benutzerdefinierte Zelle gehen, dann lautet die Formel:
 
=SETF(GetRef(User.Diameter),0)
 
oder fürs Ausschalten (die Alternative):
 
=SETF(„User.Diameter“,1)
 
Dann verweisen Sie in der Zelle Prop.Diameter.Invisible auf:
 
=User.Diameter
20160810Schraube02 20160810Schraube01