Regarding this topic, i checked the forum very carefully and found there is one discussion quite similar with my question. There is one code in the discussion which the author implemented.
http://texgen.sourceforge.net/phpBB3/vi ... f=1&t=2468#
i tried to create a simple weave to verify the code, unfortunately there is nothing changed after i run the script.
Do you have some ideas?
Don't know why can not upload attachment!
simple weave:
# Script recorded by TexGen v3.12.0
weave = CTextileWeave3D(2, 2, 1, 0.2)
weave.SetYarnWidths(0.
weave.AddXLayers(0, 1)
weave.AddXLayers(1, 1)
weave.AddYLayers(0, 1)
weave.AddYLayers(1, 1)
weave.SwapPosition(0, 1, 0, 1)
weave.SwapPosition(1, 0, 0, 1)
weave.SwapPosition(1, 1, 0, 1)
weave.SetYarnHeights(0.1)
weave.SetXYarnWidths(0, 0.
weave.SetXYarnHeights(0, 0.15)
weave.SetXYarnSpacings(0, 1)
weave.SetXYarnWidths(1, 0.
weave.SetXYarnHeights(1, 0.1)
weave.SetXYarnSpacings(1, 1)
weave.SetYYarnWidths(0, 0.
weave.SetYYarnHeights(0, 0.1)
weave.SetYYarnSpacings(0, 1)
weave.SetYYarnWidths(1, 0.
weave.SetYYarnHeights(1, 0.1)
weave.SetYYarnSpacings(1, 1)
weave.AssignDefaultDomain(False, False)
textilename = AddTextile(weave)
code which used for modifying intersection:
interferenceCorrection = 0.010
distanceToSurface = FloatVector()
yarnIndices = IntVector()
interferingPoints = CMesh()
numInterferingPoints = weave.DetectInterference(distanceToSurface, yarnIndices, True, interferingPoints)
if numInterferingPoints == 0:
print("No interference detected")
else:
print(str(numInterferingPoints) + " inteference points detected: adjusting layer heights by: "+str(interferenceCorrection)+"...")
layerOffset = XYZ(0,0,0)
for i in range(weave.GetNumYarns()):
# Increment offset after looping through all yarns of one weave (layer)
if (i != 0) and (i % weave.GetNumYarns() == 0):
layerOffset.z += interferenceCorrection
weave.GetYarn(i).Translate(layerOffset)
numInterferingPoints = weave.DetectInterference(distanceToSurface, yarnIndices, True, interferingPoints)
print("After interference correction, " + str(numInterferingPoints) + " interference points remain")
Best regards!