|
Lisp : Liste aller Entitätsnamen innerhalb der Blocktabelle
S.Langhammer am 31.01.2013 um 10:10 Uhr (0)
Ich schreibe das Lisp Script, damit die Firmensoftware die Informationen in einer bestimmten Form auslesen kann. Einen Import für DXF Dateien haben wir schon nur der is wohl Mistig. Die Datei, in die die Infos ausgespielt werden soll ist auch bloß temporär.Ich brauche den Elementnamen doch auch nur um, während die Zeichnung geöffnet ist, während das Lisp-Script läuft mit entget auf die Entität zugreifen zu können und dann beispielsweise mit (setq entLay(cdr(assoc 8 enlist))) den Layer oder mit entsprechend ...
|
In das Form Lisp wechseln |
 |
Lisp : Lisp und dynamische Blöcke
Dirk.B am 31.01.2013 um 14:44 Uhr (0)
Hallo Holger!Sorry, dass Bildchen SQL - Fehlermeldung ist natürlich falsch.Da habe ich das falsche Bildchen erwischt.Den Codeschnipsel hätte ich auch weglassen können, da er aus verschiedensten Tests stammt.Alles, was ich bislang ausprobiert habe, habe ich mir aus dem Forum zusammengesucht jedoch ohne Erfolg.Da ich schon lange nichts mehr mit Lisp programmiert habe, fehlt mir da auch die Basis, wie ich mit den dynamischen Blöcken umgehen kann bzw. muß um solch einen Block zu manipulieren.Wie müßte ich denn ...
|
In das Form Lisp wechseln |
|
Lisp : Lisp und dynamische Blöcke
Dirk.B am 31.01.2013 um 19:29 Uhr (0)
Hallo CADwiesel!Wenn ich das richtig verstehe, durhläufst Du mit der foreach - Schleife die BlockProperties nach a.Das ganze läuft über vla-GetDynamicBlockProperties.Wie aber setze ich dann den Wert "Sichtbarkeit1" Ø3 mm auf "Sichtbarkeit1" Ø4 mm um?Code:(set (vlax-ename-vla-object a) "Sichtbarkeit1" "Ø4 mm")Sorry, aber ich komm damit noch nicht klar Geht das denn überhaupt mit den Werten ändern?------------------GrußDirk
|
In das Form Lisp wechseln |
|
Lisp : Lisp und dynamische Blöcke
Dirk.B am 01.02.2013 um 10:52 Uhr (0)
Hallo zusammen!Ich hab noch mal was probiert aber leider ohne Erfolg.Code:(defun c:FT()(defun setProperty (vlaDynBlock sPropertyName rValue / vlaProperty) (foreach vlaProperty (vlax-safearray-list (vlax-variant-value (vla-GetDynamicBlockProperties vlaDynBlock))) (if (= (vla-get-PropertyName vlaProperty) sPropertyName) (vla-put-value vlaProperty (vlax-make-variant rValue)) ); end if ); end foreach); end defun(setProperty (vlax-ename-vla-object (car (entsel))) "Strecken1" 50.0))Wenn ich nun einen Block a ...
|
In das Form Lisp wechseln |
 |
