Français
Forum

HPGL File dans Profan magasin et Grafik sur la fenêtre ausgeben

 
- page 1 -



Web
Scanner
allô Amis,

mon CNC Programme fonctionne soweit déjà pas mal, eh bien voudrais je tour weitermachen

Donc:
je suis sur qui cherche pour folgendem. il y a sogenannte HPGL Files, ce sont Anweisungen
qui z.B sur Plotter ausgegeben volonté peut et ensuite belle Sachen zeichnen, ou bien plan plotten.
Ev. kennt cela quelqu'un déjà? cet Files avons un entier bestimmtes Format (je crois xxx.hgl).

je voudrais eh bien:
1. un beliebiges HPGL-File dans XProfan 10 magasin
2. qui dessin ( = den Plot skaliert) dans einem la fenêtre entstehen laisser.

So theoretisch hab je déjà ne concept, mais ev. peux je mich à einem Beispiel de
Euch festhalten et daran weiterproggen?

Viele Grüße

Euer Web
 
Xprofan X3.1
Win7 auf AMDX6
27.06.2008  
 



 
- page 3 -



E.T.
un bekannter de mir hat aussi une Fräse selbst gebaut (X,Y UND Z-Contrôle). là peut je oui aussi la fois informer, comment il alles gemacht hat. si je mich richtig erinnere, bearbeitet il alles avec Corel, qui Contrôle ist ensuite un DOS-Programme.

Mario
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
05.07.2008  
 



Ah, je hatte im paquet sur une Screentshot gehofft weshalb mir qui Dateigröße Spanisch vorkam.
 
05.07.2008  
 




GDL
Hi Web

und dir um Europlatinen (100*160 mm).
- Isolationsfräsen
- 0,6 mm Durchm. Bohren chez 1mm Kupferauge
- 0,8 mm Durchm. Bohren chez 1,5 mm Kupferauge
- 1,3 mm Durchm. Bohren chez 2 mm Kupferauge

chez 2seitigen Platinen obige Schritte doppelt (Löcher doit exakt qui Lötaugen sur beiden Seiten rendez-vous).

Derzeit lieu je qui Platinen so her
- UV Belichtung
- Entwickeln
- Ätzen
- Bohren avec einer Hochdrehzahl-Ständerbohrmaschine avec Spezialspannfutter.

là ca très zeitraubend et Bohrer-Abbrech intensif ist, wurde la fois sur Alternativen nachgedacht.

salut
Georg

 
Windows7 Xprofan 8,9,10 [...]  [...] 
05.07.2008  
 




Web
Scanner
Hi Georg,

pour Leiterplatten dans kleinen Serien gibt es doch eigentlich preiswerte Anbieter,
ou bien suis je là faux informiert?

qui Fräserei de Leiterplatten lohnt sich (wahrscheinlich) pour Serien plutôt pas,
là cela Isolationsfräsen doch droite longtemps dauert et assez
Fräserverschleissend (chez FR4) ist. même chose gilt aussi pour qui Bohrer.
chez Ebay gibts ensuite toujours qui aussortierten Fräser ud Bohrer, qui encore pour Holz et
Kunststoff tranchant genug sommes.

Pour einzelne Muster peux es wieder convenable son, là on pas den ganzen
Weg qui Herstellung sur cela Ätzen aller doit.

cela Bohren ist naturellement avec une CNC un Klacks, solange qui Boher hält.
Besser wäre es (si possible) sich sur une mittleren Bohr Durchmesser festzulegen.
qui Umspannerei ist pas justement beliebt, et il faut pas so viele verschiedene
Bohrergrößen vorhalten.

Grüße

Web
 
Xprofan X3.1
Win7 auf AMDX6
05.07.2008  
 




GDL
Hi,

habe es presque déjà befürchtet.Platinendienst ist trop teuer.Brauchen ca. 300 Platinen avec untershiedlichem Layout.
avec qui Ätztechnik peux je oui encore vivre.Pour cela Bohren muss je mir arrêt quoi überlegen.

salut
Georg

Éditer: qui Bohrergrößen sommes Bauteile bedingt.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
06.07.2008  
 




Web
Scanner
Hi Georg,

kennst Du qui Tanbo de Elektor?

= Tangential - Bohr - machine

cela wäre ev. quoi zum Leiterplattenbohren ?
je sais allerdings pas quoi cela Ding kostet. Ev. Selbstbau possible?
comme cela Gerät récente était, fand je cela Konzept très intéressant.

