Jump to content

Dominique Corpataux

ComputerWorks AG
  • Gesamte Inhalte

    90
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Dominique Corpataux hat zuletzt am 19. März 2020 gewonnen

Dominique Corpataux hat die beliebtesten Inhalte erstellt!

Reputation in der Community

32 Exzellent

7 Benutzer folgen diesem Benutzer

Über Dominique Corpataux

  • Rang
    Power-User

Persönliche Informationen

  • Anwendungsbereich
    Architektur
  • Land
    Schweiz
  • Ich bin
    Gewerblicher Anwender

Letzte Besucher des Profils

731 Profilaufrufe
  1. Hi Also das was im Screenshot gezeigt wird, wird vermutlich so nicht funktionieren. Aber ich denke mal, dass Dein Konkretes Beispiel sowieso anders schaut. Wie werden denn die Polygone aus dem Schichtkörper extrahiert? Die Koordinaten der Elemente in einem Schichtkörper basieren auf dem Koordinatensystem des Körpers. Wurde der Körper nach dem Erzeugen verschoben, dann sind die nicht mehr identisch mit der Originalposition. Bei Spiegelungen könnte es etwas zu komplex werden. Wenn man es mit rotieren und Spiegeln lösen kann, dann könnte man den Ansatz weiterverfolgen. Falls die Polygone gespiegelt sind, wird es vermutlich schwierig. Das Mirror-Node macht nicht in allen Fällen das, was man erwarten würde. Zum Mirror-Node, könntest Du vielleicht mal in diesen Thread schauen: https://forum.vectorworks.net/index.php?/topic/58080-mirror-node-huh/ Probier es mal mit get entity Matrix und Set Entity matrix. Oder die Objekte drehen und verschieben gemässe den Infos der Get Entity Matrix.
  2. Hallo Ich denke nicht, dass die Materialien von heute auf morgen die Klassenmaterialien ablösen. Wenn es um diesen konkreten Punkt mit der Visualisierung des Glases geht, könnte man die Fenster-Glas-Klasse "einsparen" indem man die Datenvisualisierung benutzt. Also Im Kriterium nach Material "Glas" suchen und dann die Textur ersetzen.
  3. Hallo Es gibt ein Script, welches Symbole in Gruppen umwandelt und dabei die Symbolfarbe (DWG Blockfarbe) auf diese Gruppe übertrage kann. Alternativ ein Script, welches die Klassenfarbe des Blockes auf die Objekte übertragen kann. Das Script ist hier verfügbar: https://forum.vectorworks.net/index.php?/topic/64582-symbol-to-group-keeping-colors/&tab=comments#comment-321259 Support, Fragen und Hilfe zu diesem Script gibt es im Forum oder direkt im Thread des obigen Links. Das Script löst nur das genannte Problem mit den Blöcken (Symbolen). Zur Kontrolle muss in der Infopalette nachsehen, was man überhaupt für ein Objekt im Plan vorliegen hat. Gruss Dominique
  4. Hallo Urs Die Export Funktion unterstützt grundsätzlich die Kantenreihenfolge, bzw. die Eckausbildung (Gehrung, Längs durchlaufend, quer durchlaufend). Beispielsweise geben wir Kantenstösse für andere Schweizer ERPs aus (Triviso, SwissSoft, AK-Soft) aus. Die Schnittstellendefinition zu BormBusiness ist jedoch schon etwas älter und die Kantenstösse werden gemäss Standard-Einstellung von BormBusiness ausgebildet/importiert, was in der Praxis insbesondere bei Dünnkanten (bis 2mm) in den meisten Betrieben den Anforderungen genügt. Ein genereller Modernisierungswunsch wurde vor ein paar Monaten bei den Verantwortlichen für diese Schnittstelle bereits deponiert.
  5. @Ernzerhof Hallo Denise Datei-Link ist korrigiert. Grüsse Dominique
  6. Der Inhalt eines Nodes das ich benutze um Dateien auszuwählen. Es tut vom Prinzip her etwas ähnliches, was Du haben willst: 1. Wird der Button "Pick File" gedrückt, dann kann man eine Datei auswählen. Das Script wird aber nicht weiter ausgeführt (blocked = True). Es wird aber der Pfad in ein Feld geschrieben. 2. Wenn man dann das Script ausführt (ohne Button) wird der Pfad aus dem Feld gelesen. Im Prinzip könnte man die Zeile mit vs.GetFile... auswechseln Durch ein Dialogfenster, in welchem man einen Wert einstellt, welcher dann in das Feld geschrieben wird und dann später wenn man das Script normal ausführt von dort gelesen wird. Das selbe Prinzip wie das Beispiel von Antonio. #DomC 2019 @Marionette.NodeDefinition class Params(metaclass = Marionette.OrderedClass): By = 'DomC';import datetime; now = datetime.datetime.now(); y80f5 = now.year;m80f5 = now.month; d80f5 = now.day; h180f5 = now.hour; mi180f5 = now.minute; s180f5 = now.second; ms180f5 = now.microsecond; h2 = now.hour-12 if now.hour >=13 else now.hour; VersionChange1 = str(y80f5)+' '+str(m80f5)+' '+str(d80f5); VersionChange2 = str(y80f5)+'-'+str(m80f5)+'-'+str(d80f5)+'-'+str(h2)+'-'+str(mi180f5); TextStatic = Marionette.OIPControl( By +' v'+VersionChange2, Marionette.WidgetType.TextStatic, "") #APPEARANCE #Name this = Marionette.Node( 'Pick File' ) this.SetDescription( 'Returns a File Path' ) #Input Ports #OIP Controls path = Marionette.OIPControl( 'FilePath', Marionette.WidgetType.Text, '') path.SetDescription('Write Path or click the Button below') Int = Marionette.OIPControl( 'Pick File', Marionette.WidgetType.Button, 'script', 'description') Int.SetDescription('Shows Criteria dialog') #Output Ports s_path = Marionette.PortOut('h') s_path.SetDescription('Return the path string for further operations') #BEHAVIOR def RunNode(self): #inputs path = self.Params.path.value #script #out self.Params.s_path.value = path def script(self): import os dir = os.path.dirname(vs.GetFPathName()) bool, path = (vs.GetFileN('Select File', dir, '')) self.Params.path.SetValue(path) #if bool: # self.Params.s_path.value = path #else: self.Params.s_path.blocked = True
  7. @Jacksen Hallo Jacksen. Die Lösung mit Bordmitteln ist nie falsch. Zum obigen Beispiel im US Forum muss man sagen, dass es eine korrigierte Fassung gibt, diese aber wohl erst jetzt hochgeladen wurde 🙂
  8. Hallo Manuel Du hast den Durchblick ... Das Beispiel ist schon etwas älter und hat für die 2019er Version ein kleines Update benötigt. Verfügbar hier. https://forum.vectorworks.net/index.php?/files/file/214-marionette-translate-character-to-geometry/ Normalerweise sind die Scripte gut Aufwärtskompatibel aber es gibt hier das Ausnahmeproblem mit "vs.GetTypeN()". Diese Funktion wurde (fälschlicherweise) in vielen Nodes verwendet (copy Paste) und war eigentlich schon vor drei Jahren "obsolet". CreateFontDict ist ein Nodes, welches mit Hilfe von Positionierungsrechtecken, den Inhalt eines Textes jeweils mit einem Objekt paaren kann. Dies Paarung wird mit einer Dictionary sequence ausgeben statt einer Liste. Das hat den Vorteil, dass man z.B. mit aufrufen des keys 'X' das Vectorwors Objekt 'Y' aufrufen kann.
  9. @Manuel Roth Mir gefällt Dein Beispiel und die Strategie, die Elemente auf diese Weise zusammenzubauen. Diese Vorgehen ist sehr effizient, weil die Komplexität der Objekte (Schraffur, Klasse, Geometry u.s.w.) nicht im Script erzeugt werden muss, sondern von einer "Vorgabe-Geometrie" übernommen und verändert wird. Ursprünglich kommt das unterschiedliche Verhalten vom Move Node. Dieses ist nicht ganz wasserdicht. Die Script Engine, verschiebt unterschiedliche Objekttypen und unterschiedlich ausgerichtete Objekte (Bildschirmebene, Konstruktionsebene, 3D) mit unterschiedlichen Befehlen vs.Move3DObj() und vs.HMove() Im Move-Node, gibt es eine Abfrage, wie ein Objekt verschoben werden soll, welche etwas Lückenhaft ist, wenn es um Gruppen, Text und Symbole geht. Ich habe das bereits beim Entwicklerteam deponiert. Um dieses Problem zu kompensieren, hast Du dann versucht, das Ganze mit der PlugIn Position zu verrechnen, was dann zusätzlich dazu führt, dass ein Objekt Nullpunktabhängig in der Gegend rumspringt. Nun gut, ich hoffe, diese Infos waren jetzt nicht allzu unverständlich. Jedenfalls kann man das ganze folgendermassen hinbekommen: 1. Ich benutze ein Node, welches explizit nur 2D Arbeitet, dafür alles verschiebt, was Du in Deinen Zeichnungen verwendest. Oder Du editierst folgende Zeile im Move Node: planar = Marionette.Is2DObject(i) in: planar = True Dazu muss die oberste Zeile (verlinkung auf Bibliothek) im Node gelöscht werden. Dann die Positionierungseschichte mit der PlugIn Position wieder rausnehmen: Danach schnurrt dein PlugIn wie ein Kätzchen Bauteile Script.mp4 Schönes Beispiel. Wäre doch schön, Du könntest dieses im Marionette Forum mit der Community teilen: https://forum.vectorworks.net/index.php?/files/ Bemerkungen: Ob das mit Namen gemacht werden soll, darüber kann man sicher noch diskutieren. Denkbar wären auch Symbole, Control.Geometrie, Klassennamen, Ebenennamen oder Feldbeschriftung. Feldbeschriftung wäre mein Favorit. Dabei werden die Objekte aufgrund ihrer Positionierung in einem beschrifteten Positionsrahmen eingelesen. Keine Namen wären nötig. Verwandtes Beispiel wäre dieses hier. Statt Schichten übereinander zu stapeln, werden hier Buchstaben, bzw. Möbel nebeneinander "gestapelt". D.h. Du würdes auf ähnliche Weise Deine Bestandteile in die Felder zeichnen und durch die Feldbeschriftung wäre das Teil identifiziert. Für Deinen Anwendungsbereich, müsstest Du zusätzlich noch eine zusätzliche übergeordnete Verschachtelung einbauen. https://forum.vectorworks.net/index.php?/topic/48611-vector-font-and-more/ Boden v2.vwx
  10. Hallo Ein Marionette-Beispiel für das Anlegen von Räumen aus einer Vectorworks Tabelle gibt es bereits: https://forum.vectorworks.net/index.php?/files/file/81-spacesfromlistvwx/ So wie es jetzt ist, macht es Quadratische Raumobjekte aus der Liste und platziert diese nebeneinander. Rechtecke machen, wäre im Prinzip noch viel einfacher gewesen. Import von csv (oder Text Tab) Dateien, welche man aus Excel Dateien abspeichern kann ist auch schon mit Marionette gelöst. Ohne lange sich mit Marionette auseinanderzusetzen wird das einfachste sein, die Vorlage zu verwenden, die Spalten von Excel in's VW mit copy/paste einzufügen (Achtung, quadratmeter Kommatrennzeichen sollten glaube ich punkte sein, wenn es nicht geht Komma probieren ansonsten in Excel runden auf ganze Quadratmeter, alles auf der Vorgabe machen, wo auch der Tabellenname stimmt). Dann werden die Räume generiert. Falls Du Keine Räume haben möchtest, die Räume auflösen in Polygone. Oder das Script verändern und den Raum durch ein Rechteck ersetzen (aber wie gesagt ... ohne sich damit auseinanderzusetzen einfach so verwenden wie es ist und dann in die Originalzeichnung kopieren) Fragen/Kommentare zum Script bitte direkt im US-Forum. Grüsse Dominique
  11. Hallo Bezüglich dieses Themas, habe ich mal ein Script im US-Forum geposted. Eine Methode, wie man hunderte von Bildern als Texturen ins Vectorworks reinladen kann. Nicht genau das was Du suchst, geht aber in diese Richtung und kann Dir vielleicht helfen. https://forum.vectorworks.net/index.php?/topic/46877-create-a-texture-with-color-shader-with-imported-image/&do=findComment&comment=239269 Da hat es auch ein Script, um die Materialien danach umzubenennen. Eingenschaften Ändern, wäre im Prinzip auch mit einem Script möglich. Bedienung: 1. Script kopieren und in ein Vectorscript anlegen und einfügen (Ressource-Manager, neues Script erstellen) 2. Oben im Script-Editor auf "Python" umstellen 3. Deine Bilder Kopieren (Backup erstellen davon) in einen Ordner kopieren 4. Achtung, Achtung, Achtung nicht einfach ausführen, zuerst alles lesen bis ganz unten! 5. Script ausführen und den Ordner mit den Bildern Doppelklicken 6. Menü Datei-Import- Import Arroway-Material Was tut das Script: Du kannst Damit einen Ordner auf Deiner Platte auswählen (unbedingt doppelklicken auf den Ordner und nicht einfach nur markieren sonst konvertiert man den übergeordneten Ordner). Das Script wandelt Dir alle Bilddateien so um, dass Du diese anschliessend mit dem Import Arroway-Material importieren kannst. Ich habe das Script mal für den eigenen Gebraucht gemacht. Es enthält keinerlei Sicherheitsmassnamen Wenn Du deine ganze MacintoshHD oder Deine Festplatte C damit bearbeitest, dann gute Nacht und es gibt dafür kein Rückgängig befehl Also wie immer: Keine Verantwortung für Fehlbedienungen oder Fehler dieses Scripts Grüsse Dominique Corpataux
  12. Dominique Corpataux

    wms Import

    Hallo Seit der Umstellung des US-Forums, sind leider nicht mehr alle Datei-Anhänge vorhanden. Das Beispiel mit Google-Maps, kann in folgendem Thread heruntergeladen werden. https://forum.vectorworks.net/index.php?/topic/43231-marionette-monday-webinar-questions/ Webinar_IV_Files.vwx auf der Ebene Import URL Image. Gruss Dominique
  13. Hallo Zwischenablage geht auf Mac und Windows. Im Angefügten Vectorworks Dokument, hat es ein angepasstes Cross-Platform-Script für Mac und Windows. Dieses schaut zuerst auf welchem Rechner es läuft und führt dann den korrekten Code aus. Gruss Dominique
  14. Hallo Du könntest das beiliegende Script benutzen. Script über Zubehörpalette erstellen, Python script auswählen, untenstehenden Code einfügen. Auf die schnelle rauskopiert aus dem Marionette Content. Zwischenablage funktioniert nur für Mac. Müsste für Windows noch angepasst werden. # Python Script import math def Magnitude(vec): x = vec[0] y = vec[1] z = vec[2] return math.sqrt( x*x + y*y + z*z ) def DistanceTo(pt1, pt2): return Magnitude((pt1[0] - pt2[0], pt1[1] - pt2[1], pt1[2] - pt2[2])) def GetPerim(poly): result = 0 len = vs.GetVertNum(poly) for i in range(1, len): temp = vs.GetPolyPt3D(poly, i) result += DistanceTo( temp, vs.GetPolyPt3D(poly, i - 1) ) if ( len > 1 and vs.IsPolyClosed(poly) ): result += DistanceTo( vs.GetPolyPt3D(poly, 0), vs.GetPolyPt3D(poly, len - 1) ) return result poly = vs.FSActLayer() per = GetPerim(poly) vs.Message('gemessene Länge : '+str(per)) import subprocess def write_to_clipboard(output): process = subprocess.Popen( 'pbcopy', env={'LANG': 'en_US.UTF-8'}, stdin=subprocess.PIPE) process.communicate(output.encode('utf-8')) write_to_clipboard(str(per)) Sorry, noch die Anleitung: 1. 3D Polygon zwischen den zwei Punkten zeichnen (Erster Punkt Klick, Zweiter Punkt Doppelklick) 2. Script Doppelklicken Kleines Movie im Anhang Vectorworks Datei angehängt mit einem Script, welches gleichermassen für Mac und Windows funktioniert. Distanz 3D.mp4.zip Messen in Zwischenablage.vwx.zip
  15. Hallo Hirnholz Die häufigsten, mir bekannten Problem sind: 1. Nicht mit einem Lokalen Admin eingeloggt. 2. Zu wenig Festplattenspeicher. Vor allem bei SSDs kann es schon vorkommen, dass die Platte voll ist. Vielleicht auch irgendwelche Pfad Probleme, zu den Temporären Dateien ... Gruss Dominique
×
×
  • Neu erstellen...