<?xml version="1.0"?>
<rss version="2.0"><channel><title>PCM Latest Topics</title><link>https://qualityforum.zeiss.com/forum/36-pcm/</link><description>PCM Latest Topics</description><language>en</language><item><title>loadCADFile() not working</title><link>https://qualityforum.zeiss.com/topic/26809-loadcadfile-not-working/</link><description><![CDATA[
<p>
	I took out the actual Part Numbers to avoid leaking any sensitive data. 
</p>

<p>
	The PCM File runs fine except for the loadCADFile() function. when trying to compute it on its own it returns 0 shown in the attached picture.
</p>

<p>
	 
</p>

<p>
	Any help would be greatly appreciated.<br>
	<br>
	Mike
</p>

<p>
	 
</p>

<p>
	// IGVAPCM.txt<br>
	//variable named 'paramFile' is equal to the actual .para file name<br>
	// Then 'fileExists' checks if the .para file is in the program's directory then reads(readPCMFile()) it if its there.
</p>

<p>
	paramFile = "PARAMETER.para"<br>
	if fileExists(paramFile)<br>
	    readPCMFile(paramFile)
</p>

<p>
	else // If file isnt there, this writes the file to the programs directory<br>
	    addToFile("PARAMETER.para","RH = getRecordHead("u_field1")") // part number header<br>
	    addToFile("PARAMETER.para","ORH = getRecordHead("planid")") // plan/program id header<br>
	    addToFile("PARAMETER.para","DWGREV = getRecordHead("u_field2")") // drawing revision header<br>
	    addToFile("PARAMETER.para","MNAME  = getRecordHead("operid")") // machine/operator name<br>
	    addToFile("PARAMETER.para","MAT = getRecordHead("u_field4")") // takes into account the material being used<br>
	endif
</p>

<p>
	// Main selection / confirmation loop starts here.<br>
	// The repeat...until loop will keep asking until exitLoop becomes true.<br>
	repeat
</p>

<p>
	        PART = inquireList("Select the correct Program Number","ZA3657","ZA3658")
</p>

<p>
	       validSelection = false // reset the flag for this loop iteration<br>
	    <br>
	    fileExists("ZA3657CAD.sat")<br>
	    fileExists("ZA3658CAD.sat")<br>
	       clearCAD()<br>
	       setCoordSysVisible(true)<br>
	    // --- PART-specific cases ---
</p>

<p>
	    if PART == "ZA3657"<br>
	       loadCADFile("ZA3657CAD.sat")    <br>
	        setRecordHead("planid",  "ZA3657_PARTNO_002_OP40")<br>
	        setRecordHead("u_field9", "ZA3657_PARTNO_002_OP40")<br>
	        setRunID("ZA3657") // runs the named mini-plan<br>
	       validSelection = true<br>
	    endif<br>
	  if PART == "ZA3658"<br>
	       loadCADFile("ZA3658CAD.sat")<br>
	        setRecordHead("planid",  "ZA3658_PARTNO_002_OP40")<br>
	        setRecordHead("u_field9", "ZA3658_PARTNO_002_OP40")<br>
	        setRunID("ZA3658") // runs the named mini-plan<br>
	       validSelection = true<br>
	    endif<br>
	    <br>
	    wait(10)<br>
	    redrawCAD()<br>
	    setFit()
</p>

<p>
	    // If no valid PART matched (user canceled or selected an unexpected value), show a message<br>
	    if validSelection == false<br>
	        message("No valid selection. Please select a part or check automation headers.")<br>
	       endInspection()<br>
	    else<br>
	        // Refresh header variables so the next steps use what we just set<br>
	        RH     = getRecordHead("u_field1")     // part number we set above<br>
	        ORH    = getRecordHead("planid")      // program/plan id we set above<br>
	        DWGREV = getRecordHead("u_field2")     // drawing / revision read back<br>
	        MAT = getRecordHead("u_field4") // FIX: ensure the header key is a string<br>
	       <br>
	            // Ask the operator to confirm the displayed metadata before starting<br>
	            exitLoop = confirm("ARE THESE VALUES CORRECT?", cr(),"PART NUMBER: ", RH, cr(),"PROGRAM NUMBER: ", ORH, cr(),"REVISION: ", DWGREV)<br>
	            // confirm returns true if operator clicks Yes/OK
</p>

<p>
	    endif<br>
	until exitLoop == true
</p>

<p><a href="https://qualityforum.zeiss.com/uploads/monthly_2026_06/Screenshot2026-06-11093008.png.e471347ae227c32100f35c6775b663c6.png" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="15063" src="https://qualityforum.zeiss.com/applications/core/interface/js/spacer.png" data-src="https://qualityforum.zeiss.com/uploads/monthly_2026_06/Screenshot2026-06-11093008.png.e471347ae227c32100f35c6775b663c6.png" data-ratio="47.42" width="660" class="ipsImage ipsImage_thumbnailed" alt="Screenshot 2026-06-11 093008.png"></a></p>
]]></description><guid isPermaLink="false">26809</guid><pubDate>Thu, 11 Jun 2026 13:35:42 +0000</pubDate></item><item><title>Strange behaviour of positionCMM()</title><link>https://qualityforum.zeiss.com/topic/24675-strange-behaviour-of-positioncmm/</link><description><![CDATA[
<p>
	Hey guys,
</p>

<p>
	When I use <code>positionCMM</code> together with <code>getPositionCMM()</code>, for example:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">positionCMM(getPositionCMM().x, getPositionCMM().y, -5)</span></pre>

<p>
	I’m running into a really strange bug. Instead of just moving up along the Z-axis, the machine starts flying all over the place.
</p>

<p>
	This only happens right after starting the program, when the first of those commands is executed.<br>
	If it somehow doesn’t crash and the program keeps running, the next time I call this function it behaves as expected and just goes up. This is happening in simulation and live on the machine.
</p>

<p>
	I’ve attached a picture showing what happens. The machine is only supposed to move upward.
</p>

<p>
	Is there an alternative PCM method to move the machine along just one axis?
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://qualityforum.zeiss.com/uploads/monthly_2025_10/image.png.fd9a32b5c54af8621d8d091f36ea965f.png" data-fileid="10823" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="10823" data-ratio="54.35" width="999" alt="image.thumb.png.1b4145c77a13c16ade689121e52eea69.png" data-src="https://qualityforum.zeiss.com/uploads/monthly_2025_10/image.thumb.png.1b4145c77a13c16ade689121e52eea69.png" src="https://qualityforum.zeiss.com/applications/core/interface/js/spacer.png"></a>
</p>

]]></description><guid isPermaLink="false">24675</guid><pubDate>Tue, 07 Oct 2025 05:45:19 +0000</pubDate></item><item><title>Miniplan to Determine Piweb Reports</title><link>https://qualityforum.zeiss.com/topic/26784-miniplan-to-determine-piweb-reports/</link><description><![CDATA[
<p>
	I have a program that has multiple mini plans. For one specific miniplan, I would like to include a process protocol in addition to the standard protocol. For all other mini plans, just the standard protocol.
</p>

<p>
	 
</p>

<p>
	Is this possible?
</p>

]]></description><guid isPermaLink="false">26784</guid><pubDate>Fri, 05 Jun 2026 13:26:23 +0000</pubDate></item><item><title><![CDATA[New GD&T Extended Protocol Coordinates]]></title><link>https://qualityforum.zeiss.com/topic/26770-new-gdt-extended-protocol-coordinates/</link><description><![CDATA[
<p>
	Hello, all, 
</p>

<p>
	 
</p>

<p>
	<div class="ipsMessage ipsMessage_general nehidecontent">
<p>
	Please sign in to view this username.
</p>
</div> was so kind to help me with the original formulas for pulling the actual .X/.Y from the Position Characteristic using the new GD&amp;T engine. 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">GDTPOS=getActual("GDT Position1").extendedProtocol.actualCoord.asArray
GDTVAL=getParameterNamed(GDTPOS).first.asString
GDTX=strElement(1,"@",GDTVAL)
GDTY=strElement(2,"@",GDTVAL)
message("X = "+GDTX+"  Y ="+GDTY)</span></pre>

<p>
	I haven't used it much, but I have started to, and I'm running into some challenges that while I'm able to overcome it, man does my code get super long and complicated now. 
