_

błąd zły typ argumentu lselsetp nil

Forum ogólne. Miejsce na pierwsze pytania w karierze projektanta. Wszelkie tematy, których nie można zakwalifikować do jednej z poniższych grup.

błąd zły typ argumentu lselsetp nil

Postprzez jb71 » lip 05, 2022 11:10

Dzień dobry
Czy ktoś może wytłumaczyć i znaleźć problem w poniższym lispie. Na platformie Bricscad działa poprawnie na oryginalnym Autocadzie wyskakuje błąd "zły typ argumentu lselsetp nil"


(defun c:s3(/ pt1 pt2 sset2 obj1 lst1 i1 coords1 i2 x )
(setq cmdecho (getvar "CmdEcho"))
(setvar "cmdecho" 0)
s3 (while
(setq pt1 (getpoint "\nWprowadz pierwszy punkt PLUS: "))
(setq pt2 (getpoint pt1 "\nWprowadz drugi punkt MINUS: "))
(setq blockname1 "Plus")
(setq blockname2 "Minus")
(command "_pline" pt1 pt2 "" )
;(command "_select" "?" "os")

(progn
(setq obj1 nil)
;(prompt "\nSelect Polyline (LW): ")
(while (= obj1 nil)
(setq obj1 (ssget "_:S+."))
(if (= obj1 nil)
;(princ "\nWrong object");then
(if (> (sslength obj1) 1);else
(progn
;(princ "\nSelect only one object")(princ)
(setq obj1 nil)
);progn
(if (not (member (vlax-get (vlax-ename->vla-object (ssname obj1 0) ) 'ObjectName) (list "AcDbPolyline" ) ) );not
(progn
;(princ "\nSelect only one object")(princ)
(setq obj1 nil)
);progn
);if
);if
);end if
);end while

(setq obj1 (ssname obj1 0))
;-----------------------------------------
(setq lst1 (list) )
(setq coords1 (vlax-get (vlax-ename->vla-object obj1 ) 'Coordinates) )
(setq i1 0 )
(repeat (/ (length coords1) 2)
(setq lst1 (cons (list (nth i1 coords1) ( nth (1+ i1) coords1) ) lst1 ) )
(setq i1 (+ 2 i1) )
)repeat
(setq sset2 (ssget "_CP" lst1) )

(ssdel obj1 sset2)
(setq i2 0)
(repeat (sslength sset2)
(vlax-invoke-method (vlax-ename->vla-object (ssname sset2 i2)) 'Highlight :vlax-true)
(setq i2 (1+ i2))
(setq x (sslength sset2 )); linia dopisana
(setq panele x ) ;linia dopisana
)
(sssetfirst nil)
(sssetfirst nil sset2)

(princ "\nString składa się z ")
(princ panele )
(princ " paneli") ; zapis (itoa (sslength sset2)) zastąpiono panele
(command "_c")
(princ))

(command "_pline" pt1 pt2 "" )
(command "_insert" "Plus" pt1 "1" "1" "0")
(command "_insert" "Minus" pt2 "1" "1" "0")
(princ)
;(setq pt1 (getpoint "wprowadz punkt pierwszy"))
;(setq pt2 (getpoint "wprowadz punkt drugi"))
(setq x2 (car pt2))
(setq x1 (car pt1))
(setq dx (/ (- x2 x1) 2 ))
(setq y1 (cadr pt1))
(setq y (+ y1 0.35))
(setq x (+ x1 dx))
(print)
(setq pkt (strcat (rtos x) "," (rtos y)))
(setq opisINV (getstring "podaj nr inwertera : " ))
(setq opisSTR (getstring "podaj nr stringu : " ))
(print)
(command "_text" "Ś" pkt "1.2" "0" (strcat "INV"opisINV"-"opisSTR))
(print))


)

Pozdrawiam
jb71
jb71
 
Posty: 6
Dołączył(a): cze 17, 2022 08:37

Powrót do Pytania studentów, laików i początkujących

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników

cron