Corel Draw Bohrlöcher und EstlCam
Hallo zusammen,
dies mal ein kommisches Problem und meine Lösung.
Das Problem:
Wenn ich mit CorelDraw X8 Bohrlöcher zeichnen möchte, mache ich dies über die normale Elipsenfunktion und setzte die Höhe und Breite gleich groß.
So weit ja auch kein Problem später in EstlCam (10.047 aktuell).
Wenn ich aber bsp. dieses Bohrloch nun über die Änderungsfuntion 'Position' um einen bestimmten Abstand vervielfälltigen möchte, so sind später alle Bohrlöcher in EstlCam nicht mehr als Bohrlöcher ansprechbar, sondern nur als Kreise (daran zu erkennen, dass die Markierung nur an der Außenlinie des Kreises sich fängt und auch der Kreis kein innenliegendes Kreis mehr hat.)
Meine Lösung:
Da ich programmieren kann, habe ich kurzerhand den Makrorekorder angeschmissen und die folgende Aktion mal aufgezeichnet.
1. Die alten XY-Positonen handschriftlich notiert
2. Einen neuen Kreis wie gehabt eingefügt
3. Den alten Kreis gelöscht
4. Die alte XY-Position eingestellt
5. Den neuen/alten Durchmesser eingestellt.
6. Aufzeichnung beendet.
Anschließend noch mal das ganze testweise durchlaufen lassen, analysiert und in eine schönere konfortablere Form gebracht incl. Code-Kommentaren.
Hier nun mein Ergebnis:
Sub Bohrkreis_umwandeln()
' Herkunft: Durch Markorekorder aufgezeichnet und angepasst
' Variablen deklarien
Dim OrigSelection As ShapeRange ' Originalkreis
Dim S1 As Shape ' Neuer Kreis
Dim XPosAlt As Double ' Alte X-Position
Dim YPosAlt As Double ' Alte Y-Position
Dim AlterXRadius As Double ' Alter X Radius
Dim AlterYRadius As Double ' Alter Y Radius
Dim NeuerXRadius As Double ' Neuer X Radius
Dim NeuerYRadius As Double ' Neuer X Radius
Const Radius1mm As Double = 0.019685 ' pro 0,1 mm
Const Linienstärke As Double = 0.003937 ' pro 0,1 mm
' Den Originalkreis in einer Variablen sicherm
Set OrigSelection = ActiveSelectionRange
AlterXRadius = OrigSelection.SizeWidth / 2 / Radius1mm
AlterYRadius = OrigSelection.SizeHeight / 2 / Radius1mm
' MsgBox "Alter X Radius " & AlterXRadius & vbCrLf & "Alter Y Radius " & AlterYRadius & vbCrLf
' Die Position des alten Kreises merken
XPosAlt = OrigSelection.PositionX
YPosAlt = OrigSelection.PositionY
' Die neue Breite und Höhe abfragen. Alter Wert gilt als Vorschlag
NeuerXRadius = InputBox("Wie groß soll der X Radius sein?", "Neuer X - Radius", AlterXRadius)
NeuerYRadius = InputBox("Wie groß soll der Y Radius sein?", "Neuer Y - Radius", AlterYRadius)
' Den neuen Kreis an der alten XY-Position zeichnen mit neunem/alten Radius
Set S1 = ActiveLayer.CreateEllipse2(XPosAlt, YPosAlt, NeuerXRadius * Radius1mm, NeuerYRadius * Radius1mm)
' Keine Füllfarbe
S1.Fill.ApplyNoFill
' Die Aussenlinie bestimmen 0,2mm dick (allen anderen Werte für Farbe, Linienart usw, sind Standard
S1.Outline.SetPropertiesEx 2 * Linienstärke, OutlineStyles(0), CreateCMYKColor(0, 0, 0, 100), ArrowHeads(0), ArrowHeads(0), cdrFalse, cdrFalse, cdrOutlineButtLineCaps, cdrOutlineMiterLineJoin, 0#, 100, MiterLimit:=5#, Justification:=cdrOutlineJustificationMiddle
' Den Mittelpunkt des Kreises setzen: Zentriert
ActiveDocument.ReferencePoint = cdrCenter
' Alten Kreis löschen
OrigSelection.Delete
End Sub
Einbinden dieser Funktion (Sub) in CorelDraw X8
1. Menüpunkt "Extras, Makros, Makromanager" aufrufen (oder ALT+Umschalt+F11) anklicken/drücken
2. Unter "Visual Basic für Application, GlobalMacros, RecordedMacros" einen Rechtsklick und dann auf "Neuer Makro" klicken
3. Rechtsklick auf das neue Makro "Makro1" klicken und bearbeiten auswählen
4. Nun o. g. Code (von Sub xx bis End Sub) einfügen (alter Eintrag Sub Macro1() End Sub kann gelöscht werden)
5. In der Übersicht des Makromanagers erscheint nun die neue Funktion (Sub)
Wenn die Bezeichnung "Bohrkreis_umwandeln" nicht passt, der muss dies in der ersten Zeile der Funktion (Sub) tun. Aber bitte keine Leerzeichen und am besten auch keine Umlaute und auch keine Sonderzeichen benutzen. Leerzeichen können durch einen Unterstrich genutzt werden (so wie bei mir).
Wie benutze ich nun die Funktion (Sub)?
1. Den Makromanager ggf. aufrufen (siehe oben)
2. Den betroffenen Kreis markieren/anklicken
3. Per Doppelklick auf die Funktionsbezeichnung diese starten
4. Es erfolgen nun 2 Eingabeboxen (inputbox), in denen der alte Durchmesser angezeigt wird. Der Wert, der dort angezeigt wird, ist der des alten Kreises, Durch drücken der Entertaste, kann dieser bestätigt werden oder durch einen neuen ersetzt werden.
4.1 Gibt man 2 unterschiedliche Werte ein, so entsteht eine Elipse (da ein Kreis ja eigentlich eine Elipse ist)
5. Nach dem bestätigen der beiden Eingaben ist an der alten XY-Position der neue Kreis gesetzt worden und der alte gelöscht.
Da es hier nur um Bohrlöcher geht, habe ich die Linienstärke auf 0,2 mm gelassen, Sie kann zwar in Code angepasst werden, dies ist aber eigentlich nicht nötig.
So, wer auch die gleichen Probleme hat, der hatte Sie hiermit nun.
Viel Spaß beim ausprobieren.
Gruß
Volker
Stepcraft V2 420, WinPC-NC USB Vollversion + HR10, EstlCam 10+XBox-Controller, HF500, Schwebehalter, Schleppmesser, Heißschneidedraht
Hallo,
wenn die Mitten von Kreisen nicht automatisch erkannt werden sind sie z.B. zur Ellipse deformiert worden - da reicht relativ wenig Abweichung von der idealen Kreisform damit es nicht mehr als Kreis bewertet wird.
Man kann dennoch den Mittelpunkt mit der Dreipunktfunktion schnell finden:
Allerdings: je stärker der Kreis deformiert ist, desto ungenauer wird der Mittelpunkt. Macht bei geringen Abweichungen nicht viel aus, bei merklichen Ellipsen kann die Abweichung vom gewünschten Mittelpunkt allerdings deutlich werden.
Christian
Hallo Christian,
vielen Dank für Deine Antwort.
Leider ist es mir dann aber leider schleierhaft, wie ich den Fehler verhindern kann.
Ich füge meinen ersten Kreis ein (dieser wird später auch korrekt erkannt. Alle Kopien von diesem Kreis hingegen nicht. Bei der Kopie ist dieser ja im ersten Schritt deckungsgleich mit dem Original (bei STRG +C, STRG + V) und ich gehe dann direkt über die X-Y Werte her und setze Ihn so, dass ich ihn anfassen und verschieben kann. An der Größe wird definitiv nichts geändert, diese ist wie beim Original 3mm. Auch bei anderen Kopiermöglichkeiten klappt es ja nicht.
Das ganze fällt ja auch erst beim DXF-Import auf. Daraufhin bearbeite ich nun alle Kreise wie beschrieben manuell bzw. jetzt mit meiner Makrolösung. Danach läuft jeder Kreis komischerweise einwandfrei.
Also entweder liegt es am Export oder am Import. Benutzerseitig wüsste ich jetzt nicht, wo ich den Fehler gemacht habe. Außer eine Einstellung beim Export, der dann speziell für Kreise gilt (welche diese aber ist, keine Ahnung).
Wenn Du CorelDraw hast, dann probiere es doch mal bitte selbst aus.
Bin ich eigentlich der einzige, der damit ein Problem hat?
Vielen Dank
Volker
Stepcraft V2 420, WinPC-NC USB Vollversion + HR10, EstlCam 10+XBox-Controller, HF500, Schwebehalter, Schleppmesser, Heißschneidedraht
Hallo,
Corel Draw habe ich nicht - sende mir bitte einmal die betroffene .dxf Datei zu.
Christian
Hallo Christian,
hier nun die DXF-Datei und die CorelDraw Datei im Erklärungstext.
Exportiert wird als AutoCad 2008-2013
Wie man sieht, sind die beiden oberen Punkte keine Bohrlöcher sondern nur die unteren. Habe leider die Originalprojektdatei (mit den fehlerhaften Löchern) nicht mehr, daher habe ich mal eine Testdatei erstellt.
Was mich jetzt verwundert, dass die beiden ersten keine Bohrlöcher sind und die anderen doch.
So, hoffe mal, das dies reicht.
Gruß
Volker
P.S. Test 2 da habe ich von den beiden waagerechten den linken eingefügt und dann mit STRG+C/STRG+V kopiert, und den zweiten um 50mm nach rechts versetzt. Anschließend beide GKreise markiert und gruppiert und dann die Gruppierung kopiert und um 20 Grad gedreht. Wieder ein anderes Ergebnis als oben.
Stepcraft V2 420, WinPC-NC USB Vollversion + HR10, EstlCam 10+XBox-Controller, HF500, Schwebehalter, Schleppmesser, Heißschneidedraht
Hallo,
keine Ahnung warum - aber Corel Draw macht aus deinen Ellipsen Splines...
Christian
Hallo Christian,
vielen Dank für die Analyse.
Dann werde ich wohl erst einmal meine Lösung einsetzen müssen.
Gruß
Volker
Stepcraft V2 420, WinPC-NC USB Vollversion + HR10, EstlCam 10+XBox-Controller, HF500, Schwebehalter, Schleppmesser, Heißschneidedraht
Moin,
da ich Corel schon "seit Urzeiten" nicht mehr einsetze und auch nicht mehr darüber verfüge, eine Verständnisfrage: kann man in Corel zum Erzeugen eines Kreises NUR die Ellipsen-Funktion benutzen? Oder gibt es - wie z.Bsp. in den meisten anderen CAD-Programmen - auch eine explizite Kreis-Funktion? Wenn ja, warum benutzt Du diese nicht?
Habe, bevor ich QCAD benutzte, ssehr gern mit dem Corel-Konkurrenz-Produkt "DrawPlus" gearbeitet. Dieses Programm verfügt über die angesprochene Kreis-Funktion; mit den darin erzeugten Kreisen/Bohrlöchern werden im weiteren CNC-Prozess keine "Eier" ...
Gruss Michael
begonnen mit 420/2, Alu-Fräse "KARLA" (noch im Bau)
EstlCam mit Arduino NANO, WinPC-NC USB
Kress, QCAD, Fusion 360, Inventor, Winghelper
also in corel gibt es auch eine kreis funktion und könnte noch keine probleme fest stellen benutze für tenische zeichnug solid works
Steuerung Estlcam cam Estlcam und corelx5 Maschine Krees800
Hallo zusammen,
so ein blödes Problem mit nur einer Taste zusätzlich gelöst.
Einfach auf die Ellipsenfunktion gehen und dann die STRG-Taste gedrückt halten und den Kreis zeichnen bzw. bearbeiten. Fertig.
Das hätten die von CorelDraw aber auch einfacher und benutzfreundlicher lösen können, indem Sie einfach eine Kreisfuntion optisch eingebaut hätten.
Na jetzt hat man einmal meine Lösung (die ich mit Sicherheit auch benutzen werde) und dann die Lösung mit der STRG-Taste.
Vielen Dank noch einmal an alle und vielleicht hilft der Beitrag ja dem ein oder anderen in der Zukunft weiter.
Gruß
Volker
Stepcraft V2 420, WinPC-NC USB Vollversion + HR10, EstlCam 10+XBox-Controller, HF500, Schwebehalter, Schleppmesser, Heißschneidedraht
- 44 Foren
- 7,406 Themen
- 63.4 K Beiträge
- 13 Online
- 26.5 K Mitglieder