|
AutoCAD ARX Object : C#.net Objekte als gewählt markieren
alfred neswadba am 30.06.2009 um 16:04 Uhr (0)
Großartig, dann hab ich nur einen Schritt zu wenig weit gedacht. Einen Weg über Lisp hätten wir ja schon gehabt, nur dass ich eben nicht jedes Element einzeln mit SendCommand gewählt hätte , aber dass grundsätzlich das ImpliedSelectionSet sich über eine definierte LispFunktion modifizieren läßt und dieses auch in der laufenden Funktion dann als selektiert wahrnimmt, das ist schon brauchbar.THX for the info, - alfred -------------------www.hollaus.at
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : C#.net Regular Expressions
fuchsi am 30.07.2009 um 13:10 Uhr (0)
Kann mir irgendwer die RegularExpressions einfach erklären?In Lisp habe ich z.B.: wenn ich einen String nur aus Buchstaben wollte es so gemacht(setq RegEx (vlax-create-object "vbscript.regexp"))(vlax-put regex "Global" :vlax-true)(vlax-put regex "Pattern" "[^a-zA-Z]")(setq AlleBuchstaben (vlax-invoke regex "Replace" "dhuzt8n94nt934ghnxz3489zn89v8nxdz8934nz9" ""));- dhuztnntghnxzznvnxdznzaber in der RegularExpressions Klasse in .net komme ich nciht wirklich weiter.was zu Teufel machen diese Blöden Funktion ...
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Letzter platzierter Block
Silvan01 am 11.08.2009 um 08:59 Uhr (0)
Hallo Alfred,die Erklärung ist eig. ziemlich einfach. Ich platziere einen Block grafisch mit einer Lisp (Hab den Block am Mauszeiger hängen) wie hier beschrieben. Nach der Platzierung möchte ich testen, ob der Block innerhalb eines Umrkeises ist.GrüßeSilvan
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Letzter platzierter Block
Silvan01 am 11.08.2009 um 09:53 Uhr (0)
Hallo Zusammen,@Cadmium ja da hast du schon Recht. Ich hab ursprünglich in VBA programmiert. Hab dort aber keine Lösung zu dem Grafischen Platzieren eines Blockes gefunden. Die Lisp Lösung erschien mir die einfachste und war bisher auch sehr zufrieden damit.Jetzt programmiere ich dieses Projekt allerdings von VBA auf VB.Net um.Ich wollte das einfach kurz und schnell in VB.Net in mein Projekt einbinden, hat allerdings nicht so geklappt daher dieser Topic. Ich hab leider auch nicht so das Know-How da ich Anf ...
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Letzter platzierter Block
alfred neswadba am 11.08.2009 um 09:23 Uhr (0)
Hi,dann initialisiere einen EventHandler, der ObjectAdded überwacht, bevor Du das Lisp startest; gleichzeitig einen EventHandler für CommandEnded.Kommt zweiter Event, kannst Du die ObjectIDs (die Du mit ..ObjectAdded gesammelt hast) durchgehen und daraufhin prüfen.Wobei alles leichter würde, wenn Du den Block gleich mit dotNET plazierst? Aber es wird wohl Gründe geben, wieso wohl in Deinem Fall nicht.- alfred -------------------www.hollaus.at
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Letzter platzierter Block
CADmium am 11.08.2009 um 09:30 Uhr (0)
wenn du eh schon Lisp nutzt, dann nimm doch die dort implementierte Funktion entlast und hole dir dann die OBJID ect. oder mach die Platzierung und die Auswertung komplett in Lisp. Was machtr das eigentlich für Sinn ein Projekt in verschiedenen Programmiersprachen zu realisieren ?Oder mach die Auswetrtsachen ect, in .NET und stell mit netload usw. die Funktion in Lisp zur Vefügung. ------------------ - Thomas -"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälft ...
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Prüfen welche Programme geladen sind
Gloem am 07.09.2009 um 18:58 Uhr (0)
Hallo,während AutoCAD läuft kann ich über Extras-AutoLisp-Anwendungen überprüfen welche Lisp- und ARX-Programme geladen sind. Kann ich diese Liste auch per .Net abfragen?
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Prüfen welche Programme geladen sind
alfred neswadba am 07.09.2009 um 21:30 Uhr (0)
Hi,also alles zusammen mit einem Modul fällt mir jetzt mal nicht ein, d.h. es wird wohl darauf hinauslaufen müssen, dass Du Typ für Typ überprüfst.Hier mal für ARX (Verweise zu den *mdg*.dll sowie zu den Standard COM-Verweisen ist dabei notwendig):Code:notwendig im Header:Imports Autodesk.AutoCADund dann in der Prozedur:Dim tAcadDoc as ApplicationServices.Document = ApplicationServices.Application.DocumentManager.MdiActiveDocumentdann auf COM-basiertes Application-Element zugreifenDim tAcadAppCOM as Intero ...
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Prüfen welche Programme geladen sind
Gloem am 08.09.2009 um 18:46 Uhr (0)
Das untere Beispiel mit den Lisp-Routinen hört sich sehr gut an. Nur leider kann ich auf die Klasse Autodesk.AutoCAD.Internal nicht zugreifen, die scheint bei mir nicht vorhanden zu sein. Brauch ich dafür noch einen extra Verweis.Ich hab sowieso irgendwie den Eindruck das das alles irgendwie nicht richtig installiert ist, da mir die F1-Hilfe für die AutoCAD-Objekte fehlt
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Prüfen welche Programme geladen sind
alfred neswadba am 08.09.2009 um 19:00 Uhr (0)
Hi,hast Du VisualStudio 2005 oder 2008? Mit 2005 wird das auch in der Hilfe nicht so funktionieren wie es z.B. in VBA gemacht wird (auf Objektdeklaration - Typ Maus draufstellen und F1 ).Mit VS2008 und ObjectARX-Kit 2010 gibts ein eigenes EXE, das erst die Help-Files so im VS hinein-konfiguriert, dass Du auch (zum Großteil) zu der AutoCAD-Objekt-Hilfe kommst. Zugegeben, das hab ich mit älteren ObjectARX-Kits nie gemacht aus Sorge, dass die VS-Installation darunter leidet. Die Help-Files hab ich im Windows ...
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Prüfen welche Programme geladen sind
Gloem am 08.09.2009 um 19:54 Uhr (0)
Das Einbinden der Internal.dll hat ohne Probleme geklappt, allerdings bekomm ich den Aufruf nicht richtig hin. Wenn ich bspw. eine Lisp-Routine habe die mit txr gestartet wird und auch funktioniert liefert er mir mit dem Code keine MessageboxCode:If (Autodesk.AutoCAD.Internal.Utils.IsLispCommandDefined("txr")) Then MsgBox("geladen") End If
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Autocad resetten ?
alfred neswadba am 03.09.2009 um 15:26 Uhr (0)
Hi,gratuliere mal zu 1000 Ein Reset von AutoCAD kenne ich nicht und wird wohl auch relativ schwer, denn:Du müsstest von allen Programmiersprachen aus alles erkennen, was offen ist und dann (geordnet) schliessen. Da musst Du durch Lisp genauso durch wie durch VBA, COM-basierte Applikationen, durch die managed-Applications bis hin zu C++ alloziierten Speicherbereichen von ARX-Modulen.Und die Gefahr, dass dann ev. irgendwelche Reaktoren und/oder Events noch auf diese Bereiche hinzeigen und daher das ganze Au ...
|
In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Prüfen welche Programme geladen sind
alfred neswadba am 12.09.2009 um 14:00 Uhr (0)
Hi,zu Deinen Statements:A) (defun test(/)(print "test))B) IIf(Utils.IsLispCommandDefined("C:test")zu A) da fehlt ein Anführungszeichen nach dem Wort testzu A+B) wenn die Lispfunktion ohne C: definiert ist, dann darfst Du auch die Prüfung nicht MIT C: machen.Zu welchem Zeitpunkt (in bezug auf AutoCAD-Start) erstellst Du das Icon? Zuerst war Deine Aussage (so habe ich diese interpretiert), dass die Funktion xxx.IsLispCommandDefined von einem händischen Aufruf initiiert wird. Icons für die Benutzeroberfläche ...
|
In das Form AutoCAD ARX Object wechseln |