16
Bricscad / Bricscad V12 (Linux)
« on: 2012-02-23, 17:47:29 »
Released and promotion started!
http://cadsoft.lt/en/catalogue/cad-software/developer/bricsys
http://cadsoft.lt/en/catalogue/cad-software/developer/bricsys
2012.01.03 Išleista lietuviška Bricscad (Windows) versija
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
(defun c:test ( / a my-dbf)
(setq my-dbf (strcat (getvar "dwgprefix") "SQLiteLsp-test-" (getvar "program")"-" (rtos (atof (getvar "acadver")) 2 2) ".db"))
(if (findfile my-dbf)
(progn
(DSQL_OPEN my-dbf)
(DSQL_DML my-dbf "DELETE FROM Lines;")
(DSQL_CLOSE my-dbf)
(vl-file-delete my-dbf)
))
(DSQL_OPEN my-dbf)
(DSQL_QUERY my-dbf "PRAGMA foreign_keys = ON;")
(DSQL_QUERY my-dbf "PRAGMA foreign_keys;")
(DSQL_DML my-dbf "CREATE TABLE Lines (Id int, N int, Handle char(16), LineLength int, Color int, Layer char(255));")
(DSQL_CLOSE my-dbf)
(if (setq ss (ssget "_X"
'(
(0 . "LINE")
)
))
(progn
(setq n (sslength ss) which 0)
(DSQL_OPEN my-dbf)
(DSQL_DML my-dbf "BEGIN TRANSACTION;")
(DSQL_CMPSTMT my-dbf "INSERT INTO Lines VALUES (?, ?, ?, ?, ?, ?);")
(repeat n
(setq line (ssname ss which))
(DSQL_STMTBIND
which
0
(cdr (assoc 5 (entget line)))
(fix (distance (cdr (assoc 10 (entget line)))(cdr (assoc 11 (entget line)))))
(cdr (assoc 62 (entget line)))
(cdr (assoc 8 (entget line)))
)
(setq which (+ which 1))
)
(DSQL_DML my-dbf "COMMIT TRANSACTION;")
(DSQL_STMTFNL)
(DSQL_CLOSE my-dbf)
(setq which 0)
(DSQL_OPEN my-dbf)
(setq lst (DSQL_ASSOCQUERY my-dbf "SELECT DISTINCT Lines.LineLength, Lines.Color, Lines.Layer FROM Lines ORDER BY Lines.LineLength DESC, Lines.Color ASC;"))
(setq which_dif 1)
(foreach dif lst
(setq LineLength (cdr (assoc "LineLength" dif)) Color (cdr (assoc "Color" dif)) Layer (cdr (assoc "Layer" dif)))
(setq lst-id (cdr (DSQL_QUERY my-dbf (strcat "SELECT DISTINCT Lines.Id FROM Lines WHERE Lines.LineLength=" (itoa LineLength) " AND Lines.Color=" (itoa Color) " AND Lines.Layer=" Layer ";"))))
(foreach it lst-id
(DSQL_DML my-dbf (strcat "UPDATE Lines SET N=" (itoa which_dif) " WHERE Id=" (itoa (car it)) ";"))
)
(setq which_dif (1+ which_dif))
)
(DSQL_CLOSE my-dbf)
);p
);i
(princ)
)
(princ)