Lisp : Lisp und dynamische Blöcke
Dirk.B am 01.02.2013 um 16:26 Uhr (0)
Hallo CADwiesel!Ich glaube es liegt an meinem dynamischen Block.Der hat einige Verschachtelungen.Nehme ich eine ganz einfachen Block mit nur einem Längenparameter"Abstand1", so funktioniert es.Code:(defun c:FT()(defun setProperty (vlaDynBlock sPropertyName rValue / vlaProperty) (foreach vlaProperty (vlax-safearray-list (vlax-variant-value (vla-GetDynamicBlockProperties vlaDynBlock))) (if (= (vla-get-PropertyName vlaProperty) sPropertyName) (vla-put-value vlaProperty (vlax-make-variant rValue)) ); end i ...
|
In das Form Lisp wechseln |
 |
Lisp : Lisp und dynamische Blöcke
Dirk.B am 31.01.2013 um 14:10 Uhr (0)
Hallo zusammen!Es ist schon ne weile her, dass ich mich mit Lisp beschäftigt habe.Aber ich habe noch ältere Tools im gebrauch die ich gerade leicht angepaßt habe,was z.B. aktuelle Schraffuren etc. anbelangt.In diesem Zusammenhang wollte ich die alten starren Schraubenblöcke gegen unseredynamischen Blöcke austauschen. Hab dazu auch verschiedene Beispiele hier im Forum gefunden. Aber leider komme ich danmit nicht wirklich klar.In den Anhängen seht ihr die Eigenschaften.Ich möchte nach dem einfügendes Blocks ...
|
In das Form Lisp wechseln |
|
Lisp : Lisp und dynamische Blöcke
CADwiesel am 31.01.2013 um 16:21 Uhr (0)
vielleicht helfen dir die Schagworte weiter:vla-GetDynamicBlockProperties vla-get-PropertyNamevla-get-AllowedValuesCode: (setq o (vlax-ename-vla-object (car (entsel "
Blockwahl")))) (foreach a (vlax-safearray-list (vlax-variant-value (vla-GetDynamicBlockProperties o))) (vla-get-PropertyName a) (vlax-safearray-list (vlax-variant-value (vla-get-AllowedValues a))) )------------------GrußCADwieselBesucht uns im CHAT
|
In das Form Lisp wechseln |
|
Lisp : Lisp und dynamische Blöcke
CADwiesel am 01.02.2013 um 12:38 Uhr (0)
und?NIL als Rückgabe ist doch schonmal Besser als eine Fehlermeldungwurde denn deine Property gesetzt?Wenn ja, wird dir die Rückgabe nil ja relativ egal sein, wenn nein, müsstest du mal deinen Code debuggen (vlide) und sehen, was da so pessiert..------------------GrußCADwieselBesucht uns im CHAT
|
In das Form Lisp wechseln |
|
Lisp : suche Lisp Programmierer
cadler123 am 02.02.2013 um 11:11 Uhr (0)
Hallo liebe LISP Gemeinde,ich habe Anwendungen in Excel die mit Autocad über ein LISP Programm verbunden sind. Zum Update des LISP Programme, die schon etwas älter sind, suche ich eine LIPS erfahrenen Programmierer, der im Rahmen einer freiberuflichen Auftragsprogrammierung innerhalb der nächsten 6 Monate Interesse daran hätte. Idealerweise im Umkreis von 150 km um München oder Salzburg. Eine weiter Entfernung ist aber überhaupt kein Ausschluss.gerne per email an "hansmaier12345@yahoo.de"Datum 02.02.2013Li ...
|
In das Form Lisp wechseln |
|
Lisp : Lisp und dynamische Blöcke
CAD-Huebner am 02.02.2013 um 16:13 Uhr (0)
Zitat:Original erstellt von Dirk.B:...Ich glaube es liegt an meinem dynamischen Block....;;;(setProperty (vlax-ename-vla-object (car (entsel))) "Sichbarkeit1" "Ø4,5mm verdeckt")...Ich hab mal die Blöcke angehangen.Nö Es liegt einfach daran, das du dich beim dynamischen Parameter vertippt hast.Ergänze mal das fehlende "t" in "Sichbarkeit1" und schon läuft dein Programm FT wie gewünscht.------------------Mit freundlichem GrußUdo Hübnerwww.CAD-Huebner.de
|
In das Form Lisp wechseln |
|
Lisp : Protect your Lisp
joern bosse am 08.02.2013 um 14:32 Uhr (0)
Hallo Dirk,Zitat:Ein interessante Punkt wäre, wie baut man eine Funktion auf, die nur von einem bestimmten Laufwerk (Suchpfad) gestartet werden kann ?Wo die Funktion gestartet wird muss egal sein (kann ja auch von vielen Rechnern gleichzeitig aus einem Netzwerkverzeichnis geladen werden).Vielmehr mußt Du dafür sorgen, daß auf dem lokalen Rechner eine eindeutige Kennung exisitert, z.B. in der Registry.------------------viele GrüßeJörnhttp://www.bosse-engineering.comBöschungsschraffen Youtube
|
In das Form Lisp wechseln |
|
Lisp : Protect your Lisp
cadplayer am 06.02.2013 um 12:24 Uhr (0)
Danke für Eure interessanten Beiträge, war mir echt hilfreich, zumal die Info mit der MACaddress mir neu war. Die Frage ist geklärt, wie ich Serialnummer, user ect abrufen kann. Sicherlich arbeiten alle erstellten Lisp programm compiliert im fas-format.Was ich will, das die Lisp-files nur unter Berücksichtigung der Sicherheitabfrage laufen, d.h für mich also, ich muss in jeden Lisp code die Sicherheitsabfrage einbauen.Mein Vorgang wär jetzt ein load O.g. Funktion zur Serialnummerabfrage, in der auch die be ...
|
In das Form Lisp wechseln |
|
Lisp : Protect your Lisp
Niggemann am 05.02.2013 um 23:24 Uhr (0)
Hallo Dirk,ich benutze seit ein paar Jahren den Zugriff auf die Autocad-Serial, war nurmal so zum testen. Klappt super, bei einem Nutzer habe ich auch mal die Verion mit abgefragt, ist bis heute kein Problem. Wird der Rechner getauscht und das vorhandene ACAD wieder installiert kann der Nutzer das Programm weiter nutzen, will er es mit einer anderen Autocad-Serial benutzen kommt ein "allert" mit dem Hinweis das das Programm nicht für seine ACAD-Version zugelassen ist mit den Hinweis auf meinem Namen mit Te ...
|
In das Form Lisp wechseln |