• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

MACRO per Solid Edge

  • Ersteller Ersteller cacciatorino
  • Erstellt am Erstellt am
Hallo an alle... es gibt ein Makro, um den Knorpel zu füllen, nicht mit benutzerdefinierten Feldern. .
Ich möchte einen Bildschirm, der mit einem Knopf aktiviert.
wo er sagt,... Skala... Designer. verantwortlich...... etc.
Danke.
Tschüss.

haben Sie geantwortet? Ich wäre an einem solchen Makro interessiert.
 
Tschüss.

haben Sie geantwortet? Ich wäre an einem solchen Makro interessiert.
existieren Unternehmen, die Programme für die Verwaltung von Dokumenten und Zyklusleben des Produkts verkaufen
plm (Produktlebenszyklusmanagement) oder pdm (Produktdatenmanagement).
Da Sie Makros nähern, aber es ist nur, dass Sie in einer neuen Firma gearbeitet haben, so dass Sie keine Zeit haben, würde ich Sie bitten, es zu schreiben (kann sein, dass es das erste Mal ist, dass ich es so direkt sehe).

dann beginnt mit der Tabelle innen solidedge\information\management Eigenschaft
ein wenig ist anpassbar, klicken Sie mit der rechten Maustaste auf Spaltenköpfe.
oft genug.

informiert, vielleicht von Ihrem Solid Edge Händler, auf dem nativen pdm vorinstalliert in den neuesten Versionen von solidedge st.
versuchen zu verstehen, was er tut und wie. Eine Lizenz ist erforderlich, ich weiß nicht, ob jemand im Forum es verwendet.
 
existieren Unternehmen, die Programme für die Verwaltung von Dokumenten und Zyklusleben des Produkts verkaufen
plm (Produktlebenszyklusmanagement) oder pdm (Produktdatenmanagement).
Da Sie Makros nähern, aber es ist nur, dass Sie in einer neuen Firma gearbeitet haben, so dass Sie keine Zeit haben, würde ich Sie bitten, es zu schreiben (kann sein, dass es das erste Mal ist, dass ich es so direkt sehe).

dann beginnt mit der Tabelle innen solidedge\information\management Eigenschaft
ein wenig ist anpassbar, klicken Sie mit der rechten Maustaste auf Spaltenköpfe.
oft genug.

informiert, vielleicht von Ihrem Solid Edge Händler, auf dem nativen pdm vorinstalliert in den neuesten Versionen von solidedge st.
versuchen zu verstehen, was er tut und wie. Eine Lizenz ist erforderlich, ich weiß nicht, ob jemand im Forum es verwendet.
Hi.

Wir haben bereits ein Plm analysiert, aber es gehört nicht zu den Prioritäten des Unternehmens.
Ich habe Anpassungen in den Eigenschaften, wie Sie oben vorschlagen, und jetzt geht es gut, außer in der Cartouche haben wir nur eine Revision, die weiterhin überschreiben, indem wir andere, während wir möchten 3 als historisch.
 
Guten Morgen... Ich schreibe, weil ich Hilfe brauche. In diesem Fall müsste ich wissen, wie man den Wert der gesamten Schnittlänge aus einem Blechteil mit einem Makro extrapoliert.
der Wert, den ich versuche zu verstehen, ist, dass in "Kostendesign" auf die geschnittene Stimme vorhanden. Ich habe versucht, ihn mit Spion zu finden, aber offensichtlich bin ich falsch.
Wenn jemand so freundlich war, mir den vbs-Code zu übergeben (nur eine msgbox, die den Wert schreibt) wäre ich ewig dankbar. Ich vertraue auf eine fromme Seele. Tschüss.
 
dann gelang es mir, alle Konflikte zu entfernen, indem ich alle Skizzen in blau zurückbringt und jetzt öffnet sich die Datei und schließt sich an den Flug. das Problem ist, dass ich jetzt keine neuen hinzufügen oder die bereits erstellten Rahmenelemente ändern kann; ich kann sie nur löschen... Es ist, als wäre das Modell in dieser Konfiguration eingefroren. wenn ich beispielsweise eine Skizze ändere, aktualisiert den Rahmen nicht relativ zu dieser Skizze. wenn ich eine neue Skizze erstellen und ein Rahmenelement überprüfen, auf dem "down"-Menü erscheinen, dass neue Rahmen, aber es wird nicht dann angezeigt, es bleibt als Anzeige der einzigen nackten Skizze...
Guten Morgen... Ich schreibe, weil ich Hilfe brauche. In diesem Fall müsste ich wissen, wie man den Wert der gesamten Schnittlänge aus einem Blechteil mit einem Makro extrapoliert.
der Wert, den ich versuche zu verstehen, ist, dass in "Kostendesign" auf die geschnittene Stimme vorhanden. Ich habe versucht, ihn mit Spion zu finden, aber offensichtlich bin ich falsch.
Wenn jemand so freundlich war, mir den vbs-Code zu übergeben (nur eine msgbox, die den Wert schreibt) wäre ich ewig dankbar. Ich vertraue auf eine fromme Seele. Tschüss.
Hi.

Prämisse:
der Wert, den Sie suchen, ist nicht direkt in den Dateieigenschaften verfügbar, aber Sie müssen es berechnen.

um dies zu tun, müssen Sie alle Kanten aller Gesichter des entwickelten Modells analysieren.
die senkrechten Flächen zur Entwicklung (Dickness) verwerfen, die inneren Kanten (diejenigen der Start- und Endfalte) verwerfen, die Doppelflächen verwerfen (jede Stückklappe hat 2 gleiche Flächen aufgrund der Dicke). Sobald Sie alle Kanten finden, die Sie benötigen, um die Länge zu berechnen, für eine Linie oder Bogen ist es ziemlich einfach, für eine komplexe Kurve ein wenig komplizierter.

Vorwort.

ein guter Ausgangspunkt für alle oben genannten Punkte ist das Beispiel "gandt", das Sie in c:\Programme\siemens\solid edge xx\custom\gandt finden.

wenn Sie Kenntnisse über die visuelle Basis haben sollten Sie in der Lage sein, zu bekommen, was Sie mit wenig Aufwand suchen.
andernfalls warten Montag, dass ich Ihnen meine Funktion abdecken werde (ich habe es momentan nicht mit mir).

Hi.
 
Guten Morgen... Ich schreibe, weil ich Hilfe brauche. In diesem Fall müsste ich wissen, wie man den Wert der gesamten Schnittlänge aus einem Blechteil mit einem Makro extrapoliert.
der Wert, den ich versuche zu verstehen, ist, dass in "Kostendesign" auf die geschnittene Stimme vorhanden.
für eine genaue Schätzung der Schnittzeit sollten Sie Laser cnc Software verwenden.
Mein Lieferant sagt mir, dass es manchmal mehr Zeit braucht, Piercing zu machen, als eine Silhouette zu machen. offensichtlich ist es große Dicken und mit vielen Löchern oder Ausgrabungen wert.
 
Hi.

ein guter Ausgangspunkt für alle oben genannten Punkte ist das Beispiel "gandt", das Sie in c:\Programme\siemens\solid edge xx\custom\gandt finden.

wenn Sie Kenntnisse über die visuelle Basis haben sollten Sie in der Lage sein, zu bekommen, was Sie mit wenig Aufwand suchen.
andernfalls warten Montag, dass ich Ihnen meine Funktion abdecken werde (ich habe es momentan nicht mit mir).