[...] 

Grüße

Web
 
Xprofan X3.1
Win7 auf AMDX6
07.07.2008  
 




RGH
RGH

Web Scanner
@Roland, la hâte Du eventuell déjà quoi dans Deinem Archiv trouvé?
Web


Gib mir s'il te plaît et avec ca Zeit jusqu'à zum Wochenende!

Salut
Roland


Salut,
je regrette, mais offensichtlich habe Je l' erwähnten Quellcode pas plus.
là cela HPGL-Format mais un reines ASCII-Format ist, sollte es dans XProfan pas allzu schwer son, un Programme trop écrivons, dass qui Dossier einliest et sur dem Bildschirm darstellt.
Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
07.07.2008  
 




Web
Scanner
allô Roland,

ne...aucune Problem,
vielen Dank pour chercher.

je attends la fois encore ab, quoi IF vorhat en supplément trop proggen,
Ansonsten lege je erstmal à l'attaque et werde weitere Fragen avons

Grüße

Web
 
Xprofan X3.1
Win7 auf AMDX6
07.07.2008  
 



@Georg: exposition la fois [...]  vom Mitglied [...]  - vlt. ensteht là quelque chose?

@WebS: Einen Loadergrundstock peux je pour volontiers aujourd'hui soir (zuhause) aufbereiten et ici posten.
 
10.07.2008  
 



Funktioniert

Orignalsource im paquet, ici qui enh:
KompilierenMarqueSéparation
SET(errorLevel,-1)

proc LASTSUBSTR

    PARAMETERS S$,D$
    RETURN (SUBSTR$(S$,LEN(S$,D$),D$))

endproc

proc NOTLASTSUBSTR

    PARAMETERS S$,D$
    RETURN DEL$(S$,LEN(S$,D$),1,D$)

endproc

proc NOTFIRSTSUBSTR

    PARAMETERS S$,D$
    RETURN DEL$(S$,1,1,D$)

endproc

proc SETSUBSTR

    PARAMETERS S$,N&,D$,NS$
    RETURN INS$(NS$,DEL$(S$,N&,1,D$),N&,D$)

endproc

proc FTOA

    PARAMETERS F!
    RETURN +SUBSTR$(STR$(F!),1,.)

endproc

proc STRI

    PARAMETERS F!
    RETURN SUBSTR$(STR$(F!),1,.)

endproc

proc TSND

    PARAMETERS V&
    var S$=STRI(V&)
    var L&=LEN(S$)
    var T&=(L&-1)3

    WHILELOOP T&

        S$=INS$(.,S$,L&-&LOOP*3+1)

    ENDWHILE

    RETURN S$

endproc

proc STOALLOWEDCHARS

    PARAMETERS S$,ALWDCHRS$
    var C&=LEN(S$)
    var I&=0

    IFNOT C&

        RETURN

    ENDIF

    WHILE 1

        INC I&

        IFNOT INSTR(SUBSTR$(S$,I&),ALWDCHRS$)

            S$=DEL$(S$,I&,1)
            DEC I&
            DEC C&

        ENDIF

        IF I&=C&

            BREAK

        ENDIF

    ENDWHILE

    RETURN S$

endproc

proc WHILE_REPLACE

    PARAMETERS S$,FROM$,_TO$

    WHILE INSTR(FROM$,S$)

        S$=TRANSLATE$(S$,FROM$,_TO$)

    ENDWHILE

    RETURN S$

endproc

proc SARRTOSTRING

    PARAMETERS ARR$[],E$
    var C&=SIZEOF(ARR$[])-1

    IF C&<0

        RETURN

    ENDIF

    var S$=

    WHILELOOP 0,C&

        S$=S$+ARR$[&LOOP]+E$

    ENDWHILE

    RETURN S$

endproc

proc FGETFILEEXT

    PARAMETERS FLE$

    IFNOT INSTR(.,FLE$)

        RETURN

    ENDIF

    RETURN LASTSUBSTR(FLE$,.)

endproc

proc FGETFNAMEFROM

    PARAMETERS S$
    RETURN LASTSUBSTR(S$,\)

endproc

proc FGETPATHFROM

    PARAMETERS S$
    RETURN NOTLASTSUBSTR(S$,\)+\

endproc

