Forum: Poser Python Scripting


Subject: Moving morphs between different figures

Cage opened this issue on Dec 20, 2006 · 1232 posts


Cage posted Sun, 16 March 2008 at 3:43 PM

@Miss Nancy:

I think I've figured out the problem.  This is actually a compatibility issue with Poser 7, I think.  I had similar problems when I first tested TDMT on P7.  Poser 5 was giving a blank string ("") when asked for GeomFileName() for an actor with embedded geometry.  Poser 7 returns None for the same situation.  The way to counter this is to add conditions which handle None to the geomPath function.

If you're comfortable editing a copy of the TDMT.py, you could try replacing the existing geomPath function with the one below.  I'll see if I can put together a corrected version of the .py file for you, in the meantime.

    def geomPath(self):
        """
        Get the necessary actor and geometry file information, to construct the
        dataPath.
        """       
        self.verts1 = vertexPos(self.a1.Geometry())    #Fill the vertex lists (for octree preview)
        self.verts2 = vertexPos(self.a2.Geometry())    #(These are called by linecast())
        if not self.dataflag:
            self.gf1 = self.a1.GeomFileName()
            if self.geomVar1.get() == 1 or self.gf1 == "" or self.gf1 == None:
                self.gf1 = self.handleGeom(self.a1,self.gf1)    # Handle custom geometry options
            self.gf2 = self.a2.GeomFileName()
            if self.geomVar2.get() == 1 or self.gf2 == "" or self.gf2 == None:
                self.gf2 = self.handleGeom(self.a2,self.gf2)    # Handle custom geometry options
            if self.gf1 == "" or self.gf1 == None or self.gf2 == or self.gf2 == None"": return
            self.gf1 = os.path.splitext(os.path.basename(self.gf1))[0]
            self.gf2 = os.path.splitext(os.path.basename(self.gf2))[0]       
            self.dataPath = get_pathname(self.gf1,self.gf2,
                                         self.remove_fignum(self.f1,self.a1),
                                         self.remove_fignum(self.f2,self.a2))
        self.dataflag = 1
        self.showpath()

===========================sigline======================================================

Cage can be an opinionated jerk who posts without thinking.  He apologizes for this.  He's honestly not trying to be a turkeyhead.

Cage had some freebies, compatible with Poser 11 and below.  His Python scripts were saved at archive.org, along with the rest of the Morphography site, where they were hosted.