Hi.
Inzwischen danke ich Ihnen für die gerade, Ich werde versuchen, das Beispiel zu betrachten, aber ich bitte Sie immer noch, Ihre Funktion zu befestigen, wenn möglich.
für eine genaue Schätzung der Schnittzeit sollten Sie Laser cnc Software verwenden.
Mein Lieferant sagt mir, dass es manchmal mehr Zeit braucht, Piercing zu machen, als eine Silhouette zu machen. offensichtlich ist es große Dicken und mit vielen Löchern oder Ausgrabungen wert.
in efetti ist wahr, in der Tat der Wert, den ich dann mit den Schneidtischen der cnc (Geschwindigkeit und Bruchzeiten) zu verbinden brauche. die Einbruchzeit wirkt nur signifikant, wenn Sie große Gitter oder Dicken (über 8 mm) haben. In meinem Fall, mit feinen Dicken, Ich werde es verwalten, indem eine feste Quote durch einen Durchschnitt der Einsenkungen, während im Falle des Rasters wird das Stück auf eine Kombination, die eine andere Kostenparameter, die diese Verarbeitung berücksichtigt.
 
Ich werde Ihnen meine Berechnung unterschreiben. Du musst alles aufräumen, was du nicht brauchst.
(Ich habe bereits Berichte und Berechnungszahl von Falten entfernt, sonst war es zu lang und schickte es nicht an mich)

Ich füge das hinzu, um die Anzahl der sinkenden Punkte zu berechnen, die Sie benötigen, um die Anzahl der "Loop" zu zählen
Code:
public sub avviocalcolocosto(tipo_lamiera as string, bshowresult as boolean)

dim objfaces als Objekt
dim objface als Objekt
dim objtopfaces() als Objekt
dim dblminrange(1 bis 2) als doppelt
dim dblmaxrange(1 bis 2) als doppelt
dim dblnormal(1 bis 3) als Doppel: dim dblnormalref(1 bis 3) als Doppel
dim itopfacecount als Ganze
dim ioutlineedgecount als Ganzzahl
dim ifoldedgecount als Ganzzahl
dim objoutlineedges() als Objekt
dim objfoldedges() als Objekt
dim objedges als Objekt
dim lgfacecount als lang
dim objsharedfaces(1 bis 2) als Objekt
dim isharedfaceindex als ganze Zahl
Dim i als ganze Zahl
Dim j als ganze Zahl
Dim k als ganze Zahl
dim ifilepointer als ganze Zahl
dim dblstartpoint(1 bis 3) als doppelt
dim dblendpoint(1 bis 3) als Doppel
dim dblcenter(1 bis 3) als Doppel
dim dblradius als Doppel
dim dblstartangle als doppelt
dim dblsweepangle als doppelt
dim dblmajoraxis(1 bis 3) als Doppel
dim duplicatege als boolean
Dim dblorigin(1 bis 2) als doppelt
dim Schlagzahl lang
Dim Hubpunkte() als Doppel
Dim Hubparams() als Doppel
dim länge als doppelt
dim props als Objekt
dim dicke als doppelt
dim vars als Objekt
Durchmesser Radius als Doppel
Dim schnitt(15) als Doppel
dim dx als Doppel
dim dy als doppelt

auf Fehlerwiederaufnahme
set objapp = getobject(, "solidedge.application")
wenn er
msgbox "solid edge deve essere aperto."
Ende
Ende
auf fehler goto 0

wenn objapp.activeenvironment <> "sheetmetal" dann
msgbox "nessuna parte in lamiera aperta."
Ende
Ende

set objfoldeddoc = objapp.activedocument

Sicher, dass das Dokument ein solides Modell enthält
wenn objfoldeddoc.models.count = 0 dann
msgbox "il file aperto non contiene un modello solido."
Ende
Ende

set objprops = objfoldeddoc.properties

nomefilexls = (links(objfoldeddoc.fullname, len(objfoldeddoc.fullname) - 4) + "_costo.xls")

Norm_vector = 3
Norm_Wert = 1

set objmodel = objflatdoc.reference.body.shells(1)

Alle ebenen Gesichter im Modell.
'set objfaces = objmodel.body.faces(facetype:=igqueryplane)
set objfaces = objmodel.faces '(facetype:=igface)