</p>

<p>
	The challenge comes from when the Characteristic is measuring a Cylinder. A Cylinder has two points for evaluation (top and bottom). The StandardProtocol only shows the additional report for the worst case, but the formula above pulls both which leads to a challenge - how do you find the worst case? Well, the only way that I could figure it out is to essentially calculate the Position for both end-points, and then use an if statement to find which one is the worst. 
</p>

<p>
	There were also some silly quirks with how the data is presented for the nominal coordinates vs the actual coordinates. 
</p>

<p>
	Either way, would someone take a look at this code, and see what I could have done to improve it?
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">//Nominal Defition Position #32-1
GDTPOS32_1_Nom=getActual("#32-1").extendedProtocol.nominalCoord.asArray
GDTVAL32_1_Nom=getParameterNamed(GDTPOS32_1_Nom).asString
GDTX32_1_Nom=strElement(1," ",GDTVAL32_1_Nom)
GDTX32_1_Nom=mid(GDTX32_1_Nom,3)
GDTX32_1_Nom1=abs(val(GDTX32_1_Nom)/25.4)
GDTY32_1_Nom=strElement(2," ",GDTVAL32_1_Nom)
GDTY32_1_Nom1=abs(val(GDTY32_1_Nom)/25.4)

//Actual Defition Position #32-1
GDTPOS32_1_Act=getActual("#32-1").extendedProtocol.actualCoord.asArray
GDTVAL32_1_Act1=getParameterNamed(GDTPOS32_1_Act).first.asString
GDTVAL32_1_Act2=getParameterNamed(GDTPOS32_1_Act).second.asString
GDTX32_1_Act1=strElement(1,"@",GDTVAL32_1_Act1)
GDTX32_1_Act1_1=abs(val(GDTX32_1_Act1)/25.4)
GDTX32_1_Act2=strElement(1,"@",GDTVAL32_1_Act2)
GDTX32_1_Act2_1=abs(val(GDTX32_1_Act2)/25.4)
GDTY32_1_Act1=strElement(2,"@",GDTVAL32_1_Act1)
GDTY32_1_Act1_1=abs(val(GDTY32_1_Act1)/25.4)
GDTY32_1_Act2=strElement(2,"@",GDTVAL32_1_Act2)
GDTY32_1_Act2_1=abs(val(GDTY32_1_Act2)/25.4)

//Deviation Defition Position #32-1
GDTX32_1_Dev1_1=GDTX32_1_Act1_1 - GDTX32_1_Nom1
GDTX32_1_Dev2_1=GDTX32_1_Act2_1 - GDTX32_1_Nom1
GDTY32_1_Dev1_1=GDTY32_1_Act1_1 - GDTY32_1_Nom1
GDTY32_1_Dev2_1=GDTY32_1_Act2_1 - GDTY32_1_Nom1

//Position Defition Position #32-1
GDTX32_1_Pos1=(2*(sqrt((squared(GDTX32_1_Dev1_1))+(squared(GDTY32_1_Dev1_1)))))
GDTX32_1_Pos2=(2*(sqrt((squared(GDTX32_1_Dev2_1))+(squared(GDTY32_1_Dev2_1)))))

//Comparison Defition Position #32-1
if (GDTX32_1_Pos1 &gt; GDTX32_1_Pos2)
	GDTX32_1=GDTX32_1_Act1_1
	GDTY32_1=GDTY32_1_Act1_1
else
	GDTX32_1=GDTX32_1_Act2_1
	GDTY32_1=GDTY32_1_Act2_1
endif</span></pre>

<p>
	 
</p>

]]></description><guid isPermaLink="false">26770</guid><pubDate>Wed, 03 Jun 2026 20:02:47 +0000</pubDate></item><item><title>Geometrieelemente im CAD Fenster anzeigen</title><link>https://qualityforum.zeiss.com/topic/26764-geometrieelemente-im-cad-fenster-anzeigen/</link><description><![CDATA[
<p>
	Hallo zusammen,
</p>

<p>
	gibt es mit PCM die Möglichkeit nach dem leeren des CAD Fensters mittels clearCAD() die Geometrieelemente einzublenden? <br>
	Quasi die Funktion des Buttons:"Zeige alle Geometrieelemente im CAD"
</p>

<table>
	<tbody>
		<tr>
			<td colspan="1" rowspan="1">
				 
			</td>
			<td colspan="2" rowspan="1">
				<p>
					 
				</p>
			</td>
		</tr>
	</tbody>
</table>

]]></description><guid isPermaLink="false">26764</guid><pubDate>Wed, 03 Jun 2026 09:33:03 +0000</pubDate></item><item><title>plugin_preCharacteristic_pcm.txt</title><link>https://qualityforum.zeiss.com/topic/26750-plugin_precharacteristic_pcmtxt/</link><description><![CDATA[
<p>
	Having trouble using this file.. calypso is not reading it on the first run of the program.  It only starts reading it after a second run or re-crunch... ie if i run the part.. sn1, it won't read the file, but if i run sn2 or re-crunch sn1, then it reads it. 
</p>

]]></description><guid isPermaLink="false">26750</guid><pubDate>Mon, 01 Jun 2026 13:33:56 +0000</pubDate></item><item><title>Protokollkopf bef&#xFC;llen mit .dfd-Datei</title><link>https://qualityforum.zeiss.com/topic/26684-protokollkopf-bef%C3%BCllen-mit-dfd-datei/</link><description><![CDATA[
<p>
	Hallo zusammen
</p>

<p>
	hat schon mal jemand einen PCM Befehl geschrieben, bei dem eine .DFD Datei ausgelesen wird und die Inhalte für die Protokollkopfbefüllung genutzt wurden.
</p>

<p>
	Am besten wäre noch wenn vor dem Start des Messprogramm die Daten angezeigt werden würden ob sie richtig sind.
</p>

]]></description><guid isPermaLink="false">26684</guid><pubDate>Fri, 22 May 2026 07:42:33 +0000</pubDate></item><item><title>While running a program, can you run a separate program at the beginning?</title><link>https://qualityforum.zeiss.com/topic/26560-while-running-a-program-can-you-run-a-separate-program-at-the-beginning/</link><description><![CDATA[
<p>
	I have a program that runs in AutoRun on a pallet, and I'd like to run a separate program at the beginning using something like a batch file (which I know very little about).  The reason why, is I'd like to check a centrally located artifact for probe breakage (0.3mm).  If I were to just put the check at the beginning of the program, I believe I would need an artifact at each station of the pallet.  My thought is if I have a separate program that only references the pallet alignment, then I should be able to just have one artifact at a fixed location.  I could be way off on this approach, but it would still be nice to know if this is possible for other potential applications.  Thanks in advance!
</p>

]]></description><guid isPermaLink="false">26560</guid><pubDate>Thu, 07 May 2026 14:04:00 +0000</pubDate></item><item><title>exportPoints()</title><link>https://qualityforum.zeiss.com/topic/7362-exportpoints/</link><description>
Any way to format the Export Points dialog box with PCM? I know the two places to do it manually, but trying do do it with a PCM file to automate newer programs and make it easier.
</description><guid isPermaLink="false">7362</guid><pubDate>Mon, 28 Aug 2023 13:14:30 +0000</pubDate></item><item><title>.printStringwithoutExponentF</title><link>https://qualityforum.zeiss.com/topic/26512-printstringwithoutexponentf/</link><description><![CDATA[
<p>
	Has anyone ever used the title name's extension? I found it in the PCM cookbook. It doesn't seem to accomplish what it says it does, or anything for that matter. But I'm also a novice, and not sure if I'm applying it right. every attempt I've made, the "d" is still there.
</p>

<p>
	 
</p>

<p>
	Not a big deal at all, mostly just curious if I'm too stupid to apply it, or if it just doesn't work.
</p>

<p>
	 
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="14430" data-ratio="4.57" width="350" alt="image.png.7de2c186b0581a4862525fcfda7dbc8e.png" data-src="https://qualityforum.zeiss.com/uploads/monthly_2026_05/image.png.7de2c186b0581a4862525fcfda7dbc8e.png" src="https://qualityforum.zeiss.com/applications/core/interface/js/spacer.png">
</p>

]]></description><guid isPermaLink="false">26512</guid><pubDate>Fri, 01 May 2026 15:20:00 +0000</pubDate></item><item><title>outputMultiQdas</title><link>https://qualityforum.zeiss.com/topic/26388-outputmultiqdas/</link><description><![CDATA[
<p>
	Hallo,
</p>

<p>
	gibt es zu den PCM Befehl "outputMultiQdas" eine Dokumentation?
</p>

<p>
	Gruß,
</p>

<p>
	 
</p>

<p>
	Matthias
</p>

]]></description><guid isPermaLink="false">26388</guid><pubDate>Thu, 16 Apr 2026 13:03:14 +0000</pubDate></item><item><title>PCM License question</title><link>https://qualityforum.zeiss.com/topic/26372-pcm-license-question/</link><description><![CDATA[
<p>
	Hello everyone, just a quick question. If i´m buying one PMC License for Programming, are all other Zeiss Machines cabable of running those programs?
</p>

<p>
	Thanks in advance  
</p>

]]></description><guid isPermaLink="false">26372</guid><pubDate>Tue, 14 Apr 2026 15:50:49 +0000</pubDate></item><item><title>Warning mechanism for out of tolerance</title><link>https://qualityforum.zeiss.com/topic/26308-warning-mechanism-for-out-of-tolerance/</link><description><![CDATA[
<pre dir="ltr" style="text-align:left;"><span lang="en" xml:lang="en">Hello experts.
I am using calypso 7.4 version but I do not have a PCM license.
I would like to see a warning on the screen for a characteristic that is out of tolerance. Could there be a solution to this situation other than PCM?
I tried the Message option in the characteristic editor menu, but the system does not work.</span>I searched in the forum. but I couldn't find it. I'm not sure I brought this up to the right group. I'm sorry about that.</pre>

]]></description><guid isPermaLink="false">26308</guid><pubDate>Tue, 07 Apr 2026 08:00:04 +0000</pubDate></item><item><title>Attribute for actual element or characteristic?</title><link>https://qualityforum.zeiss.com/topic/6070-attribute-for-actual-element-or-characteristic/</link><description><![CDATA[
I tried to search the forum and Knowledge Base to avoid asking something that's already been answered, but no luck. In the realm of PCM, is there an attribute code that would allow us to determine the actual element selected from the list of elements in a <br>
Size/More/Minimum Result or Maximum Result characteristic? The name of the actual characteristic selected is what we're trying to add to a text-based summary report. Any help would be greatly appreciated!
]]></description><guid isPermaLink="false">6070</guid><pubDate>Wed, 06 Mar 2024 19:09:55 +0000</pubDate></item><item><title>Data Validation for Report Header Parameters</title><link>https://qualityforum.zeiss.com/topic/26252-data-validation-for-report-header-parameters/</link><description><![CDATA[
<p>
	I am working in Calypso 2025. I have a variable I created called u_Work_Order. I have enabled this parameter under Run and Measurement for my report header. I have also enabled <strong>Force Input at Start. </strong>A pop-up box appears right after the user hits run that asks them to enter in the WO. I would like to validate that the WO they entered is exactly 10 characters. 
</p>

<p>
	I have been told I need to use PCM for this. I have tried creating my PCM program two different ways: first is by placing the code in a .txt file and then placing it in the root of the measurement plan program. I have also tried placing the code in the pre-settings with a global scope. 
</p>

<p>
	I have tried every possible variation of code. Below are some I have tried. I always get an error like u_Work_Order is not defined or Temp_Variable is not defined. 
</p>

<p>
	 
</p>

<pre style="background-color:#f0f2f5;color:#0a0a0a;font-size:14px;"><code><span>u_wo_number = ""
repeat
  u_wo_number = inquireText("Please enter 10-digit WO Number")
  if len(u_wo_number) != 10 then
    message("Error: Must be 10 characters. You entered: ", len(u_wo_number))
  endif
until len(u_wo_number) == 10</span></code></pre>

<p>
	 
</p>

<p>
	 
</p>

