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

Home

  • Ersteller Ersteller gigi.iacu
  • Erstellt am Erstellt am

gigi.iacu

Guest
ilogic macro numeri progressivi: ho creato una regola su ilogic che al click del mouse mi posiziona un numero progressivo. però, a random, esce dalla macro. ne vorrei capire il perchè.


allego programma. si basa su un neglio.idw.
ho creato una nota sugli editor dei testi chiamata premontaggio ( ostyle = odoc.stylesmanager.textstyles.item("premontaggio"))

ho creato una variabile personalizzata chiamata premontaggio che va aprendere il valore attraverso un modulo. sulla macro sotto trovate anche un input box con apice iniziale.

Teil Haupt()
'parameter.updateafterchange = true
dim n_premontaggio als ganze Zahl

dim ointeraction als Interaktionsereignisse
ointeraction = thisapplication.commandmanager.createinteractionevents

dim omouse als Mausevents
omouse = ointeraction.mouseevents
addhandler omouse.onmouseclick, Adresse von omouse_onmousedown

ointeraction.start
'parameter("premontaggio") = inputbox("inserire numero premontaggio", "premontaggio", parameter("premontaggio"))

Endteil

sub omouse_onmousedown(button als mousebuttonenum, Shishas als Shiftstateenum, Modellposition als Punkt, Ansicht als Punkt2d, Ansicht als Erfinder.view)
Parameter.updateafterchange = true

dim odrawdoc als Zeichnungsdokument
odrawdoc = thisapplication.activedocument

' einen Hinweis auf das aktive Blatt setzen.
dim oactivesheet als Blatt
oactivesheet = odrawdoc.activesheet

' einen Hinweis auf das allgemeine Anmerkungsobjekt setzen
Allgemeine Anmerkungen als allgemeine Anmerkungen
ogeneralnotes = oactivesheet.drawingnotes.generalnotes

dim otg als Transientgeometrie
otg = thisapplication.transientgeometry

' Text mit einfachem String als Eingabe erstellen. da dies nicht benutzt
' jeder Text überschreibt, es wird im aktiven Text-Stil standardmäßig.
dim stext als string
"messagebox.show(1,1)
Allgemeine Anmerkung

' erstellen Sie eine Reihe von Notizen, die entlang der linken nummeriert und ausgerichtet sind.
dim dykoord als doppelt
dim dxcoord als doppelt

dykoord = modelposition.y
dxcoord = modelposition.x

dim ostyle als textstyle
dim odoc als Zeichnungsdokument
odoc = thisapplication.activedocument
ostyle = odoc.stylesmanager.textstyles.item("premontaggio")
"messagebox.show(2,2)
ogeneralnote = ogeneralnotes.addfitted(otg.createpoint2d(dxcoord, dycoord), parameter("premontaggio"), ostyle)

'messagebox.show(3,3)
Parameter("premontaggio") = Parameter("premontaggio") + 1
"messagebox.show(4,4)
Endteil
 
Zuletzt bearbeitet:
risolto dichiarando le variabili public.

syntaxeditor code snippetpublic modul classefl
Public Ointeraction als Interaktionsereignisse
Public omouse als Mausevents
odrawdoc als Zeichnungsdokument
Public oactivesheet als Blatt
Allgemeine Anmerkungen als allgemeine Anmerkungen
Public otg als Transientgeometrie
Public stext als String
Allgemeine Anmerkung
öffentlich-dykoord als doppelt
Public dxcoord als Doppel
Public Ostyle als Textstil
odoc als Zeichnungsdokument
Endmodul


Teil Haupt()
ointeraction = thisapplication.commandmanager.createinteractionevents
omouse = ointeraction.mouseevents
addhandler omouse.onmouseclick, Adresse von omouse_onmousedown
ointeraction.start

Endteil

sub omouse_onmousedown(button als mousebuttonenum, Shishas als Shiftstateenum, Modellposition als Punkt, Ansicht als Punkt2d, Ansicht als Erfinder.view)
Parameter.updateafterchange = true

odrawdoc = thisapplication.activedocument

' einen Hinweis auf das aktive Blatt setzen.

oactivesheet = odrawdoc.activesheet

' einen Hinweis auf das allgemeine Anmerkungsobjekt setzen

ogeneralnotes = oactivesheet.drawingnotes.generalnotes


otg = thisapplication.transientgeometry

dykoord = modelposition.y
dxcoord = modelposition.x