' allocate Speicher, um alle Oberseiten zu speichern.
redim objtopfaces(1 zu objfaces.count / 2) als Objekt

' alle Gesichter finden und speichern, deren Normalität in der positiven z-Achse liegt.
itopfacecount = 0
für jedes objface in objfaces
' Holen Sie den parametrischen Bereich des Gesichts.
rufen objface.getparamrange(minparam:=dblminrange, maxparam:=dblmaxrange)

"bekommen Sie die Normale am Min Param Punkt.
rufen objface. getnormal(numparams:=1, params:=dblminrange, normals:=dblnormal)

' überprüfen, ob es in der positiven z Richtung spitz ist.
wenn cstr(dblnormal(norm_vector)) = cstr(norm_value) dann
' rettet dieses Gesicht, weil es eine der oberen Gesichter ist.
itopfacecount = itopfacecount + 1
set objtopfacefaces(itopfacecount) = objface
Ende
Nächste

' Platz für die Kanten zuordnen
'redim objoutlineedges(1 to objmodel.body.edges(igqueryall).count / 3) als Objekt
redim objoutlineedges(1 to objmodel.body.edges(igqueryall).count / 2) als Objekt
wenn tipo_lamiera = "virola" dann
redim objfoldedges(2) als Objekt
andere
redim objfoldedges(1 zu itopfacecount * 2) als Objekt
Ende

dim ofoldedges als Sammlung
Set vonoldedges = neue Kollektion

' initialisieren die Zähler.
ioutlineedgecount = 0
ifoldedgecount = 0

Gehen Sie durch die Oberseite und sammeln Sie alle einzigartigen Kanten. wenn die Kanten
" werden von den Oberseiten geteilt, dann werden sie seperately als Faltkanten gespeichert.

n_profili = 1

für i = 1 to itopfacecount

' trovo i loop della faccia e li sommo -1
n_profili = n_profili + objtopfaces(i).loops.count - 1

' erhalten alle Kanten des aktuellen Gesichts.
set objedges = objtopfaces(i).edges

Überprüfen Sie jeden Rand, um zu sehen, ob er mit einem anderen Gesicht geteilt wird.
für j = 1 bis objedges. Anzahl
Das andere Gesicht, das diesen Rand teilt.
rufen objedges(j).getfaces(numfaces:=lgfacecount, faces:=objsharedfaces)

Das andere Gesicht.
objsharedfaces(1) objtopfaces(i) dann
isharedfaceindex = 2
andere
isharedfaceindex = 1
Ende

' Holen Sie den parametrischen Bereich des Gesichts.
rufen objsharedfaces(isharedfaceindex).getparamrange(minparam:=dblminrange, maxparam:=dblmaxrange)

"bekommen Sie die Normale am Min Param Punkt.
call objsharedfaces(isharedfaceindex).getnormal(numparams:=1, params:=dblminrange, normals:=dblnormal)

' wenn die Normale in positiver z-Richtung zeigt, dann wird die Kante mit einer anderen Oberseite geteilt.
wenn abs(dblnormal(norm_vector)) > norm_value - 0.1 und dblnormal(norm_vector) < norm_value + 0.1 dann

Überprüfen Sie, ob diese Kante bereits berücksichtigt ist.
duplicatege = falsch
für k = 1 to ifoldedgecount
objedges(j) objfoldedges(k) dann
duplicatege = true
Ausfahrt für
Ende
Nächste

wenn nicht dupliziert
„Wenn es sich um einen Plan handelt, dann
ifoldedgecount = ifoldedgecount + 1
set objfoldedges(ifoldedgecount) = objedges(j)
vonoldedges.add (objedges(j))
Wenn
Ende

andere
' der Rand ist außen.
ioutlineedgecount = ioutlineedgecount + 1

set objoutlineedges(ioutlineedgecount) = objedges(j)

Ende
Nächste
Nächste

gesamtlänge = 0

für i = 1 bis ioutlineedgecount

Länge = 0

Wählen Sie Fall objoutlineedges(i).geometry. Typ
Falligline
call objoutlineedges(i).getendpoints(startpoint:=dblstartpoint, endpoint:=dblendpoint)

'länge der linie
länge = (dblendpoint(1) - dblstartpoint(1)) ^ 2 + (dblendpoint(2) - dblstartpoint(2)) ^ ^ 0,5

Fall igcircle
' bestimmen, ob die Kante tatsächlich ein Kreis oder ein Bogen ist.
wenn objoutlineedges(i).geschlossen dann
rufen objoutlineedges(i).geometry.getcircledata(Mittepunkt:=dblcenter, Achsvektor:=dblnormal, Radius:=dblradius)

länge = dblradius * 2 * pi

andere
call getarcdata(objoutlineedges(i), true, dblcenter, dblnormal, dblstartpoint, dblendpoint, _
dblstartangle, dblsweepangle, dblmajoraxis, dblradius)

' den Startwinkel ändern, so dass er auf der Hauptachsenrichtung basiert. denn wir sind nur
"betreffend den Bogen in 2d Raum an der x-y Stelle sollte der Startwinkel relativ sein
' auf die x-Achse statt.
dblorigin(1) = 0
dblorigin(2) = 0
dblstartangle = dblstartangle + Lager(dblorigin, dblmajoraxis)

länge = dblradius * dblsweepangle

Ende

Fall igellipse, igbsplinecurve

' Schlag ellipsen und bspline Kurven.
rufen objoutlineedges(i).getstrokedata(Toleranz:=0.001, Hubzähler:=Strokecount, Punkte:=Strokepoints, params:=strokeparams)

für j = 2 zu Hubzählen
dx = Hubpunkte(j - 1) * 3) - Hubpunkte(j - 2) * 3)
dy = Hubpunkte(((j - 1) * 3) + 1) - Hubpunkte(((j - 2) * 3) + 1)
länge = länge + (dx ^ 2 + dy ^ 2) ^ 0,5
Nächste

Ende wählen

gesamtlänge = gesamtlänge + länge

Nächste

für i = 1 zu ifoldedgecount
Wählen Sie Fall objfoldedges(i). Geometrie. Typ
Falligline
rufen objfoldedges(i).getendpoints(startpoint:=dblstartpoint, endpoint:=dblendpoint)

Fall igcircle
' bestimmen, ob die Kante tatsächlich ein Kreis oder ein Bogen ist.
wenn objfoldedges(i).geschlossen dann
rufen objfoldedges(i).geometry.getcircledata(Mittepunkt:=dblcenter, Achsvektor:=dblnormal, Radius:=dblradius)

andere
call getarcdata(objfoldedges(i), true, dblcenter, dblnormal, dblstartpoint, dblendpoint, _
dblstartangle, dblsweepangle, dblmajoraxis, dblradius)

' den Startwinkel ändern, so dass er auf der Hauptachsenrichtung basiert. denn wir sind nur
"betreffend den Bogen in 2d Raum an der x-y Stelle sollte der Startwinkel relativ sein
' auf die x-Achse statt.
dblorigin(1) = 0
dblorigin(2) = 0
dblstartangle = dblstartangle + Lager(dblorigin, dblmajoraxis)

Ende
Fall igellipse, igbsplinecurve

' Schlag ellipsen und bspline Kurven.
rufen objfoldedges(i).getstrokedata(Toleranz:=0.001, Hubzähler:=Strokecount, Punkte:=Strokepoints, params:=strokeparams)

Ende wählen
Nächste

auf Fehlerwiederaufnahme
props("perimetro").value = Format(gesamtlänge, "0.000") & " m"
wenn er
props.add "perimetro", Format(gesamtlänge, "0.000") & " m"
Ende

Endteil
 
Ich werde Ihnen meine Berechnung unterschreiben. Du musst alles aufräumen, was du nicht brauchst.
(Ich habe bereits Berichte und Berechnungszahl von Falten entfernt, sonst war es zu lang und schickte es nicht an mich)

