Community
AutoCAD Produktfamilie - Deutsch
Das Forum für alle Fragen zu AutoCAD, LT, Architecture, Electrical, Map 3D, Mechanical, MEP, Plant 3D, Raster Design, Web App, sowie Autodesk Civil 3D und Advance Steel.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

LSP-Befehl funktioniert nicht mehr

1 ANTWORT 1
Antworten
Nachricht 1 von 2
s.huber
151 Aufrufe, 1 Antwort

LSP-Befehl funktioniert nicht mehr

Hallo Leute,

 

ich sollte eine LSP-Routine von einem EX-Kollegen wiedereinmal anwnden, leider bekomme ich den Fehler:

Fehler: no function definition: SSLIST

 

Kann mir jemand helfen:

Habe nun ACAD Civil 3D 2021 64bit

 

Hier der Code:

;
(defun c:mo-pkan ();/ pk-alt pk-neu lang element)
;
(princ "\nÜbernimmt die Blockattributen aus dem alten in den neuen RGP-Plankopf.")

(prompt "\nAlten Plankopf -projekt_ohne_beilage- oder -PROJEKT_MIT_BEILAGE- oder -RG_Kopf- oder -kopf- anklicken: ")
;(SETQ pk-alt (SSGET (LIST (CONS 0 "INSERT") (CONS 2 "projekt_ohne_beilage"))))
;(setq pk-alt (SSGET (SSLIST '((-4 . "<AND")
(setq pk-alt (SSLIST (ssget '((-4 . "<AND")
(0 . "INSERT")
(-4 . "<OR")
(2 . "projekt_ohne_beilage")
(2 . "PROJEKT_MIT_BEILAGE")
(2 . "RG_Kopf")
(2 . "kopf")
(-4 . "OR>")
(-4 . "AND>") ))))
(setq element pk-alt)
(prompt "\nNeuen Plankopf -RGP_Plankopf- anklicken: ")
(SETQ pk-neu (SSGET (LIST (CONS 0 "INSERT") (CONS 2 "RGP_Plankopf"))))
;(setq lang (sslength pk-alt))
(setq lang (sslength pk-neu))
(setq lang (- lang 1))
(setq element1 (ssname pk-neu lang))
;(setq element pk-alt)
(repeat 1
;(while element1
;(setq pka (car (entsel "\nAlten Plankopf -projekt_ohne_beilage- anklicken: ")))

;;(SETQ a1 (CDR (GET_ATTRIBUT (SETQ element (SSNAME pk-alt lang)) "1" )))
(SETQ a1 (CDR (GET_ATTRIBUT (car pk-alt) "1" ))
a2-1 (CDR (GET_ATTRIBUT (car pk-alt) "2-1" ))
a2-2 (CDR (GET_ATTRIBUT (car pk-alt) "2-2" ))
a2-3 (CDR (GET_ATTRIBUT (car pk-alt) "2-3" ))
a3-1 (CDR (GET_ATTRIBUT (car pk-alt) "3-1" ))
a3-2 (CDR (GET_ATTRIBUT (car pk-alt) "3-2" ))
a3-3 (CDR (GET_ATTRIBUT (car pk-alt) "3-3" ))
a4-1 (CDR (GET_ATTRIBUT (car pk-alt) "4-1" ))
a4-2 (CDR (GET_ATTRIBUT (car pk-alt) "4-2" ))
a4-3 (CDR (GET_ATTRIBUT (car pk-alt) "4-3" ))
a4-4 (CDR (GET_ATTRIBUT (car pk-alt) "4-4" ))
a5-1 (CDR (GET_ATTRIBUT (car pk-alt) "5-1" ))
a5-2 (CDR (GET_ATTRIBUT (car pk-alt) "5-2" ))
a5-3 (CDR (GET_ATTRIBUT (car pk-alt) "5-3" ))
a5-4 (CDR (GET_ATTRIBUT (car pk-alt) "5-4" ))
a6-1 (CDR (GET_ATTRIBUT (car pk-alt) "6-1" ))
a6-2 (CDR (GET_ATTRIBUT (car pk-alt) "6-2" ))
aKR (CDR (GET_ATTRIBUT (car pk-alt) "KUERZEL" ))
aL (CDR (GET_ATTRIBUT (car pk-alt) "L" ))
aH (CDR (GET_ATTRIBUT (car pk-alt) "H" ))
)
(if (CDR (GET_ATTRIBUT (car pk-alt) "F"))
(SETQ aF (CDR (GET_ATTRIBUT (car pk-alt) "F" )))
;
(SETQ aF (CDR (GET_ATTRIBUT (car pk-alt) "A" )))
)
;
(setq pk-neu1 (ssname pk-neu 0))
(setq pkn (vlax-ename->vla-object pk-neu1))
;
(foreach itm (vlax-invoke pkn 'GetAttributes)
(setq itm-tag (vla-get-tagstring itm))
(cond
((eq itm-tag "1") (vla-put-textstring itm a1))
((eq itm-tag "2-1") (vla-put-textstring itm a2-1))
((eq itm-tag "2-2") (vla-put-textstring itm a2-2))
((eq itm-tag "2-3") (vla-put-textstring itm a2-3))
((eq itm-tag "3-1") (vla-put-textstring itm a3-1))
((eq itm-tag "3-2") (vla-put-textstring itm a3-2))
((eq itm-tag "3-3") (vla-put-textstring itm a3-3))
((eq itm-tag "3-4") (vla-put-textstring itm a3-4))
((eq itm-tag "4-1") (vla-put-textstring itm a4-1))
((eq itm-tag "4-2") (vla-put-textstring itm a4-2))
((eq itm-tag "4-3") (vla-put-textstring itm a4-3))
((eq itm-tag "4-4") (vla-put-textstring itm a4-4))
((eq itm-tag "5-1") (vla-put-textstring itm a5-1))
((eq itm-tag "5-2") (vla-put-textstring itm a5-2))
((eq itm-tag "5-3") (vla-put-textstring itm a5-3))
((eq itm-tag "5-4") (vla-put-textstring itm a5-4))
((eq itm-tag "6-1") (vla-put-textstring itm a6-1))
((eq itm-tag "6-2") (vla-put-textstring itm a6-2))
((eq itm-tag "KUERZEL") (vla-put-textstring itm aKR))
((eq itm-tag "L") (vla-put-textstring itm aL))
((eq itm-tag "H") (vla-put-textstring itm aH))
((eq itm-tag "F") (vla-put-textstring itm aF))
)
)
(setq lang (- lang 1))
(setq element1 (ssname pk-neu lang))
)
;
(princ "\nPlankopf-Attribute übernommen.")
(princ)
)
;
;---------------------------------------------------------------
;
(DEFUN GET_ATTRIBUT (bename attribut / attwert beliste )
; gibt, wenn gefunden eine Liste im Format '(elementname . attributwert) zurück.
(SETQ attwert nil)
; gilt nur für insert mit attribute folgen -Flag
(SETQ beliste (ENTGET bename))
(IF (AND (= (CDR (ASSOC 0 beliste)) "INSERT")
(= (CDR (ASSOC 66 beliste)) 1)
)
(PROGN
(WHILE (AND (/= (CDR (ASSOC 0 (SETQ Beliste (ENTGET (SETQ bename (ENTNEXT bename))))))
"SEQEND"
)
(/= (STRCASE (CDR (ASSOC 2 beliste))) attribut)
)
)
(SETQ attwert (CDR (ASSOC 1 beliste)))
)
)
(IF attwert
(CONS bename attwert)
)
)

 

 

Gruß

Stefan

1 ANTWORT 1
Nachricht 2 von 2
cadffm
als Antwort auf: s.huber

Hi,

 

Du hast einfach nicht alle notwendigen Dateien geladen,

eine lsp fas oder vlx Datei enthält einen code in dem folgendes vorkommt:

defun SSLIST

und genau diese Datei hast du nicht geladen.

 

Ich könnte jetzt etwas erfinden wie

(defun SSLIST (AWS)
(cond
((= 'PICKSET (type AWS))(vl-remove-if 'listp (mapcar 'cadr (ssnamex AWS))))
((= 'ENAME (type AWS))(list AWS))
)
)

 

was du an den Anfang dieser Datei (deren Inhalt du hier zeigst) einfaügen kannst,

da wir aber "euern Laden" nicht kennen ist meine Empfehlung:

Such die Datei in der

(defun sslist

geschrieben steht und sorge dafür das diese ebenfalls geladen ist.

 

Warum: Wir wissen nicht was da noch alles drinsteht und ggf. an anderer Stelle benötigt wird,

deswegen empfehle ich diesen Weg zu gehen.

 

 

Gruß Sebastian

- Sebastian -

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen  

Autodesk Design & Make Report