gruzin Opublikowano 17 Sierpnia 2011 Zgłoś Opublikowano 17 Sierpnia 2011 Zastanawiam się jak stworzyć w ZWCADZie bloki anonimowe. Do Acada jest odpowiedni skrypt ale nie można go podejrzeć: http://kojacek.republika.pl/mab.html Cytuj
kruszynski Opublikowano 17 Sierpnia 2011 Zgłoś Opublikowano 17 Sierpnia 2011 W LISP za przykład może posłużyć : (setq defnition(entmake (list (cons 0 "BLOCK") (cons 100 "AcDbEntity")(cons 100 "AcDbBlockBegin")(cons 67 0)(cons 8 "0")(cons 70 0)(cons 10 (list 0.0 0.0 0.0))(cons 2 "*Z")(cons 1 "")))) (setq LiniaDef(entmake (list '(0 . "LINE") '(100 . "AcDbEntity") '(100 . "AcDbLine")(cons 10 (list 0 0 0))(cons 11 (list 100 120 0))))) (setq BezNazwa(entmake '((0 . "ENDBLK")))) (setq Insertion(entmake(setq naglowek (list '(0 . "INSERT") '(100 . "AcDbEntity")'(100 . "AcDbBlockReference") (cons 2 BezNazwa) (cons 10 (getpoint)) (cons 50 0) '(66 . 1) ) ))) (entmake (quote((0 ."SEQEND")))) Cytuj
Jason Opublikowano 18 Sierpnia 2011 Zgłoś Opublikowano 18 Sierpnia 2011 probuj tego j. MakeAnonymousBlock.zip Cytuj
gruzin Opublikowano 19 Sierpnia 2011 Autor Zgłoś Opublikowano 19 Sierpnia 2011 Działa łądnie ale tylko w Au.. (programie konkurencyjnym). W ZWCadzie wyskakuje błąd: error: *Error*(VLA-ADD (VLA-GET-BLOCKS DOC) (VLAX-3D-POINT POINT) NAME) (SETQ NAME# (VLA-ADD (VLA-GET-BLOCKS DOC) (VLAX-3D-POINT POINT) NAME)) ((LAMBDA ( ) (VLA-COPYOBJECTS DOC )) (SETQ NAME# (VLA-ADD (VLA-GET-BLOCKS DOC) (VLAX-3D-POINT POINT) NAME)) (VLAX-SAFEARRAY-FILL (VLAX-MAKE-SAFEARRAY VLAX-VBOBJECT (CONS 0 (1- (LENGTH SS#)))) SS#)) (KR:BLK_MAKEBLOCKVLA (TRANS BP 1 0) "*U" (SETQ SS# (KR:SSX_SS->VLA SS)) (KR:ACX_ADOC)) (SETQ BN# (KR:BLK_MAKEBLOCKVLA (TRANS BP 1 0) "*U" (SETQ SS# (KR:SSX_SS->VLA SS)) (KR:ACX_ADOC))) (PROGN (SETQ ZD (TRANS (QUOTE (0 0 1)) 1 0 T)) (SETQ BN# (KR:BLK_MAKEBLOCKVLA (TRANS BP 1 0) "*U" (SETQ SS# (KR:SSX_SS->VLA SS)) (KR:ACX_ADOC))) (FOREACH S# (VLA-DELETE )) (KR:BLK_INSERTBLOCKVLA (TRANS BP 1 0) (SETQ BN (KR:BLK_GETBLOCKNAME BN#)) 1 1 1 0) (PRINC (STRCAT "\n>> Anonymous block " BN " created. <<"))) (IF (SETQ SS (SSGET)) (PROGN (SETQ ZD (TRANS (QUOTE (0 0 1)) 1 0 T)) (SETQ BN# (KR:BLK_MAKEBLOCKVLA (TRANS BP 1 0) "*U" (SETQ SS# (KR:SSX_SS->VLA SS)) (KR:ACX_ADOC))) (FOREACH S# (VLA-DELETE )) (KR:BLK_INSERTBLOCKVLA (TRANS BP 1 0) (SETQ BN (KR:BLK_GETBLOCKNAME BN#)) 1 1 1 0) (PRINC (STRCAT "\n>> Anonymous block " BN " created. <<"))) (PRINC "\n** Nothing selected **")) (PROGN (PRINC "\nSelect object to convert to block: ") (IF (SETQ SS (SSGET)) (PROGN (SETQ ZD (TRANS (QUOTE (0 0 1)) 1 0 T)) (SETQ BN# (KR:BLK_MAKEBLOCKVLA (TRANS BP 1 0) "*U" (SETQ SS# (KR:SSX_SS->VLA SS)) (KR:ACX_ADOC))) (FOREACH S# (VLA-DELETE )) (KR:BLK_INSERTBLOCKVLA (TRANS BP 1 0) (SETQ BN (KR:BLK_GETBLOCKNAME BN#)) 1 1 1 0) (PRINC (STRCAT "\n>> Anonymous block " BN " created. <<"))) (PRINC "\n** Nothing selected **"))) (IF (SETQ BP (GETPOINT "\nSelect insertion point for block: ")) (PROGN (PRINC "\nSelect object to convert to block: ") (IF (SETQ SS (SSGET)) (PROGN (SETQ ZD (TRANS (QUOTE (0 0 1)) 1 0 T)) (SETQ BN# (KR:BLK_MAKEBLOCKVLA (TRANS BP 1 0) "*U" (SETQ SS# (KR:SSX_SS->VLA SS)) (KR:ACX_ADOC))) (FOREACH S# (VLA-DELETE )) (KR:BLK_INSERTBLOCKVLA (TRANS BP 1 0) (SETQ BN (KR:BLK_GETBLOCKNAME BN#)) 1 1 1 0) (PRINC (STRCAT "\n>> Anonymous block " BN " created. <<"))) (PRINC "\n** Nothing selected **"))) (PRINC "\n** Invalid point **")) (C:MAB) Cytuj
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.