odoc = thisapplication.activedocument
ostyle = odoc.stylesmanager.textstyles.item("premontaggio")

ogeneralnote = ogeneralnotes.addfitted(otg.createpoint2d(dxcoord, dycoord), parameter("premontaggio"), ostyle)

Parameter("premontaggio") = Parameter("premontaggio") + 1
Endteil
 
Ciao % 1,
Was ist Ihre Erfahrung Basis auf der Verwaltung von ilogics Code (Basis, Zwischenprodukt, Experte)?

Ich habe einige "Bests" zum ursprünglichen ilogic Code gemacht, eine grundlegende Fehlerkontrolle hinzugefügt, die Verwendung von öffentlichen Variablen entfernt ( meiner Meinung nach nicht notwendig) und getestet mit der neuesten Version von Erfinder(2024).
Code:
Teil Haupt()
dim ointeraction als interaktionevents = thisapplication.commandmanager.createinteractionevents
dim omouse als mouseevents = ointeraction.mouseevents
addhandler omouse.onmouseclick, Adresse von omouse_onmousedown
Ointeraction. Start
Endteil

private sub omouse_onmousedown(button als mousebuttonenum, Shishas als Shiftstateenum, Modellposition als Punkt, Ansicht als Punkt2d, Ansicht als Erfinder.view)
Versuch
odoc = thisapplication.activedocument
wenn thisapplication.activedocument.documenttype.equals(documenttypeenum.kdrawingdocumentobject) dann
progressivo = parameter.param("premontaggio")

opoint = thisapplication.transientgeometry.createpoint2d(modelposition.x, modelposition.y)

ostyle = odoc.stylesmanager.textstyles.item(progressivo.name)

call odoc.activesheet.drawingnotes.generalnotes.addfitted(opoint, progressivo.value, ostyle)

Parameter.updateafterchange = true

progressivo.value = progressivo.value + 1
Ende
Fang err als System. Ausnahme
Nachrichtbox.show(err.message)
Ende Versuch
Endteil
 
Ciao % 1,
Was ist Ihre Erfahrung Basis auf der Verwaltung von ilogics Code (Basis, Zwischenprodukt, Experte)?

Ich habe einige "Bests" zum ursprünglichen ilogic Code gemacht, eine grundlegende Fehlerkontrolle hinzugefügt, die Verwendung von öffentlichen Variablen entfernt ( meiner Meinung nach nicht notwendig) und getestet mit der neuesten Version von Erfinder(2024).
Code:
Teil Haupt()
dim ointeraction als interaktionevents = thisapplication.commandmanager.createinteractionevents
dim omouse als mouseevents = ointeraction.mouseevents
addhandler omouse.onmouseclick, Adresse von omouse_onmousedown
Ointeraction. Start
Endteil

private sub omouse_onmousedown(button als mousebuttonenum, Shishas als Shiftstateenum, Modellposition als Punkt, Ansicht als Punkt2d, Ansicht als Erfinder.view)
Versuch
odoc = thisapplication.activedocument
wenn thisapplication.activedocument.documenttype.equals(documenttypeenum.kdrawingdocumentobject) dann
progressivo = parameter.param("premontaggio")

opoint = thisapplication.transientgeometry.createpoint2d(modelposition.x, modelposition.y)

ostyle = odoc.stylesmanager.textstyles.item(progressivo.name)

call odoc.activesheet.drawingnotes.generalnotes.addfitted(opoint, progressivo.value, ostyle)

Parameter.updateafterchange = true

progressivo.value = progressivo.value + 1
Ende
Fang err als System. Ausnahme
Nachrichtbox.show(err.message)
Ende Versuch
Endteil
Hi, ich würde Base sagen. So fügen Sie eine i-logische Regel hinzu und lassen Sie es gehen. Ich bekomme einen Fehler, der besagt, dass er den Parameter nicht mit dem Namen "Premontage" findet. aus dem, was ich verstanden habe, muss ich es dem Stil der Editoren hinzufügen. Ich ersetzte Vormontage im Code mit einem der Stile, die bereits in meinem Editor vorhanden sind. aber es funktioniert sowieso nicht. Wo ist mein Fehler?
 
im Originalcode haben Stil und Parameter den gleichen Namen ("Vormontage"), zusätzlich zum Stil muss der Parameter vorhanden sein.
bei kleiner Änderung kann der Parameter mit Regelausführung hinzugefügt werden.
 

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