<pre style="background-color:#f0f2f5;color:#0a0a0a;font-size:14px;"><code><span>u_wo_number = ""
while len(u_wo_number) != 10 do
  u_wo_number = inquire( "Please enter 10-digit WO Number" )
  if len(u_wo_number) != 10 then
    display( "Error: Must be 10 characters. You entered: ", len(u_wo_number) )
  endif
endwhile</span></code></pre>

<p>
	 
</p>

<p>
	 
</p>

<pre style="background-color:#f0f2f5;color:#0a0a0a;font-size:14px;"><code><span>u_wo_number = ""
while len(u_wo_number) != 10 do
  u_wo_number = inquireText("Please enter the 10-digit WO Number:")
  
  if len(u_wo_number) != 10 then
    message("Error: The WO number must be exactly 10 characters. You entered ", len(u_wo_number))
  endif
endwhile

message("WO ", U_wo_number, " accepted. Starting measurement.")</span></code></pre>

]]></description><guid isPermaLink="false">26252</guid><pubDate>Mon, 30 Mar 2026 19:56:24 +0000</pubDate></item><item><title>How to get X Y Z values from probe calibration</title><link>https://qualityforum.zeiss.com/topic/25755-how-to-get-x-y-z-values-from-probe-calibration/</link><description><![CDATA[
<p>
	Hi All,
</p>

<p>
	I would like to get the XYZ values to be saved in a characteristics.  But unfortunately, I cannot find it on the getProbe() instances.
</p>

<p>
	Is there any way this can be extracted from the probe data?
</p>

<p>
	Thanks in advance.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://qualityforum.zeiss.com/uploads/monthly_2026_02/image.jpeg.e1ff4ccc47c97d9e8e18ed070ae547d1.jpeg" data-fileid="12837" data-fileext="jpeg" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="12837" data-ratio="136.61" width="549" alt="image.thumb.jpeg.65850863fac0edbcc42a2617b1e6046e.jpeg" data-src="https://qualityforum.zeiss.com/uploads/monthly_2026_02/image.thumb.jpeg.65850863fac0edbcc42a2617b1e6046e.jpeg" src="https://qualityforum.zeiss.com/applications/core/interface/js/spacer.png"></a>
</p>

]]></description><guid isPermaLink="false">25755</guid><pubDate>Wed, 04 Feb 2026 18:48:52 +0000</pubDate></item><item><title>PCM command to rotate RDS-CAA</title><link>https://qualityforum.zeiss.com/topic/26223-pcm-command-to-rotate-rds-caa/</link><description><![CDATA[
<p>
	Is there a command to rotate an RDS with CAA to specific A/B angles?
</p>

]]></description><guid isPermaLink="false">26223</guid><pubDate>Wed, 25 Mar 2026 11:55:19 +0000</pubDate></item><item><title>getParameterNamed() only working for integers?</title><link>https://qualityforum.zeiss.com/topic/26075-getparameternamed-only-working-for-integers/</link><description><![CDATA[
<p>
	Hi, i have a .txt that im reading with readListFile()
</p>

<p>
	This is what it contains:<br>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="13595" data-ratio="55.46" width="238" alt="image.png.0d6bc06f6c5f9a2f5946f2b0facb93c9.png" data-src="https://qualityforum.zeiss.com/uploads/monthly_2026_03/image.png.0d6bc06f6c5f9a2f5946f2b0facb93c9.png" src="https://qualityforum.zeiss.com/applications/core/interface/js/spacer.png">
</p>

<p>
	With this code:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">offtsetCoordinates = readListFile(offsetFile)
ballFinderOffsetX = (val(getParameterNamed(offtsetCoordinates,1))/1000)
ballFinderOffsetY = (val(getParameterNamed(offtsetCoordinates,2))/1000)
ballFinderOffsetZ = (val(getParameterNamed(offtsetCoordinates,3))/1000)
coordsys = getParameterNamed(offtsetCoordinates,4)</span></pre>

<p>
	I get the two "0" values correctly because i guess they are integers and the rest is just "".
</p>

<p>
	I could make the file comma seperated and then use 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">offSetStuff=offsetFile.asFilename.contentsOfEntireFile