proc FGC

    PARAMETERS FLE$

    IF %PCOUNT<1

        RETURN

    ENDIF

    var B&=FILESIZE(FLE$)

    IF B&<1

        RETURN

    ENDIF

    DECLARE MEM#
    DIM MEM#,B&
    var R&=BLOCKREAD(FLE$,MEM#,0,B&)
    var S$=CHAR$(MEM#,0,R&)
    DISPOSE MEM#
    RETURN S$

endproc

proc FPC

    PARAMETERS FLE$,S$

    IF %PCOUNT<1

        RETURN

    ENDIF

    IF %PCOUNT<2

        S$=

    ENDIF

    var L&=LEN(S$)

    IF L&=0

        var FH&=ASSIGN(FLE$)
        REWRITE FH&
        CLOSE FH&
        ASSIGN FH&,
        RETURN

    ENDIF

    DECLARE MEM#
    DIM MEM#,L&+1
    STRING MEM#,0=S$
    BLOCKWRITE FLE$,MEM#,0,L&
    DISPOSE MEM#

endproc

proc FMKDIR

    PARAMETERS DNAME$

    IF %PCOUNT<1

        RETURN

    ENDIF

    IF DIREXISTS(DNAME$)

        RETURN 2

    ENDIF

    MKDIR DNAME$
    RETURN DIREXISTS(DNAME$)

endproc

proc FDELETE

    :!>Löscht die Datei fname$ und liefert als Rückgabewert den Erfolg der Operation.
    PARAMETERS FNAME$

    IF %PCOUNT<1

        RETURN

    ENDIF

    IFNOT FILEEXISTS(FNAME$)

        RETURN 2

    ENDIF

    var FH%=ASSIGN(FNAME$)

    IFNOT FH%

        RETURN 0

    ENDIF

    ERASE #FH%
    ASSIGN #FH%,
    RETURN 1-FILEEXISTS(FNAME$)

endproc

proc FTRYDELETE

    PARAMETERS FLE$,MSTIMEOUT&

    IF %PCOUNT<1

        RETURN

    ENDIF

    IF %PCOUNT<2

        MSTIMEOUT&=8000

    ENDIF

    IFNOT FILEEXISTS(FLE$)

        RETURN 1

    ENDIF

    IF FDELETE(FLE$)

        RETURN 1

    ENDIF

    MSTIMEOUT&=MSTIMEOUT&+&GETTICKCOUNT

    WHILE 1

        SLEEP 100

        IF FDELETE(FLE$)

            BREAK

        ENDIF

        IF &GETTICKCOUNT>MSTIMEOUT&

            BREAK

        ENDIF

    ENDWHILE

    RETURN 1-FILEEXISTS(FLE$)

endproc

proc FCHDIR

    PARAMETERS DNAME$
    var OP$=LOWER$(GETDIR$(@))

    IF DIREXISTS(DNAME$)

        CHDIR DNAME$

    ENDIF

    RETURN IF(LOWER$(GETDIR$(@))=DNAME$,1,0)

endproc

WINDOWSTYLE 1 | 2 | 4 | 8 | 16 | 512
CLS
USERMESSAGES $0010,$0014
var HPIC&=CREATE(hHPGLPic,FGC(1.plt),400,400,$FFAA99)

IFNOT HPIC&

    MESSAGEBOX(Bild konnte nicht erzeugt werden.,,4096)

ENDIF

DRAWPIC HPIC&,10,10;0

WHILE 1

    WAITINPUT

    SELECT %UMESSAGE

        CASEOF $0010

        BREAK

    ENDSELECT

ENDWHILE

end

subproc CREATE.HHPGLPIC

    PARAMETERS __HPGLDATA$,PICWIDTH&,PICHEIGHT&,BGCOLOR&
    RETURN HPGL.CREATEHPIC(__HPGLDATA$,PICWIDTH&,PICHEIGHT&,BGCOLOR&)

endproc

proc HPGL.CREATEHPIC

    PARAMETERS __HPGLDATA$,PICWIDTH&,PICHEIGHT&,BGCOLOR&
    DECLARE CMDS$[]
    CMDS$[]=EXPLODE(TRIM$(WHILE_REPLACE(TRANSLATE$(TRANSLATE$(__HPGLDATA$,;,x0A),x0D,x0A),x0A+x0A,x0A)),x0A)
    var C&=SIZEOF(CMDS$[])

    IFNOT C&

        RETURN 0

    ENDIF

    IF (C&=1) AND (CMDS$[0]=)

        RETURN 0

    ENDIF

    var PEN.ISDOWN%=0
    var PEN.CURRENT%=0
    var PEN.LINETYP%=0
    var PEN.X!=0
    var PEN.Y!=0
    DECLARE CMDLINE$[]
    var I&=0
    DECLARE PAINTLIST$[]
    var S$=

    WHILELOOP 0,C&-1

        S$=INS$(,,TRANSLATE$(TRIM$(WHILE_REPLACE(CMDS$[&LOOP],  , )), ,,),3)

        IF LEN(S$)=3

            S$=DEL$(S$,3,1)

        ENDIF

        CMDLINE$[]=EXPLODE(S$,,)

        SELECT UPPER$(CMDLINE$[0])

            CASEOF IN

            CASEOF WU

            CASEOF VS

            CASEOF PW

            CASEOF SP

            PEN.CURRENT%=VAL(CMDLINE$[1])

            CASEOF LT

            IF SIZEOF(CMDLINE$[])>1

                PEN.LINETYP%=CMDLINE$[1]

                SELECT CMDLINE$[1]

                    CASEOF 1,2,3,4,5,6

                    USEPEN 0,0,1
                    OTHERWISE
                    USEPEN 0,0,1

                ENDSELECT

            ENDIF

            CASEOF PA

            IF SIZEOF(CMDLINE$[])>1

                WHILELOOP 0,(SIZEOF(CMDLINE$[])-1)*0.5-1

                    HPGL.CREATEHPIC.PEN.MOVETO(VAL(CMDLINE$[&LOOP*2+1]),VAL(CMDLINE$[&LOOP*2+2]))

                ENDWHILE

            ENDIF

            CASEOF PU

            PEN.ISDOWN%=0

            IF SIZEOF(CMDLINE$[])>1

                WHILELOOP 0,(SIZEOF(CMDLINE$[])-1)*0.5-1

                    HPGL.CREATEHPIC.PEN.MOVE(VAL(CMDLINE$[&LOOP*2+1]),VAL(CMDLINE$[&LOOP*2+2]))

                ENDWHILE

            ENDIF

            CASEOF PD

            PEN.ISDOWN%=1

            IF SIZEOF(CMDLINE$[])>1

                WHILELOOP 0,(SIZEOF(CMDLINE$[])-1)*0.5-1

                    HPGL.CREATEHPIC.PEN.MOVE(VAL(CMDLINE$[&LOOP*2+1]),VAL(CMDLINE$[&LOOP*2+2]))

                ENDWHILE

            ENDIF

        ENDSELECT

    ENDWHILE

    C&=SIZEOF(PAINTLIST$[])

    IFNOT C&

        RETURN 0

    ENDIF

    DECLARE PAINTDATA$[]
    var VMINX!=0
    var VMINY!=0
    var VMAXX!=0
    var VMAXY!=0
    var FX!=0
    var FY!=0
    var FXX!=0
    var FYY!=0
    var VSET%=0

    WHILELOOP 0,C&-1

        PAINTDATA$[]=EXPLODE(PAINTLIST$[&LOOP],x0A)

        SELECT PAINTDATA$[0]

            CASEOF line

            FX!=VAL(PAINTDATA$[1])
            FY!=VAL(PAINTDATA$[2])
            FXX!=VAL(PAINTDATA$[3])
            FYY!=VAL(PAINTDATA$[4])
            HPGL.CREATEHPIC.PAINTDATA.SETMINMAX(FX!,FY!)
            HPGL.CREATEHPIC.PAINTDATA.SETMINMAX(FXX!,FYY!)

            CASEOF arc

        ENDSELECT

    ENDWHILE

    var XD!=VMAXX!-VMINX!
    var YD!=VMAXY!-VMINY!

    IF VMAXX!=0

        RETURN 0

    ENDIF

    IF VMAXY!=0

        RETURN 0

    ENDIF

    var SX!=(PICWIDTH&-10)/XD!
    var SY!=(PICHEIGHT&-10)/YD!
    var VSX!=VMINX!*SX!
    var VSY!=VMINY!*SY!
    var HPIC&=CREATE(hNewPic,PICWIDTH&,PICHEIGHT&,BGCOLOR&)

    IFNOT HPIC&

        RETURN 0

    ENDIF

    STARTPAINT HPIC&

    WHILELOOP 0,C&-1

        PAINTDATA$[]=EXPLODE(PAINTLIST$[&LOOP],x0A)

        SELECT PAINTDATA$[0]

            CASEOF line

            FX!=VAL(PAINTDATA$[1])*SX!-VSX!+5
            FY!=VAL(PAINTDATA$[2])*SY!-VSY!+5
            FXX!=VAL(PAINTDATA$[3])*SX!-VSX!+5
            FYY!=VAL(PAINTDATA$[4])*SY!-VSY!+5
            USEPEN 0,0,0
            LINE FX!,FY! - FXX!,FYY!

            CASEOF arc

        ENDSELECT

    ENDWHILE

    ENDPAINT
    RETURN HPIC&

    proc HPGL.CREATEHPIC.PAINTDATA.SETMINMAX

        PARAMETERS X!,Y!

        IFNOT VSET%

            VSET%=1
            VMINX!=X!
            VMAXX!=X!
            VMINY!=Y!
            VMAXY!=Y!
            RETURN

        ENDIF

        IF VMINX!>X!

            VMINX!=X!

        ENDIF

        IF VMAXX!<X!

            VMAXX!=X!

        ENDIF

        IF VMINY!>Y!

            VMINY!=Y!

        ENDIF

        IF VMAXY!<Y!

            VMAXY!=Y!

        ENDIF

    endproc

    proc HPGL.CREATEHPIC.PEN.MOVE

        PARAMETERS X!,Y!

        IF PEN.ISDOWN%

            HPGL.CREATEHPIC.PAINTLIST.ADD(line+x0A+STR$(PEN.X!)+x0A+STR$(PEN.Y!)+x0A+STR$(PEN.X!+X!)+x0A+STR$(PEN.Y!+Y!))

        ENDIF

        PEN.X!=PEN.X!+X!
        PEN.Y!=PEN.Y!+Y!

    endproc

    proc HPGL.CREATEHPIC.PEN.MOVETO

        PARAMETERS X!,Y!

        IF PEN.ISDOWN%

            HPGL.CREATEHPIC.PAINTLIST.ADD(line+x0A+STR$(PEN.X!)+x0A+STR$(PEN.Y!)+x0A+STR$(X!)+x0A+STR$(Y!))

        ENDIF

        PEN.X!=X!
        PEN.Y!=Y!

    endproc

    proc HPGL.CREATEHPIC.PAINTLIST.ADD

        PARAMETERS TODO$
        TODO$=TODO$+x0A+STR$(PEN.CURRENT%)+x0A+STR$(PEN.LINETYP%)
        PAINTLIST$[SIZEOF(PAINTLIST$[])]=TODO$

    endproc

endproc

end

468 kB
Hochgeladen:10.07.2008
Downloadcounter98
Download
 
10.07.2008  
 




Dieter
Zornow
quoi allez à deinem Programme, 1.plt est un perfekter Kreis, den je chez deinem Prog pas erkennen peux.
peut-être pour 20 Schnaps

Anbei Screenshoot de qui Orginaldatei 1.plt

3 kB
Hochgeladen:11.07.2008
Downloadcounter131
Download
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
11.07.2008  
 




Web
Scanner
@IF
cela Programme hat viel travail gemacht...je sais es oui c'est ca
-..seulement chez mir erscheint un Kringel et ne...aucune Kreis- beim Programmstart

Weil je es wieder la fois pas erwarten konnte, habe je mir inzwischen une eigene Inputroutine geschrieben. mon Version ist sûrement pas entier so profi, comment qui deine gemacht, mais funktioniert pas mal.

und dir aussi pour plusieurs Elemente - alors 100 Kreise ou bien Quadrate usw .usf.
je denke aussi, c'est chez so einer komplexen Thematik pas so simple, ganze Programmteile dazuzunehmen, en Funktion on pas 100% blickt.

cela prochain sera, cela on:

1. cela angezeigte Bild Déplacer peux
2. dans cela Bild zoomen peux
3. qui verschiedene Vektoren anclicken peux et à den Endpunkten dans verschiedene Richtungen tirer peux et cela ganze wiederum Sauver peux....

il y a encore viel trop 1faire

Grüße

Web
 
Xprofan X3.1
Win7 auf AMDX6
11.07.2008  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

6.852 Views

Untitledvor 0 min.
Manfred Barei09.01.2021
Normann Strübli31.03.2020
Michael W.09.01.2017
iF30.12.2015
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie