<s>[INST] Let's say I had a 3D printer. A 3D printer that is fully functional and ready to print.

Now, I want to print an object (my model) but I am unsure if the printer is capable of producing the object in the desired shape. To check this, I want to write a program that will parse the G-code of the printed object and calculate the 3D points of the object that will actually be printed.

Here is a sample G-code file:
```
G92 E0
G28
G1 F1800 X-33.398 Y-21.756
G1 F1800 X-33.131 Y-21.822
G1 F1800 X-32.484 Y-22.321
G1 F1800 X-31.801 Y-22.321
G1 F1800 X-31.095 Y-21.822
G1 F1800 X-30.607 Y-21.756
G1 F1800 X-30.530 Y-21.509
G1 F1800 X-30.530 Y-21.002
G1 F1800 X-30.607 Y-20.496
G1 F1800 X-31.095 Y-20.330
G1 F1800 X-31.801 Y-20.330
G1 F1800 X-32.484 Y-20.496
G1 F1800 X-33.131 Y-21.002
G1 F1800 X-33.398 Y-21.509
G1 F1800 X-33.398 Y-21.756
G92 E0
```
From this G-code, I need to extract the X, Y, and Z coordinates of each point that the printer will actually move to. However, I do not need to parse the Z coordinate because this G-code does not specify it, and the printer moves in 2D in this example.

Now, I want you to write a Python program to parse this G-code and extract the X, Y, and Z coordinates for each line. 

Please write a clean, Pythonic code that parses the G-code file, and prints out the points.

Here is what I need from the code:
- It should be able to read the file and remove any comments
- It should be able to extract X, Y, and Z coordinates from G-codes like `G1 F1800 X-33.398 Y-21.756`
- It should be able to deal with negative numbers and decimal numbers
- It should print out the points in the format `(X, Y, Z)`
- It should handle files that have the same point multiple times
- It should handle files that have G-code lines that do not specify X, Y, or Z coordinates
- It should handle files that have other G-code commands that do not specify X, Y, or Z coordinates like `G92 E0` and `G28`

Here is a sample of what I would like the output to look like:
```
(-33.398, -21.756, 0.0)
(-33.131, -21.822, 0.0)
(-32.484, -22.321, 0.0)
(-31.801, -22.321, 0.0)
(-31.095, -21.822, 0.0)
(-30.607, -21.756, 0.0)
(-30.530, -21.509, 0.0)
(-30.530, -21.002, 0.0)
(-30.607, -20.496, 0.0)
(-31.095, -20.330, 0.0)
(-31.801, -20.330, 0.0)
(-32.484, -20.496, 0.0)
(-33.131, -21.002, 0.0)
(-33.398, -21.509, 0.0)
(-33.398, -21.756, 0.0)
```
Here is a bonus question: Is there a way to plot the points in 2D to verify that it is correct?[/INST]