xOffset = val(strElement(1,",",offSetStuff)))
yOffset = val(strElement(2,",",offSetStuff)))
zOffset = val(strElement(3,",",offSetStuff)))
coordSys = val(strElement(4,",",offSetStuff)))</span></pre>

<p>
	But i dont want that tbh. 
</p>

<p>
	 
</p>

<p>
	Is there a way to use getParamteterNamed() for that?
</p>

]]></description><guid isPermaLink="false">26075</guid><pubDate>Tue, 10 Mar 2026 13:35:13 +0000</pubDate></item><item><title>Creating a Passed/Failed reporting folders</title><link>https://qualityforum.zeiss.com/topic/26059-creating-a-passedfailed-reporting-folders/</link><description><![CDATA[
<p>
	Hello everyone,
</p>

<p>
	Im trying to create a system where reports will be sorted into Passed(no OOT measurement) and Failed( 1 or more OOT measurement). This then will dictate where the report will be save into 2 separate folders.
</p>

<p>
	Based on what I research online, it seems doable. I think it might require PCM (I am planning to purchase) and maybe Piweb enterprise. The goal is to be able to sort through the data quickly or even import it directly into a report.
</p>

<p>
	If anyone have an idea please help me out.
</p>

<p>
	Thank you! 
</p>

]]></description><guid isPermaLink="false">26059</guid><pubDate>Fri, 06 Mar 2026 23:16:50 +0000</pubDate></item><item><title>Temperature Compensation</title><link>https://qualityforum.zeiss.com/topic/25971-temperature-compensation/</link><description><![CDATA[
<p>
	I'm looking for access to be able to set parameters for Temperature Compensation. I see that I can place parameters on which sensors to use and the coefficient, but I'd ideally like to be able to either turn on/off compensation via PCM, and/or set a part temperature via PCM. 
</p>

]]></description><guid isPermaLink="false">25971</guid><pubDate>Fri, 27 Feb 2026 05:51:49 +0000</pubDate></item><item><title>PCM script on how to palletize with multiple barcode scan</title><link>https://qualityforum.zeiss.com/topic/26051-pcm-script-on-how-to-palletize-with-multiple-barcode-scan/</link><description><![CDATA[
<p>
	<span lang="en-us" xml:lang="en-us">First off, I am self-learning pcm along the way.</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">I have a full program that you can select to check each process operations up to full customer print by using setRunID().<span>  </span>The first inspector interaction is the selection of operation and then reason for inspection from the dropdown lists. The next Inspector interaction is scanning the barcode once, all information like machine no, fixture no, sequence no. etc, were extracted from the barcode and were used in the program. This program runs with no issues.</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">Help is badly needed with the script on how to perform the task below, paging pcm guru’s here, please and thank you.</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">I need to check 2 workpieces in one run. Palletize – 2 pallet location, which I am already familiar with. The issue which I cannot get around my head is… I need to scan the two (2) workpieces at most in a single program run. How to get the scanned barcodes assigned to respective pallet locations? <span> </span>And what if only one workpiece needs to be checked? The barcode contains the machine and fixture numbers.</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">If 2 pallet locations were used, it would need to be scanned 2 times, if only one pallet location is used, only one scan is needed. That means the number of pallet location activated determines the number of scans. </span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">I am thinking that the barcodes needed to be saved somewhere then read and used in the program, then will delete the barcode data/file when the program ends to have a empty data/file for the next run. I am not familiar with how to execute this.</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">Any workflow/pcm codes suggestions for this to work is highly appreciated.</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">The idea is, the inspector will always put fixture 1 in pallet location 1 and pallet location 2 for fixture 2 regardless of machine number.</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">Ex.</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">Machine A – Fixture 1<span>   </span>- assigned to pallet location 1</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">Machine A – Fixture 2<span>   </span>- assigned to pallet location 2</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">Machine B – Fixture 1<span>   </span>- assigned to pallet location 1</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">Machine B – Fixture 2<span>   </span>- assigned to pallet location 2</span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us"> </span>
</p>

<p>
	<span lang="en-us" xml:lang="en-us">Thank you in advance and your help is highly appreciated.</span>
