xaydung 12 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 Cám ơn bác ssg nhưng bị lỗi 1 chút bác à nó chỉ move về gốc (0,0,0) thôi chứ chưa rotage được bác xem lại hộ em nha?! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 Cám ơn bác ssg nhưng bị lỗi 1 chút bác ànó chỉ move về gốc (0,0,0) thôi chứ chưa rotage được bác xem lại hộ em nha?! Bạn tắt OSNAP đi là ok. Nếu không, bạn thêm 1 đoạn mã vào và trở thành: (defun luuos () (setq CV_OSMODE (getvar "OSMODE") CV_AUTOSNAP (getvar "AUTOSNAP") ) ) (defun traos () (if CV_OSMODE (setvar "OSMODE" CV_OSMODE) ) (if CV_AUTOSNAP (setvar "AUTOSNAP" CV_AUTOSNAP) ) ) (defun C:MR3( / ss p0) (setq ss (ssget) p0 (getpoint "\nBase point:") ) (luuos) (setvar "osmode" 0) (command "move" ss "" p0 (list 0 0 0)) (if (not geom3d) (arxload "geom3d")) (command "rotate3d" ss "" (list 0 0 0) (list 1 0 0) 90) (traos) (princ) ) Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
ssg 1104 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 Cám ơn bác Hoành đã bổ sung giúp. Mình cứ quên cái osmode hoài! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
xaydung 12 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 Thanks các bác, em đang cần 1 lisp nữa có nội dung như sau: trên màn hình có dòng text là: "diện tích cửa : 2*4=6" đây là kết quả sai, khi chạy lisp sẽ hỏi chọn text cần tính toán: chọn text trên sẽ cho ra kết quả là: "diện tích cửa : 2*4=8" (gần giống MCALTEXT nhưng hơi khác 1 chút) Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 (Đă chỉnh sửa) :unsure: NH đã viết cái LISP về Dim xong chưa ?Khi nào xong cho ae sử dụng với nhé :unsure: Lệnh là SD (sắp dim) Chương trình sẽ yêu cầu người sử dụng chọn đường Dim chuẩn. Sau đó, yêu cầu người sử dụng chọn các đường Dim cần sắp xếp. Chương trình sẽ tự động dàn các Dim theo hàng đều. (defun c:sd () (defun ss2ent (ss / sodt index lstent) (setq sodt (cond (ss (sslength ss)) (t 0) ) index 0 ) (repeat sodt (setq ent (ssname ss index) index (1+ index) lstent (cons ent lstent) ) ) (reverse lstent) ) (defun hoanh_newerror (msg) (if (and (/= msg "Function cancelled") (/= msg "quit / exit abort") ) (princ (strcat "\n" msg)) ) (done) ) ;;---------- (defun init () (setq HOANH_CMD (getvar "CMDECHO") HOANH_OLDERROR *error* *error* hoanh_newerror ) (setvar "CMDECHO" 0) (command ".undo" "BE") ) ;;---------- (defun done () (command ".redraw") (command ".undo" "E") (if HOANH_CMD (setvar "CMDECHO" HOANH_CMD) ) (if HOANH_OLDERROR (setq *error* HOANH_OLDERROR) ) (princ) ) ;;---------- (defun cdim (entdt pchan pduong / tt old10 old13 old14 new10 new13 new14 p10n p13n p14n p10o p13o p14o gocduong gocchan pchanb pduongb loaidim ) (defun chanvuonggoc (ph p1 p2 / ptemp pkq goc) (setq goc (+ (angle p1 p2) (/ pi 2.0)) ptemp (polar ph goc 1000.0) pkq (inters ph ptemp p1 p2 nil) ) pkq ) (setq tt (entget entdt) old10 (assoc '10 tt) old13 (assoc '13 tt) old14 (assoc '14 tt) p10o (cdr old10) p13o (cdr old13) p14o (cdr old14) loaidim (logand (cdr (assoc '70 tt)) 7) gocduong (cond ((= loaidim 1) (angle p13o p14o)) ((= loaidim 0) (cdr (assoc '50 tt))) (t nil) ) pchan (cond (pchan (list (car pchan) (cadr pchan) 0.0)) (t pchan) ) pduong (cond (pduong (list (car pduong) (cadr pduong) 0.0)) (t pduong) ) ) (if gocduong (progn (if pchan (setq pchanb (polar pchan gocduong 1000.0) p13n (chanvuonggoc (list (car p13o) (cadr p13o) 0.0) pchan pchanb ) p14n (chanvuonggoc (list (car p14o) (cadr p14o) 0.0) pchan pchanb ) new13 (cons 13 p13n) new14 (cons 14 p14n) tt (subst new13 old13 tt) tt (subst new14 old14 tt) ) ) (if pduong (setq pduongb (polar pduong gocduong 1000.0) p10n (chanvuonggoc (list (car p10o) (cadr p10o) 0.0) pduong pduongb ) new10 (cons 10 p10n) tt (subst new10 old10 tt) ) ) (entmod tt) ) ) gocduong ) (defun textdimheight (ent / tmp) (command ".copy" ent "" (list 0.0 0.0 0.0) "@") (command ".explode" (entlast) "") (setq tmp (cdr (assoc 40 (entget (entlast))))) (command ".erase" "p" "") tmp ) (defun phia (p1 p2 p3 / x1 y1 z1 x2 y2 z2 x3 y3 z3) (setq x1 (car p1) y1 (cadr p1) z1 (caddr p1) x2 (car p2) y2 (cadr p2) z2 (caddr p2) x3 (car p3) y3 (cadr p3) z3 (caddr p3) tmp (+ (* (- x1 x2) x3) (* (- y1 y2) y3) (* (- z1 z2) z3) ) ) (cond ((= tmp 0.0) 0.0) (t (/ tmp (abs tmp))) ) ) (defun khoangcachdim (p1 ent goc / tt p2 A B D) (setq tt (entget ent) p2 (cdr (assoc 10 tt)) B (cdr (assoc 50 tt)) A (angle p1 p2) D (distance p1 p2) ) (* (* D (sin (- A [b]B )[/b])) (phia p1 (polar p1 goc 1.0) p2)) ) (defun phanloai (ent) (setq kc (khoangcachdim pgoc ent goc) loai (fix (/ kc heightdimgoc 0.93)) ) (cons loai ent) ) (init) (princ "\nSap xep dim © CADViet.com") (while (not (setq entgoc (car (entsel "\nChon duong dim goc: ")))) ) (setq ttgoc (entget entgoc) p13goc (cdr (assoc 13 ttgoc)) pgoc (cdr (assoc 10 ttgoc)) goc (cdr (assoc 50 ttgoc)) heightdimgoc (textdimheight entgoc) ssd (ssget (list (cons 0 "DIMENSION") (cons -4 " (cons 70 32) (cons 70 64) (cons 70 96) (cons 70 128) (cons 70 160) (cons 70 196) (cons 70 224) (cons -4 "OR>") (cons -4 " (cons 50 goc) (cons 50 (+ goc pi)) (cons 50 (- goc pi)) (cons -4 "OR>") ) ) lstd (ss2ent ssd) lstd (mapcar 'phanloai lstd) lstlevel nil ) (foreach pp lstd (if (not (member (car pp) lstlevel)) (setq lstlevel (append lstlevel (list (car pp)))) ) ) (setq lstlevel (vl-sort lstlevel '(lambda (x1 x2) ( lstam nil lstduong nil lstamtmp nil lstduongtmp nil ) (foreach pp lstlevel (if ( (setq lstam (append lstam (list pp))) ) (if (> pp 0.0) (setq lstduong (append lstduong (list pp))) ) ) (setq index 0) (foreach pp (reverse lstam) (setq index (1+ index) lstamtmp (append lstamtmp (list (cons pp index))) ) ) (setq lstam lstamtmp index 0 ) (foreach pp lstduong (setq index (1+ index) lstduongtmp (append lstduongtmp (list (cons pp index))) ) ) (setq lstduong lstduongtmp) (setq lstlevel (append lstduong lstam (list (cons 0.0 0)))) (setq kcdimstandard (* 3.0 heightdimgoc)) (foreach pp lstd (setq plht (car pp)) (progn (setq kcdimht (khoangcachdim pgoc (cdr pp) goc) duongthu (cdr (assoc plht lstlevel)) heso (cond ((/= 0 kcdimht) (abs (* (/ kcdimstandard kcdimht) duongthu)) ) (t 0.0) ) diemchenht (cdr (assoc 10 (entget (cdr pp)))) pmoi (polar pgoc (angle pgoc diemchenht) (* heso (distance pgoc diemchenht)) ) ) (cdim (cdr pp) p13goc pmoi) ) ) (done) ) (princ "\nSap xep dim, SD - free lisp from www.cadviet.com") (princ) Chỉnh sửa Tháng 8 13, 2007 theo Nguyen Hoanh 6 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 Thanks các bác, em đang cần 1 lisp nữa có nội dung như sau:trên màn hình có dòng text là: "diện tích cửa : 2*4=6" đây là kết quả sai, khi chạy lisp sẽ hỏi chọn text cần tính toán: chọn text trên sẽ cho ra kết quả là: "diện tích cửa : 2*4=8" (gần giống MCALTEXT nhưng hơi khác 1 chút) Đã sửa và đáp ứng được yêu cầu của bạn, vẫn là lệnh MCALTEXT. (defun c:mcaltext (/ ent tt old gt vt gtmoi) (if (not c:cal) (load "geomcal.arx") ) (defun calone (ent) (setq tt (entget ent) old (assoc 1 tt) gt (cdr old) vt (vl-string-position (ascii "=") gt) ht vt htsau (+ vt 2) ) (while (and (> ht 0) (member (substr gt ht 1) (list "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "." "+" "-" "*" "/")) ) (setq ht (1- ht)) ) (while (and (member (substr gt htsau 1) (list "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "." "+" "-" "*" "/")) ) (setq htsau (1+ htsau)) ) (setq gttruoc (substr gt 1 ht) gtsau (substr gt htsau) gtmoi (substr gt (1+ ht) (- vt ht)) kq (rtos (c:cal gtmoi)) kq (vl-string-right-trim "0" kq) kq (vl-string-right-trim "." kq) gtmoi (strcat gttruoc gtmoi "=" kq gtsau) tt (subst (cons 1 gtmoi) old tt) ) (entmod tt) (entupd ent) ) (setq ss (ssget '((0 . "TEXT")))) (sudung calone ss) (princ) ) (defun sudung (ham ss / sodt index entdt soapp) (setq sodt (cond (ss (sslength ss)) (t 0) ) soapp 0 index 0 ) (repeat sodt (setq entdt (ssname ss index) index (1+ index) ) (if (ham entdt) (setq soapp (1+ soapp)) ) ) soapp ) Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
vbao 80 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 Lệnh là SD (sắp dim) Chương trình sẽ yêu cầu người sử dụng chọn đường Dim chuẩn. Sau đó, yêu cầu người sử dụng chọn các đường Dim cần sắp xếp. Chương trình sẽ tự động dàn các Dim theo hàng đều. (defun c:sd () (defun ss2ent (ss / sodt index lstent) (setq sodt (cond (ss (sslength ss)) (t 0) ) index 0 ) (repeat sodt (setq ent (ssname ss index) index (1+ index) lstent (cons ent lstent) ) ) (reverse lstent) ) (defun hoanh_newerror (msg) (if (and (/= msg "Function cancelled") (/= msg "quit / exit abort") ) (princ (strcat "\n" msg)) ) (done) ) ;;---------- (defun init () (setq HOANH_CMD (getvar "CMDECHO") HOANH_OLDERROR *error* *error* hoanh_newerror ) (setvar "CMDECHO" 0) (command ".undo" "BE") ) ;;---------- (defun done () (command ".redraw") (command ".undo" "E") (if HOANH_CMD (setvar "CMDECHO" HOANH_CMD) ) (if HOANH_OLDERROR (setq *error* HOANH_OLDERROR) ) (princ) ) ;;---------- (defun cdim (entdt pchan pduong / tt old10 old13 old14 new10 new13 new14 p10n p13n p14n p10o p13o p14o gocduong gocchan pchanb pduongb loaidim ) (defun chanvuonggoc (ph p1 p2 / ptemp pkq goc) (setq goc (+ (angle p1 p2) (/ pi 2.0)) ptemp (polar ph goc 1000.0) pkq (inters ph ptemp p1 p2 nil) ) pkq ) (setq tt (entget entdt) old10 (assoc '10 tt) old13 (assoc '13 tt) old14 (assoc '14 tt) p10o (cdr old10) p13o (cdr old13) p14o (cdr old14) loaidim (logand (cdr (assoc '70 tt)) 7) gocduong (cond ((= loaidim 1) (angle p13o p14o)) ((= loaidim 0) (cdr (assoc '50 tt))) (t nil) ) pchan (cond (pchan (list (car pchan) (cadr pchan) 0.0)) (t pchan) ) pduong (cond (pduong (list (car pduong) (cadr pduong) 0.0)) (t pduong) ) ) (if gocduong (progn (if pchan (setq pchanb (polar pchan gocduong 1000.0) p13n (chanvuonggoc (list (car p13o) (cadr p13o) 0.0) pchan pchanb ) p14n (chanvuonggoc (list (car p14o) (cadr p14o) 0.0) pchan pchanb ) new13 (cons 13 p13n) new14 (cons 14 p14n) tt (subst new13 old13 tt) tt (subst new14 old14 tt) ) ) (if pduong (setq pduongb (polar pduong gocduong 1000.0) p10n (chanvuonggoc (list (car p10o) (cadr p10o) 0.0) pduong pduongb ) new10 (cons 10 p10n) tt (subst new10 old10 tt) ) ) (entmod tt) ) ) gocduong ) (defun textdimheight (ent / tmp) (command ".copy" ent "" (list 0.0 0.0 0.0) "@") (command ".explode" (entlast) "") (setq tmp (cdr (assoc 40 (entget (entlast))))) (command ".erase" "p" "") tmp ) (defun phia (p1 p2 p3 / x1 y1 z1 x2 y2 z2 x3 y3 z3) (setq x1 (car p1) y1 (cadr p1) z1 (caddr p1) x2 (car p2) y2 (cadr p2) z2 (caddr p2) x3 (car p3) y3 (cadr p3) z3 (caddr p3) tmp (+ (* (- x1 x2) x3) (* (- y1 y2) y3) (* (- z1 z2) z3) ) ) (cond ((= tmp 0.0) 0.0) (t (/ tmp (abs tmp))) ) ) (defun khoangcachdim (p1 ent goc / tt p2 A B D) (setq tt (entget ent) p2 (cdr (assoc 10 tt)) B (cdr (assoc 50 tt)) A (angle p1 p2) D (distance p1 p2) ) (* (* D (sin (- A :unsure:)) (phia p1 (polar p1 goc 1.0) p2)) ) (defun phanloai (ent) (setq kc (khoangcachdim pgoc ent goc) loai (fix (/ kc heightdimgoc 0.93)) ) (cons loai ent) ) (init) (princ "\nSap xep dim © CADViet.com") (while (not (setq entgoc (car (entsel "\nChon duong dim goc: ")))) ) (setq ttgoc (entget entgoc) p13goc (cdr (assoc 13 ttgoc)) pgoc (cdr (assoc 10 ttgoc)) goc (cdr (assoc 50 ttgoc)) heightdimgoc (textdimheight entgoc) ssd (ssget (list (cons 0 "DIMENSION") (cons -4 "<OR") (cons 70 32) (cons 70 64) (cons 70 96) (cons 70 128) (cons 70 160) (cons 70 196) (cons 70 224) (cons -4 "OR>") (cons -4 "<OR") (cons 50 goc) (cons 50 (+ goc pi)) (cons 50 (- goc pi)) (cons -4 "OR>") ) ) lstd (ss2ent ssd) lstd (mapcar 'phanloai lstd) lstlevel nil ) (foreach pp lstd (if (not (member (car pp) lstlevel)) (setq lstlevel (append lstlevel (list (car pp)))) ) ) (setq lstlevel (vl-sort lstlevel '(lambda (x1 x2) (< x1 x2))) lstam nil lstduong nil lstamtmp nil lstduongtmp nil ) (foreach pp lstlevel (if (< pp 0.0) (setq lstam (append lstam (list pp))) ) (if (> pp 0.0) (setq lstduong (append lstduong (list pp))) ) ) (setq index 0) (foreach pp (reverse lstam) (setq index (1+ index) lstamtmp (append lstamtmp (list (cons pp index))) ) ) (setq lstam lstamtmp index 0 ) (foreach pp lstduong (setq index (1+ index) lstduongtmp (append lstduongtmp (list (cons pp index))) ) ) (setq lstduong lstduongtmp) (setq lstlevel (append lstduong lstam (list (cons 0.0 0)))) (setq kcdimstandard (* 3.0 heightdimgoc)) (foreach pp lstd (setq plht (car pp)) (progn (setq kcdimht (khoangcachdim pgoc (cdr pp) goc) duongthu (cdr (assoc plht lstlevel)) heso (cond ((/= 0 kcdimht) (abs (* (/ kcdimstandard kcdimht) duongthu)) ) (t 0.0) ) diemchenht (cdr (assoc 10 (entget (cdr pp)))) pmoi (polar pgoc (angle pgoc diemchenht) (* heso (distance pgoc diemchenht)) ) ) (cdim (cdr pp) p13goc pmoi) ) ) (done) ) (princ "\nSap xep dim, SD - free lisp from www.cadviet.com") (princ) Anh Hoành xem lại giúp, tôi chạy chương trình gặp lỗi : Command: (load"xepdim") ; error: malformed list on input cảm ơn anh. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
conghoa 137 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 APPLOAD ttt.lsp successfully loaded. Command: ; error: malformed list on input Command: Command: sd Unknown command "SD". Press F1 for help. sao mình load lisp và chạy thì nó báo lỗi. Bạn xem lại dùm nhé! Thanks nhiều! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 Vừa edit lại được rồi, mọi người thử lại đi nhé. Khổ quá, chữ B) nó bị đổi thành :unsure: Nên dòng lệnh: (* (* D (sin (- A B))) (phia p1 (polar p1 goc 1.0) p2)) Bị đổi thành: (* (* D (sin (- A :unsure:)) (phia p1 (polar p1 goc 1.0) p2)) thế là sai mất. Đã đổi lại thành B ), và đã test lại thấy ok rồi. Chân thành xin lỗi mọi người. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
kts.ngocquan 37 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 :unsure: Cam on NH da share cho moi nguoi LISP nay You're number one :unsure: Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
vbao 80 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 Vừa edit lại được rồi, mọi người thử lại đi nhé. Khổ quá, chữ :unsure: nó bị đổi thành :unsure: Nên dòng lệnh: (* (* D (sin (- A :unsure:)) (phia p1 (polar p1 goc 1.0) p2)) Bị đổi thành: (* (* D (sin (- A :))) (phia p1 (polar p1 goc 1.0) p2)) thế là sai mất. Đã đổi lại thành B ), và đã test lại thấy ok rồi. Chân thành xin lỗi mọi người. cảm ơn anh Hoành Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
kts.ngocquan 37 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 Nguyễn Hoành ơi , xem lại hộ tui cái . Tại sao ko dùng được lệnh SD vậy . File tôi gửi theo đường dẫn ở dưới http://www.cadviet.com/upfiles/NH.rar or http://www.megaupload.com/?d=LXGMX3M3 Tôi rất thích lệnh này của NH , NH có thể bổ xung thêm để có thể dùng được vơi đường kích thước xiên ko (Lệnh dal) Trả lời nhanh nhé . Thèm lém rùi :unsure: Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 13, 2007 Nguyễn Hoành ơi , xem lại hộ tui cái . Tại sao ko dùng được lệnh SD vậy . File tôi gửi theo đường dẫn ở dướihttp://www.cadviet.com/upfiles/NH.rar or http://www.megaupload.com/?d=LXGMX3M3 Tôi rất thích lệnh này của NH , NH có thể bổ xung thêm để có thể dùng được vơi đường kích thước xiên ko (Lệnh dal) Trả lời nhanh nhé . Thèm lém rùi :unsure: file của bạn vẫn dùng tốt, chạy ổn chẳng có gì sai cả! 3 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
kts.ngocquan 37 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 file của bạn vẫn dùng tốt, chạy ổn chẳng có gì sai cả! :unsure: Thế sao ?????? Tôi dùng thì bị nhu file ảnh tôi up lên mà :unsure: Còn vụ đường kích thước xiên thì sao hả NH ? Lệnh SD bị miễn nhiễm với nó mà ........... Cảm ơn NH nhé :unsure: Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
xaydung 12 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 Bác Hoanh ơi, em đã dùng cái mcaltext của bác chạy ngon lắm bác à, nhưng với những phép tính có dấu ngoặc "()" thì nó không chạy bác à?! bác giúp em chút nữa được không? em cám ơn! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 :unsure: Thế sao ?????? Tôi dùng thì bị nhu file ảnh tôi up lên mà :unsure: Còn vụ đường kích thước xiên thì sao hả NH ? Lệnh SD bị miễn nhiễm với nó mà ........... Cảm ơn NH nhé :unsure: Việc xác định các thuật toán toán học trên đường dim DIMALIGNED phức tạp hơn các đường dim DIMLINEAR. Hiện nay, để gãi cho anh em đỡ ngứa ngáy, phiên bản đầu tiên tạm thế đã. Về sau sẽ nâng cấp lên bao gồm cả DIMALIGNED. Vả lại nhiều khả năng chẳng cần nâng cấp, AutoDesk đợt tới cho ra phiên bản mới bao gồm luôn cả lệnh này cũng nên :) (Kinh nghiệm từ bản thân, các chương trình lisp hồi đầu tiên tôi viết thì bây giờ ACAD đã có sẵn gần hết rồi). 1 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
conghoa 137 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 @NguyenHoanh Cho mình hỏi khoảng cách giữa các Dim được tính dựa vào thông số nào vậy? Nếu mình muốn quy định khoảng cách là giá trị khác có được không! Cảm ơn bạn đã làm lisp này :unsure: :unsure:) không ai cảm ơn mình sao :unsure:) Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 @NguyenHoanh Cho mình hỏi khoảng cách giữa các Dim được tính dựa vào thông số nào vậy? Nếu mình muốn quy định khoảng cách là giá trị khác có được không! Cảm ơn bạn đã làm lisp này :unsure: :unsure:) không ai cảm ơn mình sao :unsure:) Khoảng cách giữa các dim cao gấp 3 lần kích cỡ chữ của Dim gốc. Bạn muốn sửa thông số khác đi, bạn có thể tìm đến dòng lệnh (setq kcdimstandard (* 3.0 heightdimgoc)) và sửa số 3.0 thành số khác mà bạn muốn Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
conghoa 137 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 Thanks! @All lisp của NguyenHoanh có thể sắp xếp cả các dim chéo với điều kiện các bạn đổi trục toạ độ theo đường chéo của đim! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 Thanks! @All lisp của NguyenHoanh có thể sắp xếp cả các dim chéo với điều kiện các bạn đổi trục toạ độ theo đường chéo của đim! Không phải đâu bạn! Dim Rotate vẫn là DIMALIGNED không phải là DIMALIGNED. Vì dim DIMALIGNED bao gồm Rotated, Horizontal và Vertical. DIMALIGNED cấu trúc khác hẳn. Để phân biệt bạn hãy kéo chân dim, nếu đường dim không thay đổi thì nó là DIMALIGNED; còn nếu đường dim thay đổi theo chân dim thì nó là DIMALIGNED. Cách tạo ra chúng cũng bằng 2 lệnh khác biệt là lệnh DIMALIGNED và lệnh DIMLINEAR. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
xaydung 12 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 Các bác ơi, em đang rất cần 1 lisp có nội dung như sau: trên màn hình có các text dạng x,y,z khi chạy lisp chọn các text trên thì sẽ vẽ ra các điểm point có toạ độ là x,y,z nếu không có toạ độ z (tức là text dạng x,y ) thì cũng vẫn vẽ được các điểm point (tức toạ độ trục z=0) thanks các bác trước! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 Các bác ơi, em đang rất cần 1 lisp có nội dung như sau:trên màn hình có các text dạng x,y,z khi chạy lisp chọn các text trên thì sẽ vẽ ra các điểm point có toạ độ là x,y,z nếu không có toạ độ z (tức là text dạng x,y ) thì cũng vẫn vẽ được các điểm point (tức toạ độ trục z=0) thanks các bác trước! Tên lệnh là T2P (Text to Point) (defun c:t2p () (defun t2pone (ent) (command ".POINT" (cdr (assoc 1 (entget ent)))) ) (setq ss (ssget '((0 . "TEXT")))) (luuos) (setvar "osmode" 0) (sudung t2pone ss) (traos) ) (defun sudung (ham ss / sodt index entdt soapp) (setq sodt (cond (ss (sslength ss)) (t 0) ) soapp 0 index 0 ) (repeat sodt (setq entdt (ssname ss index) index (1+ index) ) (if (ham entdt) (setq soapp (1+ soapp)) ) ) soapp ) (defun luuos () (setq HOANH_OSMODE (getvar "OSMODE") HOANH_AUTOSNAP (getvar "AUTOSNAP") ) ) (defun traos () (if HOANH_OSMODE (setvar "OSMODE" HOANH_OSMODE) ) (if HOANH_AUTOSNAP (setvar "AUTOSNAP" HOANH_AUTOSNAP) ) ) 1 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
kts.ngocquan 37 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 HI EVERY BODY ! ^_^ :) . :unsure: :unsure: :) :) Say quá ...............! Chào riêng NH 1 cái nhé :unsure: NH ah , tôi muốn có 1 cái LISP chuyển toàn bộ layerA sang layerB (kiểu như layer merge của Express) , NH giúp tôi nhé Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 HI EVERY BODY ! ^_^ :) . :unsure: :unsure: :) :) Say quá ...............! Chào riêng NH 1 cái nhé :unsure: NH ah , tôi muốn có 1 cái LISP chuyển toàn bộ layerA sang layerB (kiểu như layer merge của Express) , NH giúp tôi nhé Bạn dùng lệnh laytrans của AutoCAD! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
xaydung 12 Báo cáo bài đăng Đã đăng Tháng 8 14, 2007 (defun c:mcaltext (/ ent tt old gt vt gtmoi) (if (not c:cal) (load "geomcal.arx") ) (defun calone (ent) (setq tt (entget ent) old (assoc 1 tt) gt (cdr old) vt (vl-string-position (ascii "=") gt) ht vt htsau (+ vt 2) ) (while (and (> ht 0) (member (substr gt ht 1) (list "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "." "+" "-" "*" "/")) ) (setq ht (1- ht)) ) (while (and (member (substr gt htsau 1) (list "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "." "+" "-" "*" "/")) ) (setq htsau (1+ htsau)) ) (setq gttruoc (substr gt 1 ht) gtsau (substr gt htsau) gtmoi (substr gt (1+ ht) (- vt ht)) kq (rtos (c:cal gtmoi)) kq (vl-string-right-trim "0" kq) kq (vl-string-right-trim "." kq) gtmoi (strcat gttruoc gtmoi "=" kq gtsau) tt (subst (cons 1 gtmoi) old tt) ) (entmod tt) (entupd ent) ) (setq ss (ssget '((0 . "TEXT")))) (sudung calone ss) (princ) ) (defun sudung (ham ss / sodt index entdt soapp) (setq sodt (cond (ss (sslength ss)) (t 0) ) soapp 0 index 0 ) (repeat sodt (setq entdt (ssname ss index) index (1+ index) ) (if (ham entdt) (setq soapp (1+ soapp)) ) ) soapp ) Bác hoanh ơi cái lisp này chạy ngon mỗi tội khi phép tính có những dấu ngoặc "()" thì không chạy bác à? Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác