Jump to content

Dominique Corpataux

ComputerWorks AG
  • Gesamte Inhalte

    140
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    10

Dominique Corpataux hat zuletzt am 26. September gewonnen

Dominique Corpataux hat die beliebtesten Inhalte erstellt!

Reputation in der Community

59 Exzellent

8 Benutzer folgen diesem Benutzer

Über Dominique Corpataux

Persönliche Informationen

  • Anwendungsbereich
    Architektur
  • Land
    Schweiz
  • Ich bin
    Gewerblicher Anwender

Letzte Besucher des Profils

1.073 Profilaufrufe
  1. Hi Ist etwas unscharf auf dem Screenshot. Ich würde aber darauf tippen, dass das "Delete-Node" den string löscht und nicht die Datenbank. Beim item input des Filters, müsste das Objekt rein und nicht der Name.
  2. Äh ja, würde ich auch so sehen. Es wäre wohl das bessere Geschäft jetzt eine 3090 zu verkaufen statt zu kaufen 🙂 Die Blockchain-Währungsblase und der Virenschutz, haben die Kosten in die Höhe getrieben.
  3. Hi Für den Moment genügen beide Karten den Systemanforderungen und bewirken grundsätzlich ein schnelles Navigiere (zoom, pan) in 2D und 3D Plänen. Latenzzeiten beim wechseln von Ebenen oder Layouts u.s.w. sind weniger Grafikkartenabhängig als viel mehr CPU, Festplatten(speed)- und Arbeitsspeicher(Menge)-abhängig. Meistens wenn es stockt liegt es nicht an der Grafikkarte. Ausser man setzt auf eine Onboard-Lösung (welche wiederum am Systemspeicher nagt) oder eine Karte mit sehr alter Technologie. Für die Zukunft wird es Entwicklungen geben, die auch beim Rendering oder bei der OpenGL (bzw. Metal oder DirectX) vermehrt die Grafikkarte stärker ausreizen werden. Nehmen wir an, wir hätten z.B. Maxon Redshift als Renderoption, dann würde dieses mit den Grafikkartenkernen rendern. Soviel ich weiss mit OpenCL (AMD) und CUDA (NVIDIA). Wobei da vermutlich NVIDIA etwas die Nase vorne hat. Auf der anderen Seite braucht eine Applikation wie Redshift sehr viel Grafikkartenspeicher. Profitiert also von 16GB VRAM. Wobei man zu dem Preis dann schon wieder eine rtx 3090 mit 24GB VRAM bekommt. Also um zu zeichnen braucht man keine 24GB VRAM aber vielleicht um in Zukunft zu Rendern. Nehmen wir an, dass man mit dxr (Raytracing ab DirectX 12) darstellen könnte, dann ist im Moment NVIDIA (vermutlich Treibermässig) schneller als AMD (Wobei das eher im Moment bei Spielen ein Thema ist). Dem gegenübergestellt habe ich in Tests schon feststellen können, dass mit grossen Bildern im Plan AMD besser umgehen kann als NVIDIA. D.h. eine low End AMD 580 hat flüssiger zoomen können als eine NVIDIA 1080TI. Die Software ist mittlerweile in diesem Bereich so schnell, dass man mit den Hausmittelchen fast nichts mehr messen kann. Also letztendlich unentschieden. Wobei wenn das Geld vorhanden wäre, würde ich mir persönlich eine rtx 3090 anschaffen. Die hat sicher genügend Power für zwei PC Generationen. Oder man sagt man nimmt die zweitbeste Karte und kauft sich dafür früher eine neue oder investiert in mehr Arbeitsspeicher was aus der Praxis mehr Zeitersparnis bringt.
  4. Die Grundeinstellung muss Konstruktionsebene sein, nicht Bildschirmebene. Dann ist der Text mit dem vs.Move3D() verschiebbar. Du kannst den Text auch mit dem Script auf die Konstruktionsebene legen mit vs.SetPlanarRef(inObj, refID) x,y,z = (10,10,20) vs.MoveTo(x,y) vs.CreateText(str(x)+' '+str(y)+' '+str(z)) h = vs.LNewObj() vs.SetPlanarRef(h, -1) #nur nötig, wenn nicht auf KE ausgerichtet vs.Move3DObj(h, 0, 0, z)
  5. def RunNode(self): from collections import OrderedDict #inputs DialogName = self.Params.sDialog.value[0] title1 = self.Params.sTitle1.value[0] pop1 = self.Params.lPopup1.value width = self.Params.iWidth.value[0] numPopups = 1 EnterDialog = 12255 OKDialog = 12256 self.KompletteAuswahl = [] #script def Dialog_Handler(item, data): if item == EnterDialog: for i in range(len(pop1)): vs.AddChoice( self.dialog, 11, pop1[i], i+1 ) if item == OKDialog: for i in range(len(pop1)): temp_value = vs.GetSelectedChoiceInfo( self.dialog, 11, i) if temp_value[1] != '': self.KompletteAuswahl.append(temp_value[1]) def CreateMyDialog(): self.dialog = vs.CreateLayout( DialogName, 0, 'OK', 'Abbrechen' ) dialog = self.dialog vs.CreateStaticText(dialog, 1, title1, width) vs.CreateListBoxN( dialog, 11, width,10,8) vs.SetFirstLayoutItem( dialog, 1 ) vs.SetBelowItem( dialog, 1, 11, 0, 0 ) vs.SetBelowItem( dialog, 11, 2, 0, 0 ) vs.RunLayoutDialog(dialog, Dialog_Handler ) CreateMyDialog() #outputs ListWithoutDups = list(OrderedDict.fromkeys(self.KompletteAuswahl)) self.Params.sPopup1.value = ListWithoutDups
  6. line 49 fehlt der Doppelpunkt. Dann fehlt noch ExitDialog (das ließe sich mit AlrtDialog herausfinden) und AnzahlElemente welche len(pop1) sein wird. ChoiceInfo muss dann noch den Startwert i Enthalten siehe oben.
  7. Hallo Zurzeit leider keinen Zugriff auf VW. Ich denke, dass es dann laufen würde. Das verlinkte Beispiel macht was ähnliches und da kann man schon was ableiten aber man müsste es auch zuerst eingebaut bekommen.
  8. Hallo Dialogfenster sind ein eigenes Wissensgebiet. Also was in der Funktion/Methode "def Dialog_Handler" stattfindet, sind die Aktionen innerhalb des Dialogfensters. Dort kann man das Dialogfenster dynamisieren. Bzw. je nach Aktion im Dialog z.B. Checkboxen dimmen etc. Ich mache es jeweils so, dass ich in dieser Funktion ein vs.AlrtDialog(str([item,data])) platziere. Dann sehe ich, wenn ich im Dialog eine Aktion tätige, was diese Aktion für Daten ausspuckt und kann entsprechend debuggen. Das nur so mal als generelle Info, wie ich es mir selbst beigebracht habe. Vermutlich gibt es elegantere Varianten. Konkret könnte man dann sehen, dass z.B. vs.AlrtDialog(str(self.v1)) eine Sequenz aus einer Zahl und der Auswahl ausspuckt. Um das zweite Elemente aus dieser Sequenz zu bekommen, benutzt man [1] (Das erste Element wäre [0]). Dann hätte man den Wert für die Letzte Auswahl im Popup. Mit einer Liste. Also z.B. am Anfang eine Liste erzeugen mit z.B. self.KompletteAuswahl = [] und dann in der Funktion Dialog_Handler könnte man die Elemente sammeln mit "self.KompletteAuswahl.append(self.v1[1])" Also jedes angeklickte Element in der Liste würde gesammelt und dann ausgegeben. Im Prinzip könnte man die Auswahl auch mit einem statischen Text im Dialog. Die eigentliche Frage kann ich leider nicht beantworten. Da müsste man in der Script Referenz schauen, wie man die Auswahl mit shift oder cmd bekommt. Meistens kommt man nicht drum rum, die Funktionen durchzutesten und die Resultate z.B. mit "AlrtDialog siehe oben" anzeigen zu lassen. Ins Auge springt mir die Funktion "vs.GetSelectionRange(dialogID, controlID)". Aber ich sehe da schon das Problem, dass vielleicht mit Selection Range nicht das gemeint ist und mit der Ctrl-Auswahl ja keine Range entsteht. Es würde mich spontan auch interessieren, wie hier die Lösung aussieht. Aber das oben genannte mit der "Sammelliste" wäre vielleicht eine Zwischenlösung. Edit. Es sollte so gehen (nicht definitiv ausgetestet): In der Funktion Dialog_Handler ungefähr folgenden Code einbauen. Anzahl Elemente wäre mit vermutlich mit len(pop1) herauszufinden und EnterDialog einfach Testen mit vs.AlrtDialog(str([item,data])) if item == ExitDialog: for i in range(AnzahlElementeDerListe): temp_value = vs.GetSelectedChoiceInfo( self.dialog, 11, i)[1] if value != '' self.KompletteAuswahl.append(temp_value)
  9. Hallo Die anfängliche Version des Marionette-Wohnungsstempels griff mal Ebenenübergreifend auf die Räume zu, was aber oftmals falsche Flächen ausgewertet hat, weil irgendwo Kopien, Varianten der Grundrisse mit den duplizierten Räumen erstellt wurden. Deshalb die Einschränkung auf jeweils eine Ebene. Die des Stempels oder die Auswahl im Ebenen-Popup. Dass es tatsächliche Wohnungen über zwei Ebenen, bzw. mehrere Geschosse gibt, wurde dabei ignoriert. Es wurde in der Zwischenzeit ein Update des Wohungsstempels nachgereicht mit einer Zusätzlichen Checkbox 🙂 Die Info-Palette der Marionette Objekte ist nicht dynamisch. D.h. beim einschalten der neuen Checkbox, werden nicht automatisch die anderen Checkboxen mit der Ebenenauswahl gedimmt oder ähnliches. Also etwas unschön aber immer noch angemessen.
  10. Hallo Welche Version des Wohungsstempels wird denn genau eingesetzt. 1.2.5r1 wäre die neuste Version. Das Script muss aus dem Datenfeld mit den Quadratmetern eine Zahl generieren. Es gibt dafür eine Python Funktion float(x). Ist x z.B. 'Hallo', ' ', '6,9' oder '6.5m2' wird ein Fehler ausgeworfen. Die Funktion akzeptiert nur Punkt getrennte Zahlen ohne Buchstaben. Damit der Fehler nicht stattfindet bei eingeschalteten Einheiten oder Komma als Dezimaltrenner u.s.w. werden im Script Kommas in Punkte umgewandelt und Einheiten wegradiert, dann wird umgewandelt in eine Zahl, würde gar nichts kommen (keine Räume da, käme ohne weiteres Error-Handlich) ebenfalls diese Meldung. In der neusten Fassung des Stempels gibt es zudem einen extra ErrorHandler, der das Script nicht ausführt (keine Fehlermeldung) wenn keine Räume vorhanden sind oder das eingestellt Kriterium keine Räume findet. Gerade bei copy/paste in neue Dokumente kann das Passieren, da gleich nach dem einfügen ja die richtige Wohungsnummer noch nicht eingestellt werden konnte. Also meiner Meinung nach sind folgende Probleme vorhanden: 1. Es wird nicht 1.2.5r1 verwendet, da sollte diese Fehlermeldung gar nicht erscheinen (der Fehler findet statt, aber es kommt keine Meldung). 2. Das Kriterium der Ebene findet keine Räume 3. Oder die im Stempel eingestellte Wohnung existiert nicht 4. Es wurde ein Raum ohne Fläche ausgewählt (unwahrscheinlich, weil selbst Fläche 0 oder sogar eine negative Fläche würde funktionieren. 5. Die Wohungsnummer im Raum steht nicht im Feld "Raum ID" oder passt nicht zu der Einstellung beim Wohungsstempel Fehlermeldungen sind also in Ordnung aber weisen den Anwender natürlich unangenehmerweise auf ein Problem hin. Falls es keiner der Aufgeführten Punkte ist, dürftest Du das Dokument (bzw eine reduzierte Situation) gerne in der Gallerie anfügen. https://forum.vectorworks.net/index.php?/search/&q=wohnungsstempel&quick=1&type=downloads_file
  11. Hi Hatte das Problem auch schon. Bei mir war es der Bibliotheken Download der zur Zeit des Updateversuchs noch lief. Grüße Dominique
  12. Ist ein bisschen wie Kristallkugel-lesen ohne Script. Bau mal direkt in den Nodes, wo Du Fehler vermutest Meldungen ein. Also z.B. im Node eine Zeile wie: vs.AlrtDialog(str(text_pos)) (Aber nicht, wenn hundert Werte reinkommen, sonst gibt es 100mal Alert) Damit würdest Du sehen, was beim Node effektiv reinkommt. Könnte ja sein, dass das Print-Debug den Bug beinhaltet. Wenn Tatsächlich zwei Koordinaten reinkommen, dann weiter links im Netzwerk schauen, was dort reinkommt, bis der Fehler gefunden ist.
  13. Hallo Ich vermute mal, dass an den betreffenden Stellen zweimal die Schriftgrösse oder beim Text zwei Sequenzen statt einer Sequenz zugeführt werden. Dann würde sich auch der Einfügepunkt verdoppeln. Das Node absorbiert keine Listen, d.h. wenn an irgend einem Eingang zwei Werte kommen, wiederholt sich die Ausführung des Nodes. Edit: Sehe jetzt, Dein Node hat die Option ListAbsorb(). Dann kann es eigentlich nicht sein, dass der Koordinatenwert doppelt ist wegen dem Node. self.Params.text_pos.value[0] nimmt den ersten Koordinatenbpunkt, selbst wenn hundert punkte zugeführt werden, ebenso bei der Textgrösse. Wie kommst Denn darauf, dass der Koordinatenwert doppelt wäre, liegen zwei identische Texte übereinander? Besser wäre noch die Zeilen für die Position vom Easy-Text Node zu übernehmen: vs.MoveTo(pt) vs.CreateText(str(s)) Also zuerst Cursor bewegen an die Einfügeposition (vermutlich schneller) statt Text zu erzeugen und dann den Text zu verschieben.
  14. Moin Wenn die Mittelseite zurückgesetzt wird dann geht die Schublade mit. Es gibt dann das intelligente Verhalten, dass das Schubladendoppel dann bei den Böden und der Aussenseite "einschlagend" ausgeführt wird. Sofern ich mich erinnern kann, gab es da auch schon interne Diskussionen ob sich die Schublade mit der Mittelseite mitbewegen oder sich auf ein Referenzmass oder mit Priorität an einer Aussenseite orientieren soll im Moment hängt die Schublade glaube ich am hintersten Boden oder an der hintersten Seite, weiss es nicht auswendig. Machen kann man es im Moment, indem man die Luft der Schubladenfront um den Rücksprung der Mittelseite erhöht.
  15. Hallo Simon Es gibt die Einstellung "DOS-Kurnzamen" in der Export-Konfigurations-Einstellung. Damit sollte das Problem behoben werden können. Die Kurznamen sind standardmässig schon sehr praxistauglich, könnten aber ggf. selber angepasst werden. Gruss Dominique
×
×
  • Neu erstellen...