Das Wissen aller Anwender nutzen

Im Allplan Connect Forum tauschen sich Anwender aus, geben wertvolle Tipps oder beraten sich bei ganz konkreten Aufgabenstellungen − auch international.
Und damit wirklich keine Frage unbeantwortet bleibt, unterstützen die Mitarbeiter des Technischen Supports ebenfalls aktiv das Forum.

Es erwarten Sie:

  • Foren-Vielfalt aus CAD Architektur, CAD Ingenieurbau uvm.
  • Tipps von User für User
  • international: Deutsch, Englisch, Italienisch, Französisch und Tschechisch

Melden Sie sich jetzt an und diskutieren Sie mit!

Zur Registrierung

[Frage] [PythonParts] Interactor and On Preview Draw [Gelöst]

Schlagworte:
  • Pythonpart
  • Interactor
  • Preview

Hi,

On my Interactor PythonPart, I can create well my object but the preview doesn't work

Here my code :

...

    def on_preview_draw(self):
        """
        Handles the preview draw event
        """
        self.create_geometry(True)

...

    def process_mouse_msg(self, mouse_msg, pnt, msg_info):
        """
        Process the mouse message event

        Args:
            mouse_msg : the mouse message
            pnt       : the input point in view coordinates
            msg_info  : additional message info.

        Returns:
            True/False for success.
        """
        input_pnt = self.coord_input.GetInputPoint(mouse_msg, pnt, msg_info).GetPoint()

        if self.coord_input.IsMouseMove(mouse_msg):
            return True

        self.selected_pnts.append(input_pnt)

        if len(self.selected_pnts) == 1:
            self.create_geometry(False)
            self.reset_pnts()

        return True


    def create_geometry(self, is_preview):
        """
        Draw the preview

        Args:
            is_preview : True/False if preview mode.
        """
        self.axis = Geometry.AxisPlacement3D(Geometry.Point3D(),
                                             Geometry.Vector3D(1, 0, 0),
                                             Geometry.Vector3D(0, 0, 1)
                                             )
        self.placement_mat.SetTranslation(Geometry.Vector3D(self.selected_pnts[0]))

        self.geo = Geometry.BRep3D.CreateCuboid(self.axis, 1000, 1000, 1000)
        self.model_ele_list.append(BasisElements.ModelElement3D(self.com_prop, self.geo))

        if is_preview:
            BaseElements.DrawElementPreview(self.coord_input.GetInputViewDocument(),
                                            self.placement_mat,
                                            self.model_ele_list,
                                            False,
                                            None
                                            )

        else:
            self.create_pythonpart()

Where am I wrong ?

Best regards

Anhänge (2)

Typ: image/jpeg
5-mal heruntergeladen
Größe: 72,26 KiB
Typ: image/jpeg
7-mal heruntergeladen
Größe: 119,94 KiB

Lösung anzeigen Lösung verbergen

Hi,

to get the preview during the mouse move, you need to add

self.create_geometry(True)

before the

if self.coord_input.IsMouseMove(mouse_msg):

line.

The "on_preview_draw" is called outside from the mouse move, e.g. if you do some input in coordinate input toolbar.

Best regards
Horst

Hi,

to get the preview during the mouse move, you need to add

self.create_geometry(True)

before the

if self.coord_input.IsMouseMove(mouse_msg):

line.

The "on_preview_draw" is called outside from the mouse move, e.g. if you do some input in coordinate input toolbar.

Best regards
Horst