

lanvientkh
-
Số lượng nội dung
60 -
Đã tham gia
-
Lần ghé thăm cuối
Bài đăng được đăng bởi lanvientkh
-
-
ko có ai giúp mình với, buồn ghê
-
Dear các bạn, mình có lisp copy trên diễn đàn, giờ mình muốn Lisp này như thế này được ko?
(defun c:cc (/ doituong total dtuong1 tdt dt ktext ktratext ktratext1 ktextcu textdt ktextmoi newcolor oldcolor)(setq doituong (ssget '((0 . "*LINE"))))(setq total (sslength doituong))(setq tdt 0)(repeat total(setq total (- total 1))(setq dtuong1 (cdr (car (entget (ssname doituong total)))))(command "LENGTHEN" dtuong1 "")(setq dt (getvar "Perimeter"))(setq tdt (+ tdt dt)))(setq ktext (car (entsel "Chon vao text: ")))(setq ktratext (entget ktext))(setq ktratext1 (cdr (assoc 0 ktratext)))(if (= ktratext1 "TEXT")(progn(setq ktextcu (assoc 1 ktratext))(setq textdt (strcat "L= " (rtos (- tdt 0) 2 0) " m"))(setq ktextmoi (cons 1 textdt))(setq ktratext (subst ktextmoi ktextcu ktratext))(entmod ktratext)(setq color 4)(setq newcolor (cons 62 color))(if (assoc 62 ktratext)(progn(setq oldcolor (assoc 62 ktratext))(setq ktratext (subst newcolor oldcolor ktratext))(entmod ktratext))(entmod (append ktratext (list (cons 62 color))))))(alert "¤i trкi ¬i, chдn nhЗm rеi, ®г kh«ng ph¶i lµ tetx!"))(textpage)(graphscr))- Lisp đo ra chiều dài text ko xuất ra các số 0 phía sau, ví dụ: L=11,800m thì chỉ xuất ra text là L=11,8m
- Lisp này có thêm chế độ chọn liên tục nhiều Line (multi) được không?
- Mình có nhiều đoạn Line khác nhau, ví dụ AB, CD, EF..,...theo Lisp này thì xong từng đoạn Line rồi lập lại từ đầu với các đoạn khác, như vậy hơi mất thêm thời gian
- cảm ơn các bạn, đây là lisp mình lấy trện diễn đàn
-
Với LINE thì sử dụng dòng này không được
(command "area" "e" dtuong1)
Vì LINE không có diện tích
Và ngoài ý 1 mà bạn DoanVanHa đã nêu trên, bạn alpha1810 phải thay dòng
(command "area" "e" dtuong1)
thành dòng :
(command "LENGTHEN" dtuong1 "")
hoặc : (command "LIST" dtuong1 "")
Bạn Tue_NV ơi,
- Lisp này có thêm chế độ chọn liên tục nhiều Line (multi) được không?
- Mình có nhiều đoạn Line khác nhau, ví dụ AB, CD, EF..,...theo Lisp này thì xong từng đoạn Line rồi lập lại từ đầu với các đoạn khác, như vậy hơi mất thêm thời gian
- kết quả xuất ra "m" thay vì "mm"
Cảm ơn bạn
-
1
-
Nó như thế này:
quá pro bạn quocmanh04tt, hihi
-
Ah, block ko đối xứng. Hì, cụ tỉ thế nào thì bạn phải đưa bản vẽ lên mọi ng mới giúp dc chứ. : )
Dear bạn, cảm ơn bạn đã quan tâm, mình ko up được bạn down theo link này vậy nhé.
https://drive.google.com/file/d/0BylXnbMPZLENc3hYVEZRZ0ppRzg/view?usp=sharing
-
Giao quay lên / Giao quay xuống là thế nào?
Giao là giao điểm, lisp này chỉ có 1 điểm duy nhất người ta cần biết là tọa độ của điểm giao chứ cần quan tâm gì đến quay lên với quay xuống. ???
Chào bạn, tại điểm giao sẽ chèn block nhưng block là hình tròn hay hình vuông thi chèn tại điểm giao là giống nhau, nhưng khi block là một hình khác thì block sẽ quay theo nhiều hướng khác nhau, khi điểm giao bên trái, bên phải, bên trên, bên dưới..,cái hình minh họa thì giống như video của bạn quocmanh04tt đã thể hiện rồi đó bạn.
-
Bạn thử cái này có đúng ý bạn không
(defun LM:IntersectionsinSet ( ss / a b i j l ) (setq i (sslength ss)) (while (not (minusp (setq j (1- i) i (1- i)))) (setq a (vlax-ename->vla-object (ssname ss i))) (while (not (minusp (setq j (1- j)))) (setq b (vlax-ename->vla-object (ssname ss j)) l (cons (LM:GroupByNum (vlax-invoke a 'IntersectWith b acExtendNone) 3) l) ) ) ) (apply 'append l))(defun LM:GroupByNum ( l n / r) (if l (cons (reverse (repeat n (setq r (cons (car l) r) l (cdr l)) r)) (LM:GroupByNum l n) ) ))(defun dxf (code e) (cdr (assoc code (entget e))))(defun C:ibi(/ os ss lst en pt item)(setq os (getvar "osmode"))(setvar "osmode" 0)(princ "\n Chon cac doi tuong giao nhau")(setq ss (ssget) lst (LM:IntersectionsinSet ss) en (car (entsel "\nChon Block")) pt (dxf 10 en))(foreach item lst (command "copy" en "" pt item))(setvar "osmode" os))
Bạn ơi,
Trường hợp tại nhũng điểm giao này, có điểm thì giao quay lên, có điểm thì giao quay xuống mình phải xử lý thế nào vậy bạn, hiện nay lisp này sau khi dùng có đôi chỗ giao mình phải xoay block, cảm ơn bạn.
-
1
-
-
Trước khi chèn, thử kiểm tra xem trên bản vẽ hiện hành đã tồn tại block có tên đó chưa, nếu có rồi thì thử purge hoặc rename block đó đi xem sao!
Hi bạn quocmanh04tt,
Mình muốn Lisp có thể tự tạo ra block khi có sự giao nhau giữa các đường Line và Pline như hình được ko, nhờ các bạn giúp mình với
-
1
-
-
Cái lsp trên nó làm công việc như thế này:
1. Chọn các pline của layer SN-TNM.
2. Từ hai đầu của mỗi pline trên bắt các đối tượng khác . Sẽ có các trường hợp sau:
a. Nó chỉ bắt được chính nó, khi đó nó hiểu là tại vị trí đó là đầu nguồn và sẽ chèn block "daucong" vào.
b. Nó bắt được đối tượng cùng layer SN-TNM với nó, khi đó nó hiểu đó là chỗ nối ống phụ vào ống chính, nó sẽ không làm gì hết.
c, Nó bắt được pline khác layer với nó (trong bản vẽ là layer rãnh nước), khi đó nó hiểu là sẽ chèn block "cuax" vào chỗ đó.
Bạn xem như vậy có tiện không, hay là cần đổi thế nào?
Hi các bạn,
Mình muốn Lisp có thể tự tạo ra block khi có sự giao nhau giữa các đường Line và Pline như hình được ko, nhờ các bạn giúp mình với
-
- Xin lỗi vì mình nói chưa rõ ràng ở ý 1, làm bạn hiểu nhầm. Ý của mình là: Với mục đích cuối cùng như vậy thì không nên vẽ 3D, mà chỉ vẽ ở dạng 2D là đủ và sử dụng SNAPANG.
- Với cách vẽ như của bạn thì bẻ cong kiểu gì? Vẽ 3D thì nếu giao nhau thì giao thật, còn không giao mà muốn thể hiện bẻ cong 2D thì không làm được.
oki thanks bạn nhiều hehe
-
1. Vậy vẽ trong 3D chi cho phức tạp? Nếu vậy bạn có thể dùng lệnh SNAPANG quay góc tùy ý để vẽ.
2. Nếu theo bản vẽ của bạn thì xác định TEXT tương đối phức tạp:
- Xác định mặt phẳng đặt TEXT (mặt phẳng này quay quanh trục - Chính là đường LINE mà bạn muốn đặt).
- Sau khi có mặt phẳng đó rồi mới xác định góc quay của TEXT trong mặt phẳng đó...
SNAPANG Chỉ set được có một trục bạn quocmanh mà mình vẽ thì cần tới 3 trục lận.
Còn cái BẺ CONG LINE GIAO NHAU nhờ bạn xử lý dùm mình với
-
Cho mình hỏi: Mục đích cuối cùng của bạn là đối tượng trong 3D thật, hay chỉ là 2D mô phỏng 3D?
Mục đích cuối cùng của mình là Cad 2D và 2,5D thui chứ ko xài 3D, vẽ ko gian nên phải đổi trục thôi, nhưng ko phải 3D chỉ là 2,5D hihi
-
Bạn xem lại cách share link, nếu bấm vào link đó thì người bấm được đưa đến GoogleDriver của chính mình.
gửi lại bạn
xoay text
https://drive.google.com/file/d/0B1TsLvqrTXByNXV5VjJhZXQ3MHc/view?usp=sharing
bẻ cong line
https://drive.google.com/file/d/0B1TsLvqrTXByOU96dzhSdldzZms/view?usp=sharing
-
- Uh, mấy hôm nay 4R không Up được file (Bạn có thể Up lên trang khác rồi dẫn đường link được mà. Ví dụ: GoogleDriver, Mediafire...)
- Lisp đó nếu đổi UCS thì phải sửa lsp
- Sao bạn không dùng cái của LM mà bác Hạ đã đưa trong bài #65 ở trên.
Hi bạn quocmanh,
Mình thấy lisp xoay text của bạn quá tốt chỉ cần sửa lại là Oki rồi.
Trong file mình đính kèm có cái Lisp ở 4R mà mình có nhờ bạn "LISP BẺ CONG LINE GIAO NHAU, LISP CCL, EDR" bị lỗi nhờ bạn sửa lại giúp với nhé, thanks bạn
-
1. Sửa thế này mà (gồm cả dấu "()"):
ang => (FixTextAngle ang)
2. Nếu thỉnh thoảng vẫn bị thì làm theo #59 ở trên.
bạn quocmanh04tt ơi,
mình gặp phải vấn đề này nhờ bạn với, mình hay vẽ Sơ đồ không gian nên phải đổi trục bản vẽ, dùng lệnh UCS đổi trục, khi này Lisp xoay text này ko còn đúng nữa. Mình muốn đính kèm file nhưng cả tuần này ko UP file lên được, giúp mình với nhé thanks bạn
-
1. Sửa thế này mà (gồm cả dấu "()"):
ang => (FixTextAngle ang)
2. Nếu thỉnh thoảng vẫn bị thì làm theo #59 ở trên.
Quá tốt, cảm ơn bạn, đầu tuần vui vẽ nhé quocamnh04tt
-
Bạn post cái lisp bạn đã sửa lên xem nào!
Hoặc gõ lệnh Aperature (lệnh tắt APE) thiết lập giá trị nhỏ xuống.
Đây Lisp mình sửa theo hướng dẫn của bạn, bạn kiểm tra dùm mình nhé
-
Bạn thay (ở cuối lisp) ang thành (FixTextAngle ang)
P/s: Chấp nhận canh lề Text như lisp chứ?
Căn lề Ok rồi bạn quocmanh04tt ơi, nhưng đôi khi Text vẫn chưa song song với line bạn ah
-
- Cần lắm bản vẽ minh họa.
- Lisp hiện tại căn cứ điểm chèn của Text và điểm pick vào Line, 2 điểm này cách nhau (0.5*chiều cao Text) theo phương vuông góc với Line.
- Mình hiểu như lisp ở dưới không biết có đúng không (Chấp nhận sau khi chạy lsp, text sẽ canh lề: BottomCenter, nếu không lsp sẽ viết dài hơn)
BẠN MẠNH ƠI,
Lisp đôi khi bị lỗi, cho ra kết quả khác nhau bạn, cảm ơn bạn
-
Do CAD nó chơi đểu (góc 1.5pi nó không chịu sánh) :D
Bạn thay lại hàm này trong lisp:
Dear bạn quocamnh04tt, cuối tuần vui vẽ chứ bạn,
Bạn ơi, mình có thể thêm tính năng này được ko
vị trí đặt Text đúng với vị trí khi mình chọ Line (hiện nay sau khi sử dụng lisp phải Move lai Text mất thêm một bước nữa, hihi), cảm ơn bạn
-
Do CAD nó chơi đểu (góc 1.5pi nó không chịu sánh) :D
Bạn thay lại hàm này trong lisp:
Quá tốt, cảm ơn bạn nhé, cuối tuần vui vẽ nhé bạn quocmanh04tt
-
Cảm ơn bạn, Lisp quá tốt nhưng ko biết sao đôi khi Lisp bị lỗi như file mình đính kèm, bạn kiểm tra dùm mình với nhé
http://www.cadviet.com/upfiles/6/154521_test_xoay_cach_deu_text.dwg
-
Khoảng nhất định phải nhập vào à?
(Nếu cho text canh lề "Bottom Center" và điểm này nằm giữa đoạn thẳng thì sao?)
P/s: Mà nếu cách Line 1 khoảng nhất định thì khi quét chọn 1 lúc nhiều Text thì các text sẽ bị chồng lên nhau.
cảm ơn bạn đã quan tâm nhé
- Khoảng cách này mặc định trong lisp luôn bạn, khỏi mất công phải nhập khoảng cách này, nhìn sao thấy đẹp là ok rồi
- Mình ko cần căn lề text bạn, chỉ cần các Text cách đường Line với khoảng cách đều mặc định là được
- Lisp này có thêm tính năng chọn liên tục (multi) nữa là quá hay, chọn Line 1 sau đó chọn Text 1; chọn Line 2 sau đó chọn Text 2.......(ko biết yêu cầu của mình quá cao ko, nhưng mong muốn của con người là vô hạn, hay đòi hỏi, hihi)
http://www.cadviet.com/upfiles/6/154521_xoay_cach_deu_text_3.dwg
-
Bạn thử cái này nhé:
1. Chép hàm sau vào trong lisp
(defun FixTextAngle (ang)
(if (and (> ang (* 0.5 pi)) (<= ang (* 1.5 pi)))
(+ ang pi)
ang))
2. Ở gần cuối lisp thay (cons 50 goc) thành (cons 50 (FixTextAngle goc))
3. Có gì chưa ổn phản hồi tiếp nhé!
cảm ơn bạn, giúp mình thêm tính năng này với nhé quocmanh
[Đã xong] Lisp xuất chiều dài Line ra Text có sẵn và có tiền tố, hậu tố
trong AutoLisp
Đã đăng · Trả lời báo cáo
mình ko up lên cadviet mình gửi kèm link gồm dwg và lisp bạn nhé, đây là lisp mình lấy được trên diễn đàn, cảm ơn bạn, cuối tuần vui vẽ nhé
https://drive.google.com/file/d/0B1TsLvqrTXBycDY1RzllYW0yU28/view?usp=sharing