</p>

]]></description><guid isPermaLink="false">26051</guid><pubDate>Fri, 06 Mar 2026 16:46:48 +0000</pubDate></item><item><title>Load/Start Inspection with external Software without FACS</title><link>https://qualityforum.zeiss.com/topic/25855-loadstart-inspection-with-external-software-without-facs/</link><description><![CDATA[
<p>
	Hey Calypso-Wizards,
</p>

<p>
	do you know of any way to load and start inspections with python or other stuff i can integrate into my Python software?
</p>

<p>
	 
</p>

]]></description><guid isPermaLink="false">25855</guid><pubDate>Mon, 16 Feb 2026 08:59:19 +0000</pubDate></item><item><title><![CDATA[PCM & Subsequent Evaluation]]></title><link>https://qualityforum.zeiss.com/topic/23341-pcm-subsequent-evaluation/</link><description><![CDATA[
<p>
	I wrote a program that has X amount of groups of features, and inside of each group there are "check features" that probe around to find out which version this particular group belongs to (so essentially every group can be its own configuration of nominals). The PCM code lies in the pre-settings of the first measured feature after the check has been performed. Each group has its own PCM code.  
</p>

<p>
	I'm trying to take measured points and perform some analysis offline, but the first issue that I'm running into is that it does not execute the pre-setting code, so it never does the comparisons to determine which configuration it is - it just leaves the values to what it set at the program level inside of the Parameters setting. 
</p>

<p>
	Does anyone have a good way to force it execute the code again during Subsequent Evaluation?
</p>

]]></description><guid isPermaLink="false">23341</guid><pubDate>Mon, 05 May 2025 18:02:58 +0000</pubDate></item><item><title>Good method to cancel pcm script and measure program?</title><link>https://qualityforum.zeiss.com/topic/25849-good-method-to-cancel-pcm-script-and-measure-program/</link><description><![CDATA[
<p>
	Hi all,<br>
	<br>
	exist a good method to cancel a pcm script and measure program?<br>
	<br>
	most times lot of deep if else endif are needed, when i want do lot of routines like checking, convert and verify an input string of part id.<br>
	or settings nominal and tolerance values for some features.<br>
	<br>
	i wish, there is an exit or return and exit measure program command.<br>
	i don't like cncBreak() because this raises errors and put the cmm traffic light in red state.<br>
	I'm not sure, does endInspection() stop the complete measure program, or will i get a pdf protocol and dfq export?<br>
	<br>
	do you have better methods?<br>
	<br>
	i think maybe i should do somethin like this:<br>
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">clearParameters()

bContinue = true

//Step 1
if (bContinue)
	//do this
	...
	//result bad
	bContinue = false	
end if

//Step 2
if (bContinue)
	//do other
	...
	//result bad
	bContinue = false	
end if

//Step 3
if (continue)
	//do something
	...
	//result bad
	bContinue = false	
end if

//Finish
if (bContinue == false)
	//stop 
	message("some bad things happen")
	cncBreak()
end if
</span></pre>

<p>
	<br>
	 
</p>

]]></description><guid isPermaLink="false">25849</guid><pubDate>Fri, 13 Feb 2026 13:59:14 +0000</pubDate></item><item><title>Help creating a csv of raw data by feature</title><link>https://qualityforum.zeiss.com/topic/25773-help-creating-a-csv-of-raw-data-by-feature/</link><description><![CDATA[
<p>
	Going to a PCM class in a few months, but I'm trying some projects on my own. Hoping to get some help.
</p>

<p>
	I want to create a csv of raw data of a feature in inches. The export points function works, but it's always in metric, and it is space separated, which creates extra work on my end.
</p>

<p>
	My idea is to get the total number of points in the feature, and loop through each point, grab the x, y, z, convert to inches, add to file, end loop at the total number of points.
</p>

<p>
	Questions:
</p>

<p>
	Is there syntax to grab the total number of points from a feature? If so, what is the syntax to get point 1, then point 2, etc.
</p>

<p>
	Is this method worth trying? Or is there a simpler way that I'm not thinking of?
</p>

<p>
	Thanks. I appreciate any help.
</p>

]]></description><guid isPermaLink="false">25773</guid><pubDate>Thu, 05 Feb 2026 13:49:13 +0000</pubDate></item></channel></rss>
