tinya1225
-
Số lượng nội dung
121 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
3
Bài đăng được đăng bởi tinya1225
-
-
nhưng em chưa hiểu vì sao giờ lại bị như thế.Trước em vẫn dùng bình thường mà.
Xin cho em hỏi nguyên nhân gây ra sự việc trên ạ.Thank !
"Bị như thế" là thế nào hả bạn. Và "bình thường" là như thế nào.
Bạn đặt tên nét in thành 1 kiểu riêng của bạn, cài hết các thông số, khi nào in thì dùng chứ đâu phải lúc nào cũng phải cài lại nét in đâu.
-
nhấn Ctrl + Shift + End đánh dâu hết
Shift + End là được rùi bạn ah
-
1
-
-
E chào các bác. E có chút góp ý cho topic "Viết lisp theo yêu cầu". Không biết có ai góp ý trước chưa nếu có nhờ mod del bài giúp e.
"Viết lisp theo yêu cầu" là 1 topic rất hay và được sự quan tâm của rất nhiều người. Nhưng vì có quá nhiều bài viết nên thật khó để có thể theo dõi hết các lisp trong topic. E tham gia diễn đàn cũng khá lâu nhưng khi vào topic "Viết lisp theo yêu cầu 1&2" thì thực sự choáng vì số lượng bài viết quá nhiều.
E có ý kiến như sau:
Tại trang đầu tiên sẽ có tổng hợp tên lisp hoàn thiện và chức năng để tiện theo dõi và tìm kiếm những lisp có ích cho mình, kèm theo là đường link hoặc số trang để đến cho nhanh.
Mong các bác lưu tâm. Em xin cảm ơn và chúc cả nhà 1 ngày vui vẻ!
-
1
-
-
Cái này thì chắc bạn phải đọc bài về cả 2 rùi tự tổng kết lại thôi.
-
em có 2 đối tượng có 1 phần các đối tượng đè lên nhau.giả sử đối tượng A đè lên đối tượng B nên chỗ đè lên nhau hiển thị đối tượng A.giờ e muốn làm cho tại chỗ đè lên nhau đối tượng B được hiển thị
có lệnh nào như thế ko ạ ?
mong được mọi người giúp đỡ !. cảm ơn nhiều
Bạn thử dùng lệnh WIPEOUT xem có ok không. Có khá nhiều cách để đưa một đối tượng lên trên đối tượng khác, nếu bạn nói rõ đối tượng của bạn là j thì sẽ có cách cụ thể hơn. Tốt nhất là kèm theo bản vẽ.
-
Em sử dụng list này ạ.
Em chưa biết cách upload nên dùng tạm cách copy and patse.
Ở phía dưới có anh nói là dùng tcout. Trong trường hợp này không dùng tcout dược đâu ạ.
Bạn đã hiểu về lệnh TCOUNT chưa mà nói là không dùng đc vậy. Bạn copy tất cả những chữ cần đánh số với cùng mẫu C01-D, dùng TCOUNT với chức năng find&replace (search string value gõ 1)hoàn toàn có thể làm được theo yêu cầu của bạn.
-
Em chào các bác.
Em được biết trên diễn đàn đã có list tăng chỉ số.
Ví dụ: C01; C02...
Tuy nhiên trong trường hợp của em bắt đầu là C01-D; em muốn sử dụng list để tạo ra C02-D; C03-D... thì nó lại tăng ký tự cuối cùng là C01-D; C01-E; C01-F.
Em muốn hỏi có bác nào có list để tăng chỉ số trong trường hợp của em không ạ?
Thank cả nhà!
Lệnh TCOUNT có thể làm đc cái bạn cần rùi mà sao lại phải dùng lisp nữa.
Và chi tiết về lệnh TCOUNT thì bác Hoành đã trình bày rất rõ rùi bạn đọc thì sẽ làm đc.
Chúc thành công.
-
dù sao cũng cảm ơn các anh đã hưỡng dẫn cho em
những cái trên vẫn không phải thứ em đang cần.
(em đã học xong cad cơ bản và bây giờ muốn nâng cao tay nghề nên...)
Cám ơn mà hình như bạn chưa thanks+ cho ai thì phải :unsure:
Thế bạn đã tìm được cái bạn cần chưa, nếu có rồi thì mong bạn có thể chia sẻ với anh em để nâng cao kiến thức.
Nếu muốn đố thì bạn nên post bài vào mục đố vui để khỏi mất công trả lời của người khác.
-
Mọi người cho mình hỏi tai sao ở hộp thoại layer trong cad 2007 mình không đặt tên cho layer trong mục name được,mà máy nó cứ mặc định là layer1,layer2,layer3... rê chuột vào thì không xuất hiện con trỏ gì cả,không viết tên được.
Từ lúc bạn tạo layer thì điều đầu tiên là đặt tên cho layer luôn mà bạn.
-
Bạn xe lại các vấn đề sau:
- Vẽ trên layer nào? nếu trên layer depoint thì toi.
- Thiết lập in ấn trong Page Setup Manage\Plot area\ (display\ windown\Limits\Layout)---> sau đó ấn vào Print Priview xem trước, nếu có đủ thì in ra OK.
Bạn post bản vẽ lên đây xem nào
Chúc bạn thành công!
Để defpoints vẫn preview đc mà bạn. chỉ có in thì không đc thôi.
-
1
-
-
các bác cho em hỏi sự khác nhau giữa 2 cách dùng này ntn,thường thì dùng cái nào tốt hơn,trong những trườgn hợp nào,thanks
Bên dưới bài của bạn đã có khá nhiều topic nói về 2 cái này rùi. có lẽ bạn nên tham khảo các bài đó trc khi lập topic.
-
e in trong autocad 2007 có bị lỗi sau
khi in em chỉ thấy khung mà ko thấy hình
các bác chỉ giúp em với
em cảm ơn!
Nếu in ra chỉ có khung mà không có hình thì bạn nên kiểm tra lại bản vẽ xem có để layer defpoints không. bạn nói hơi chung chung nên mình chỉ biết trả lời vậy thôi. nếu muốn rõ ràng bạn nên miêu tả kỹ hơn và kèm theo bản vẽ.
-
tất nhiên là các layer đã có sẵn rồi.chỉ 2 cái click chuột trong CAD là sao hả anh?
em cũng chưa biết lisp là cái gì?
anh có thể nói rõ hơn(hướng dẫn) cho em được không?thanks
Bạn đang ở layer 1, muốn đổi layer hiện hành sang 2 thì có thể làm như sau:
chọn layer cần đổi, ấn vào "make object's layer current" trên thanh layers.
Hoặc có thể dùng lệnh laymcur với tác dụng tương tự.
-
1
-
-
sao e vào layer để chỉnh nét,nó lại hiện ra cái bản báo lổi như thế này:FATLA ERROR:Unhandled e06d7363h Exception at 75919617h.Các mục khác thì vẫn bình thường,lúc trước vào layer chỉnh được,nhưng ko biết nay sao nó báo như z.cái này do lỗi gì z các a?
Bạn có thể post bản vẽ của bạn lên để mọi người xem thử chứ nói không thế này chỉ có ai gặp thì mới biết như thế nào thôi.
-
1
-
1
-
-
mình có 2 thắc mắc mong các bạn chỉ giúp
thứ 1: mình có 3 nét vẽ chồng lên nhau, bề dày 3 nét vẽ khác nhau, cho mình hỏi khi đem đi in, có phải nét nào dày hơn thì sẽ thể hiện trên giấy in cho dù nét đó nằm dưới 2 nét còn lại? còn 2 nét có bề dày như nhau thì in ra cũng là 1 nét đó phải ko?
thứ 2: khi mình kết thúc lệnh mình thường hay nhấn enter để kết thúc , nhưng mình thấy có bạn ko nhấn enter mà nhấn chuột phải cũng kết thúc luôn, ko biết vào phần nào chỉnh để được như thế?
mong các bạn chỉ giúp mình, thanks you!
1. nó còn tuỳ vào màu sắc mình đặt nữa. màu ở duới nét to màu nhạt mà màu trên bé hơn nhưng màu đậm thì nó sẽ in ra cả 2 cùng là màu đen nhưng độ đậm nhạt khác nhau.
2. op, user preferences, right click customization, tích vào ENTER ở command mod, ok
-
3
-
1
-
-
ĐVH tham gia CADViet từ 2010. Quá trễ so với nhiều bác. Tuy nhiên xin có một góp ý nhỏ thế này:
Hiện nay, các topic mới mở chỉ chiếm 5/30 topic hiện trên 1 trang. Như vậy là quá ít. Vì 25 topic còn lại nghiễm nhiên có vị trí đứng cố định trên CADViet, nhưng trong số đó có nhiều topic không mang tính đại chúng. Còn các topic thời sự chỉ có 5, đôi lúc mới viết xong, lát nữa mở lại đã thấy biến mất, muốn đọc phải sang trang tiếp.
Vậy đề nghị BQT chỉ nên chọn cỡ 50% topic là cố định, còn 50% topic là thời sự hằng ngày để người đọc và post thuận tiện theo dõi hơn.
Thân ái!
Em xin phép trình bày ý kiến của mình. Sao chúng ta không làm song song 2 mục: 1 là những topic mới lập và 2 là những topic hay nhất, vừa dễ cho viêc theo dõi topic mới và tiếp tục giới thiệu nhũng topic đáng giá của forum. Em chỉ có ý tưởng thế mong các bác đừng trách :D
-
1
-
2
-
-
ok. Cảm ơn các bác nhé!
Thanks rùi nhưng chưa + tớ cái nào ah bạn ơi :(
-
1
-
2
-
-
Trường hợp mình hỏi nó áp dụng rất tốt cho trường hợp bạn làm trong ngành giao thông. ví dụ bạn có 1 xref về địa hình hiện trạng, xref này lồng trong bản vẽ mặt bằng thiết kế chi tiết. Nếu để thế mà in trong trừong hợp làm bản vẽ tổ chức giao thông thì không ổn vì sẽ không nhận biết đựoc đâu là vạch sơn, chỉ cẩn làm 1 Polyline giới hạn bởi mặt đựờng thiết kế sau đó cho nó hiển thị phần block bên ngoài, thế là ổn. Nhưng mình chưa tìm ra giải pháp nên hiện tại đang phải vẽ 1 Polyline là đa giác lõm nên rất mất thời gian.
bạn này hình như - mình 1 phát thì phải. mình không phải chủ nhân của dấu - cho bạn đâu. nếu đúng bạn thì + bù cho mình cái nhé, vất vả lắm đó :(
-
Không biết đã có topic nào đề cập vấn đề này chưa và mình thấy trường hợp thay đổi text trong khi đánh số cọc (dành cho kĩ sư kết cấu) này rất hay gặp. Đó là cần thêm bớt một số lượng cọc và số thứ tự cọc thay đổi theo. Chắc chỉ có dùng lisp cho trường hợp này mới đỡ mất việc. Mình đã thử tìm về các lisp liên quan đến nội dung text nhưng không thấy.
Các bác xem có topic nào đề cập chưa hay viết dùm mình lisp với.
Lệnh: bt
Chọn các text cần thay đổi (dạng số)
Nhập số hạng cần thêm (bớt)
Kết quả tạo ra như hình minh họa:
http://www.mediafire.com/?d5lmxsmnknqcuj0
Các bác giúp mình với :)
http://www.cadviet.com/forum/index.php?showtopic=43745&st=0&p=149882&fromsearch=1entry149882
Xem có đúng yêu cầu của bạn ko. cái này mình cũng đã yêu cầu lâu lâu rùi.
Đúng thì nhớ thanks + tớ vài cái nhé ^^
-
2
-
-
bác hoành ơi bác có nick yahoo ko cho em xin cái. em có vấn đề vs lệnh data extraction của bác :D
-
Bạn nhớ lần sau nếu gặp lỗi tương tự (báo không có định nghĩa với hàm ..VL..) thì thêm dòng (vl-load-com) vào đầu lisp nhé :)
Code đây, bạn dùng tạm, mình k ưa nó lắm :(
(defun c:bdt(/ ptt1 ptt2 ptt3 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 ss ) (vl-load-com) (grtext -1 "Free lisp from Cadviet @Ketxu (S\U+01A1n T\U+00F9ng)! ") (defun wtxt_l(txt p h) (entmake (list (cons 0 "TEXT") (cons 7 (getvar "textstyle")) (cons 40 h)(cons 72 1)(cons 11 p) (cons 1 txt) (cons 10 p)))) (defun mid (ent / p1 p2) (vla-getboundingbox (vlax-ename->vla-object ent) 'p1 'p2) (setq p1 (vlax-safearray->list p1) p2 (vlax-safearray->list p2) pt (mapcar '+ p1 p2) pt (mapcar '* pt '(0.5 0.5 0.5)) ) pt ) (defun ST:Entmake-Pline (list_pt Layer Color isClosed / Polylist) (setq Polylist (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 8 Layer) (cons 43 0) (cons 62 Color) (cons 90 (length list_pt)) (cons 70 (cond ((= isClosed T) 1)(T 0))) ) Polylist (append Polylist (mapcar '(lambda (coord) (cons 10 coord)) list_pt))) (entmakex PolyList) ) (setvar "cmdecho" 0) (command "undo" "begin") (setq ladin (getvar "dimzin")) (if (not tl) (setq tl 1)) (if (not h) (setq h 1)) (setq tl1 (getreal (strcat "\nT\U+1EC9 l\U+1EC7 : < 1/" (rtos tl 2 0) " >: 1/")) caot1 (getreal (strcat "\nChi\U+1EC1u cao text : < " (rtos h 2 2) " >: "))) (if tl1 (setq tl tl1)) (if caot1 (setq h caot1)) (setq k 0 tdt 0 ss (ssadd) tLay (getvar "clayer")) (setvar "dimzin" 0) (setq PT (getpoint "\nCh\U+1ECDn \U+0111i\U+1EC3m xu\U+1EA5t b\U+1EA3ng th\U+1ED1ng k\U+00EA di\U+1EC7n t\U+00EDch (M\U+00E9p tr\U+00E1i) :")) (setq P1 (list (+ (car PT)(* 6 h)) (cadr PT)) P2 (list (+ (car PT)(* 22 h)) (cadr PT)) P3 (list (car PT) (- (cadr PT)(* 3 h))) P4 (list (car P1) (cadr P3)) P5 (list (car P2) (cadr P3)) P6 (list (+ (car PT)(* 11 h)) (+ (cadr PT)(* 2 h))) P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h))) P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h))) );setq (ST:Entmake-Pline (list PT P2 P5 P3) tLay 4 T) (ST:Entmake-Pline (list P1 P4) tLay 4 Nil) (wtxt_l "%¶ng thèng kª diÖn tÝch" P6 (* 1.2 h)) (wtxt_l "STT" P7 h) (wtxt_l "DiÖn tÝch (m2)" P8 h) (if (setq ptt1 (getpoint "\n\U+0110i\U+1EC3m th\U+1EE9 nh\U+1EA5t :"))(setq ptt2 (getpoint ptt1 "\n\n\U+0110i\U+1EC3m th\U+1EE9 hai :"))) (if (setq ptt3 (getpoint ptt2 "\n\U+0110i\U+1EC3m th\U+1EE9 ba :")) (setq ptt4 (getpoint ptt3 "\n\U+0110i\U+1EC3m th\U+1EE9 t\U+01B0 :"))) (while (and (/= ptt1 nil)(/= ptt2 nil)(/= ptt3 nil)(/= ptt4 nil)) (setq k (+ 1 k)) (setq PT (list (car P3) (cadr P3)) P1 (list (+ (car PT)(* 6 h)) (cadr PT)) P2 (list (+ (car PT)(* 22 h)) (cadr PT)) P3 (list (car PT) (- (cadr PT)(* 3 h))) P4 (list (car P1) (cadr P3)) P5 (list (car P2) (cadr P3)) P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h))) P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h))) P9 (list (car PT) (- (cadr P3)(* 3 h))) P10 (list (car P1) (cadr P9)) P11 (list (car P2) (cadr P9)) P12 (list (car P7) (- (cadr P3)(* 1.5 h))) P13 (list (car P8) (cadr P12)) );setq (ST:Entmake-Pline (list ptt1 ptt2 ptt3 ptt4) tlay 4 T) (setq elast (entlast));; boundary (setq dt (* (distance ptt1 ptt2)(distance ptt3 ptt4) tl tl 0.000001) tdt (+ tdt dt)) (ssadd elast ss) (ST:Entmake-Pline (list PT P2 P5 P3) tLay 4 T) (ST:Entmake-Pline (list P1 P4) tLay 4 Nil) (wtxt_l (rtos k 2 0) P7 h) (wtxt_l (rtos dt 2 2) P8 h) (wtxt_l (rtos k 2 0) (mid elast) h)(ssadd (entlast) ss) (if (setq ptt1 (getpoint "\n\U+0110i\U+1EC3m th\U+1EE9 nh\U+1EA5t :"))(setq ptt2 (getpoint ptt1 "\n\n\U+0110i\U+1EC3m th\U+1EE9 hai :"))) (if (setq ptt3 (getpoint ptt2 "\n\U+0110i\U+1EC3m th\U+1EE9 ba :")) (setq ptt4 (getpoint ptt3 "\n\U+0110i\U+1EC3m th\U+1EE9 t\U+01B0 :"))) );while (setvar "DIMZIN" ladin) (ST:Entmake-Pline (list P3 P9 P11 P5) tLay 4 T) (ST:Entmake-Pline (list P10 P4) tLay 4 Nil) (wtxt_l "Tæng" P12 h) (wtxt_l (rtos tdt 2 2) P13 h) (initget 1 "c k C K") (if (setq ans (getkword " X\U+00F3a \U+0111\U+00E1nh d\U+1EA5u [C/K ] :?")) (setq ans (strcase ans ))) (if (or (= ans "")(= ans nil)(= ans "C")) (command "erase" ss "")) (command "undo" "end") (setvar "cmdecho" 1) )
Hề hề hề nó chạy ngon rùi bác a. Nhưng đúng là khó ưa thật^^. nhìn nó vẽ mấy cái đường thẳng bùn cười chít.
Bác chu đáo quá còn thêm vào phần xóa đánh dấu nữa^^
Em cám ơn bác nhiều a.
Chúc bác và cả nhà 1 ngày may mắn :D
-
1
-
-
Trước đến h dùng lệnh Xclip chỉ cho hiển thị 1 phần Block bên trong Vùng boudary. Các bác có biết lệnh hệ thống nào để cho nó hiển thị theo tiêu chí ngược lại không. Nghĩa là khi chọn Polyline thì phần hiển thị của Block lại là vùng bên ngoài của Polyline không? Thank's
dùng lệnh wipeout cũng đc mà :)
nó ngược lại với lệnh xc thay vì hiện 1 phần nó ẩn đi 1 phần :D
-
1
-
1
-
-
- 1,3 : OK
- 2 : nếu bạn chọn 4 điểm bất kỳ, chẳng may nó không là 4 điểm của 2 cạnh vuông góc thì bạn muốn tính DT theo kiểu gì đây, hay chỉ là chiều dài x chiều rộng và cũng không thiết phải tạo cho bạn cái preview như lisp đang làm ??? :)
Update cái mới dễ nhìn hơn :
(defun c:bdt(/ ptt1 ptt2 ptt3) (defun wtxt_l(txt p h);;;Write txt on graphic screen at p (entmake (list (cons 0 "TEXT") (cons 7 (getvar "textstyle")) (cons 40 h)(cons 72 1)(cons 11 p) (cons 1 txt) (cons 10 p)))) (defun mid (ent / p1 p2) (vla-getboundingbox (vlax-ename->vla-object ent) 'p1 'p2) (setq p1 (vlax-safearray->list p1) p2 (vlax-safearray->list p2) pt (mapcar '+ p1 p2) pt (mapcar '* pt '(0.5 0.5 0.5)) ) pt ) (setvar "cmdecho" 0) (command "undo" "begin") (setq lacol (getvar "CEColor")) (setq ladin (getvar "dimzin")) (if (not tl) (setq tl 1)) (if (not h) (setq h 1)) (setq tl1 (getreal (strcat "\nty le ban ve < 1/" (rtos tl 2 0) " >: 1/")) caot1 (getreal (strcat "\nCao text < " (rtos h 2 2) " >: "))) (if tl1 (setq tl tl1)) (if caot1 (setq h caot1)) (setq k 0 tdt 0) (setvar "dimzin" 0) (setq PT (getpoint "\nChon diem xuat bang thong ke dien tich (mep trai):")) (setq P1 (list (+ (car PT)(* 6 h)) (cadr PT)) P2 (list (+ (car PT)(* 22 h)) (cadr PT)) P3 (list (car PT) (- (cadr PT)(* 3 h))) P4 (list (car P1) (cadr P3)) P5 (list (car P2) (cadr P3)) P6 (list (+ (car PT)(* 11 h)) (+ (cadr PT)(* 2 h))) P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h))) P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h))) );setq (command "pline" "_non" PT P2 P5 P3 "C" "pline" P1 P4 "") (wtxt_l "%¶ng thèng kª diÖn tÝch" P6 (* 1.2 h)) (wtxt_l "STT" P7 h) (wtxt_l "DiÖn tÝch (m2)" P8 h) (if (setq ptt1 (getpoint "\n Diem thu nhat canh 1 : "))(setq ptt2 (getpoint ptt1 "\n Diem thu 2 canh 1"))) (if ptt2 (setq ptt3 (getpoint ptt2 "\n Diem thu 2 canh 2 :"))) (while (and (/= ptt1 nil)(/= ptt2 nil)(/= ptt3 nil)) (setq k (+ 1 k)) (setq PT (list (car P3) (cadr P3)) P1 (list (+ (car PT)(* 6 h)) (cadr PT)) P2 (list (+ (car PT)(* 22 h)) (cadr PT)) P3 (list (car PT) (- (cadr PT)(* 3 h))) P4 (list (car P1) (cadr P3)) P5 (list (car P2) (cadr P3)) P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h))) P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h))) P9 (list (car PT) (- (cadr P3)(* 3 h))) P10 (list (car P1) (cadr P9)) P11 (list (car P2) (cadr P9)) P12 (list (car P7) (- (cadr P3)(* 1.5 h))) P13 (list (car P8) (cadr P12)) );setq (command "cecolor"4 ".rectang" "_non" ptt1 ptt3)(setq elast (entlast));; boundary (command "area" "O" "L") (setq dt (* (getvar "area") tl tl 0.000001) tdt (+ tdt dt)) (setvar "CEColor" lacol) (command "pline" "_non" PT P2 P5 P3 "C" "pline" "_non" P1 P4 "") (wtxt_l (rtos k 2 0) P7 h) (wtxt_l (rtos dt 2 2) P8 h) (wtxt_l (rtos k 2 0) (mid elast) h) (if (setq ptt1 (getpoint "\n Diem thu nhat canh 1 : "))(setq ptt2 (getpoint ptt1 "\n Diem thu 2 canh 1"))) (if ptt2 (setq ptt3 (getpoint ptt2 "\n Diem thu 2 canh 2 :"))) );while (setvar "DIMZIN" ladin) (command "pline" "_non" P3 P9 P11 P5 "C" "pline" "_non" P10 P4 "") (wtxt_l "Tæng" P12 h) (wtxt_l (rtos tdt 2 2) P13 h) (command "undo" "end") (setvar "cmdecho" 1) )
2. Đúng rùi bác a. chỉ cần dài x rộng thôi, cái preview bỏ qua cũng đc, bác đánh đấu vùng đã làm bằng số như lisp cũ là ok a. vị trí số này theo e nên để ở trung điểm cạnh thứ 1.
- cái lisp sau e chạy đc 1 lần rùi nó báo:
Command: bdt
ty le ban ve < 1/1 >: 1/
Cao text < 500.00 >:
Chon diem xuat bang thong ke dien tich (mep trai):
Diem thu nhat canh 1 :
Diem thu 2 canh 1
Diem thu 2 canh 2 :; error: no function definition: VLAX-ENAME->VLA-OBJECT
-
Câu chăm chỉ mình cũng không dám nhận. Coding vội, còn nhiều thứ tiểu tiết bạn cứ nói mình thêm sau, giờ mần việc khác ^^
(defun c:bdt(/ ptt1 ptt2 ptt3) (setvar "cmdecho" 0) (command "undo" "begin") (setq lacol (getvar "CEColor")) (setq ladin (getvar "dimzin")) (setq laos (getvar "osmode")) (if (not tl) (setq tl 1)) (if (not h) (setq h 1)) (setq tl1 (getreal (strcat "\nty le ban ve < 1/" (rtos tl 2 0) " >: 1/")) caot1 (getreal (strcat "\nCao text < " (rtos h 2 2) " >: "))) (if tl1 (setq tl tl1)) (if caot1 (setq h caot1)) (setq k 0 tdt 0) (setvar "dimzin" 0) (setvar "OSMODE" 0) (setq PT (getpoint "\nChon diem xuat bang thong ke dien tich (mep trai):")) (setq P1 (list (+ (car PT)(* 6 h)) (cadr PT)) P2 (list (+ (car PT)(* 22 h)) (cadr PT)) P3 (list (car PT) (- (cadr PT)(* 3 h))) P4 (list (car P1) (cadr P3)) P5 (list (car P2) (cadr P3)) P6 (list (+ (car PT)(* 11 h)) (+ (cadr PT)(* 2 h))) P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h))) P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h))) );setq (command "pline" PT P2 P5 P3 "C" "pline" P1 P4 "" "text" "m" P6 (* 1.2 h) 0 "%%UB¶ng thèng kª diÖn tÝch" "text" "m" P7 h 0 "STT" "text" "m" P8 h 0 "DiÖn tÝch (m2)" );command (if (setq ptt1 (getpoint "\n Diem thu nhat canh 1 : "))(setq ptt2 (getpoint ptt1 "\n Diem thu 2 canh 1"))) (if ptt2 (setq ptt3 (getpoint ptt2 "\n Diem thu 2 canh 2 :"))) (while (and (/= ptt1 nil)(/= ptt2 nil)(/= ptt3 nil)) (setq k (+ 1 k)) (command "TEXT" "m" pt1 (* 3 h) 0 (rtos k 2 0)) (setq PT (list (car P3) (cadr P3)) P1 (list (+ (car PT)(* 6 h)) (cadr PT)) P2 (list (+ (car PT)(* 22 h)) (cadr PT)) P3 (list (car PT) (- (cadr PT)(* 3 h))) P4 (list (car P1) (cadr P3)) P5 (list (car P2) (cadr P3)) P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h))) P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h))) P9 (list (car PT) (- (cadr P3)(* 3 h))) P10 (list (car P1) (cadr P9)) P11 (list (car P2) (cadr P9)) P12 (list (car P7) (- (cadr P3)(* 1.5 h))) P13 (list (car P8) (cadr P12)) );setq (command "cecolor"4 ".rectang" ptt1 ptt3);; boundary (command "area" "O" "L") (setq dt (* (getvar "area") tl tl) tdt (+ tdt dt)) (setvar "CEColor" lacol) (command "pline" PT P2 P5 P3 "C" "pline" P1 P4 "" "text" "m" P7 h 0 (rtos k 2 0) "text" "m" P8 h 0 (rtos dt 2 2)) (if (setq ptt1 (getpoint "\n Diem thu nhat canh 1 : "))(setq ptt2 (getpoint ptt1 "\n Diem thu 2 canh 1"))) (if ptt2 (setq ptt3 (getpoint ptt2 "\n Diem thu 2 canh 2 :"))) );while (setvar "DIMZIN" ladin) (command "pline" P3 P9 P11 P5 "C" "pline" P10 P4 "" "text" "m" P12 h 0 "Tæng" "text" "m" P13 h 0 (rtos tdt 2 2) );command (setvar "OSMODE" laos) (command "undo" "end") (setvar "cmdecho" 1) )Lisp chạy đúng nhưng còn 1 vài vấn đề:
- mỗi lần chạy lệnh osnap đều phải chọn lại dù đã bật sẵn.
- cách bắt 3 điểm chỉ làm đc khi điểm thứ 2 và 3 là điểm góc, em muốn chọn 2 điểm của cạnh 1 rùi tới 2 điểm của cạnh 2 riêng rẽ và 4 điểm đó có thể là 4 điểm bất kỳ thuộc 4 cạnh chứ không nhất thiết phải là điểm góc.
- đơn vị tính đang là mm, bác chuyển kết quả về m giúp e và chỉ cần 2 số sau dấu phẩy thôi a.
Em cám ơn bác.
màu nền bên layout
trong Lập trình khác
Đã đăng · Trả lời báo cáo
Bạn vào option > display > bỏ tích ở display paper background la ok