Ich füge das hinzu, um die Anzahl der sinkenden Punkte zu berechnen, die Sie benötigen, um die Anzahl der "Loop" zu zählen
Tut mir leid, ich bin spät in der Antwort, aber gestern war ein ziemlich voller Tag. In der Zwischenzeit danke ich Ihnen, ich stelle mich sofort zur Arbeit, um ein Skript zu machen (ich weiß nicht, wie man vb, aber ich weiß genug Sprache) hofft, erfolgreich zu sein.

p.s.
weil der Neugier gandt mir einen Fehler zurückgibt, da die kompilierte Version den falschen Weg hat. Jedenfalls habe ich etwas von der Vb-Liste.

danke nochmals für die Verfügbarkeit.
 
Ich bringe dich in meine Berechnungsunterlage.
Update und Lösung:
nach einer Reihe von Versuchen konnte ich Ihr Makro nicht zurück zu vbs bringen ("dim. als...", um das Skript nicht mag und manchmal ist unverzichtbar)
Allerdings Ich löste eine Skizze in die entwickelte Probenahme, auf der ich alle Schnittprofile einschließte. dann erscheint der Bereich dieser Skizze "magicly" in den Variablen den Umfang. an diesem Punkt erholte ich den Wert leicht und einmal gezählt die Waschbecken, die ich bei einer Lösung ankam mehr als akzeptabel mit einem Skript ziemlich einfach.
 
Prämisse:
der Wert, den Sie suchen, ist nicht direkt in den Dateieigenschaften verfügbar, aber Sie müssen es berechnen.
Hallo an alle,
ist nicht genau, wie der Wert bereit ist, weil, wie zu Recht von be_on_edge gesagt, der Wert nicht in einer Datei-Eigenschaft geschrieben wird, aber mit diesem Code habe ich es geschafft, auf einer csv-Datei die in der Kostenplantabelle enthaltenen Werte zu extrapolieren.
Code:
 private sub designcost(sender als Objekt, z.B. als Eventargs) handles button1.click
objapp = getobject(, "solidedge.application")
objdoc = objapp.activedocument
dim filecsv = "c:\test_costo\pippo.csv"
rufen objdoc.exportdesigncosttocsv(objdoc.fullname, filecsv, false)

Endteil
von ihnen einfach gehen, um diese Datei zu lesen und der Schnittumfang ist leicht wiederherstellbar. dann fehlt das Absinken, aber für diejenigen nur zählen die Schleifen des Modells.
Vielleicht kann jemand praktisch kommen.
 
Bye to all,
Ich würde ein Makro benötigen, das Teile oder Blätter innerhalb eines Satzes beträgt.
Hat jemand so etwas?
Danke!
 
Bye to all,
Ich würde ein Makro benötigen, das Teile oder Blätter innerhalb eines Satzes beträgt.
Hat jemand so etwas?
Danke!
Du bist ein wenig generisch. .
das Einfügen kann mit dem Pfad zur Datei und den Koordinaten (x,y,z,rotazionex,rotazione,y,rotazionez) definiert werden und gibt dann eine Bindung der Platzierung auf dem Boden.
Wenn Sie ein Makro finden, das Ihre Stücke selbst bindet, sagen Sie es mir.

hier ist die Basis, Einsatz (add), Position (move), Rad (rotieren). Sie machen einen Würfel von rubik:-dLink zur Seite
 
Ich hatte gehofft, dass du noch da bist!
Ich bin generisch, weil ich ein generisches Set brauche. Ich erkläre Ihnen...
Ich habe viele Seiten der Familie. Ich muss sie in einen Satz stellen, auch auf ungeordnete Weise, um dann eine Tabelle zu erstellen, um mit allen Informationen der einzelnen Teile zu exportieren.
Danke für den Link, jetzt schaue ich ihn an!
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben