Info | File | ||
Tác giả: Tot77 Bài viết gốc: 308369 Tên lệnh: tao |
nhờ kết hợp 2 lisp
Thật ra cái này tuy tôi viết cũng lâu rồi nhưng chỉ mang tính thử nghiệm (làm cho biết), chưa có ứng dụng thực tế. Bạn muốn dùng thì down cái lsp này về. Trong file bạn phải có sẵn pline và text cho từng đoạn của pline (đặt text gần cái đoạn của nó). Đánh lệnh "tao", chọn pline, quét các text của pline. XOng vẫn chưa thấy có gì khác, tuy nhiên nếu bạn thay đổi chiều dài...
| ||
Tác giả: hiepttr Bài viết gốc: 298938 Tên lệnh: mchange cont |
Chương 7.2,3 : Bài Tập
Mới được mấy bài, gửi lên để hâm nóng lớp :D :D :D Chờ phán :lol: ;;;1. Ham doc ma dxf cua doi tuong. Doi so la ename doi tuong va ma dxf (defun dxf (ename code) (cdr (assoc code (entget ename))) ) ;;=========================================================== ;;;2. Ham doi thuoc tinh dxf cua 1 doi tuong. Doi so la ename, dxf, gia tri dxf (defun change_dxf(ename dxf val) (entmod (subst (cons dxf val) (assoc dxf (setq info (entget...
| ||
Tác giả: hiepttr Bài viết gốc: 298982 Tên lệnh: mchange cont 2 change color |
Chương 7.2,3 : Bài Tập
>>>tiếp ... ;;;8. Viet lenh sao chep noi dung tu Dtext nguon ra dtext khac, chon nguon -> quet chon text dich (defun c:Mchange_cont_2( / ss1 ss2 cont ent) (prompt "\nPick chon text can sao noi dung: ") (setq ss1 (ssget "_+.:E:S" '((0 . "TEXT")))) (if ss1 (progn (setq cont (assoc 1 (entget (ssname ss1 0)))) (prompt "\nChon text can paste noi dung ! ") (setq ss2 (ssget '((0 . "TEXT")))) (if ss2 (repeat (sslength ss2) (setq ent...
| ||
Tác giả: hiepttr Bài viết gốc: 299283 Tên lệnh: mchange cont 2 |
Chương 7.2,3 : Bài Tập
Dear Mr Ket ! :D :D :D - Phân biệt DT & MT vì nếu MT mà dùng append ---> cho kết quả là strcat của 2 string - Sửa như ở dưới: ... - Không biết còn cao chiêu gì nữa để dùng append không ?! Song, theo mình nếu dùng append đối với mã 1 cho mtext, mã 10 cho polyline ... thì nó bổ sung vào chứ ko thay thế như yêu cầu đề bài ! ===>>> cần chỉ giáo thêm ! - Bài 8, được...
| ||
Tác giả: thanhduan2407 Bài viết gốc: 308528 Tên lệnh: cv3d23d |
Hỏi về Lisp (thuật toán, ý tưởng, coding,...)
Em dùng một số hàm sau đây để vẽ lại 3D Polyline từ 2D Polyline có các đỉnh đi qua các TEXT. Tại mỗi đỉnh 2D Polyline em cứ phải duyệt qua tất cả các Text có trong bản vẽ. Cho em hỏi các bác xem còn cách nào làm tối ưu hơn không ạ? Đây là CODE của em. (vl-load-com) (defun C:CV3D23D(/ Olmode en n ob Pnt_i Lts1 i P1 Pnt_TB Pnt_DN y ss1 Pnt_i e) (defun *error* ( msg...
| ||
Tác giả: phamngoctukts Bài viết gốc: 108531 Tên lệnh: recc | |||
Tác giả: Tot77 Bài viết gốc: 308291 Tên lệnh: lnt |
Xin linetype hình chữ nhật tiếp giáp nhau
Tôi không biết cách nào tạo linetype như vậy, nhưng bạn có thể dùng lsp này để rải cái block đó. Điều kiện là trong file phải có cái block tên "VH zig zag" và kích thước của nó theo chiều dài là 1. Tôi không biết bạn vẽ theo tỉ lệ nào, cho nên cứ xài thử xem sao. Có điều là nó rải theo khoảng cách chẵn, thí dụ nếu kc = 10.5 thì nó chỉ rải 10 thôi.
| ||
Tác giả: nhoclangbat Bài viết gốc: 308928 Tên lệnh: kvv |
Lisp ghi tên đường và hướng đi
- Như tiêu đề nhóc mún 1 lsp như trên, nhoc cũng thử mò viết theo ý mình với khả năng của mình, lsp xài cũng được ^^, nhưng vẫn còn thủ công, nay nhoc mún nhờ mí a trên diễn đàn giúp nhoc cải tiến lsp nếu ko mún nói là viết mới hoàn toàn @@ :), ý tưởng của nhoc thế này: - sau khi chạy lệnh vẫn hỏi nhập tỉ lệ như bình thường - sau đó sẽ hiện dòng nhắc nhập tên viết tắc...
| ||
Tác giả: Tot77 Bài viết gốc: 308856 Tên lệnh: lnt |
Xin linetype hình chữ nhật tiếp giáp nhau
Đâu có rải vuông góc!! Bạn gõ lnt xong thì chọn điểm giống như vẽ line vậy thôi, nó rải doc theo line. Vì thấy vẽ line đơn giản nên tôi không thêm dòng nào ở command, còn nếu bạn muốn thêm thì down cái này. (defun c:lnt() (defun rtd(a) (* 180 (/ a pi))) (setvar 'insunits 0) (setq a (getpoint "\nChon diem bat dau:")) (while (setq b (getpoint a "\nChon diem tiep...
| ||
Tác giả: thanhduan2407 Bài viết gốc: 309044 Tên lệnh: tvg |
Entmod đối với điểm chèn của đối tượng Text
Chào các bác! Từ trước đến giờ em vẫn băn khoăn với điểm chèn của Text. Thường thì căn chỉnh lề của TEXT là LEFT thì không vấn đề gì nhưng nếu căn chỉnh TEXT ở dạng khác thì việc Entmod Text sẽ có vấn đề xảy ra. Text có 2 mã để lấy toạ độ là 10 và 11. 1. Nếu em có 1 điểm toạ độ mới làm thế nào để cho điểm chèn chuẩn của Text...
| ||
Tác giả: Tot77 Bài viết gốc: 309063 Tên lệnh: ddo |
Lisp tính cao độ khi biết cao độ và độ dốc
Bạn thử cái này. Nhấp điểm biết cao độ, chọn text cao độ của điểm đó, nhập độ dốc dạng 0.00... (+ lên - xuống), sau đó nhấp điểm muốn biết độ cao. (defun c:ddo( / a b txt tt1 sole dd1 vt) (defun dxf (id v) (cdr (assoc id (entget v)))) (setq a (getpoint "\nChon diem da biet cao do: ") txt (car (entsel "\nText cao do tuong ung: ")) tt1 (dxf 1 txt) sole (if (setq vt...
| ||
Tác giả: nhoclangbat Bài viết gốc: 309112 Tên lệnh: clt |
Xin lisp nội suy cao độ từ 2 điểm (3 điểm nằm trên 1 đoạn thẳng)
hihi rãnh rãnh nhóc nghịch chơi, ko pit có làm hư lsp ko mình test so sánh chưa sữa với sữa cũng đúng cao độ text in ra và thỏa yêu cầu cho properties text có z=0 của bạn, còn số hiển thị trên text vẫn đúng cao độ cần tìm ^^ ;; free lisp from cadviet.com ;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/107133-xin-lisp-noi-suy-cao-do-tu-2-diem-3-diem-nam-tren-1-doan-thang/ ;; free...
| ||
Tác giả: gia_bach Bài viết gốc: 309133 Tên lệnh: tvg |
Entmod đối với điểm chèn của đối tượng Text
ví dụ dùng vl : (defun c:TVG(/ Obj ss );;;;TEXT VUONG GOC (if (and (setq obj (vlax-ename->vla-object (car...
| ||
Tác giả: Tot77 Bài viết gốc: 309135 Tên lệnh: rdi |
Nhờ Viết Lisp
Bạn dùng cái này, dùng được cho cả line,pline,spline,arc,circle... trừ block. Chọn đối tượng, nhập khoảng cách (cách nhau bởi dấu phẩy) thí dụ : 1.2,2.3,500,1000 chọn diểm bắt đầu (điểm bất kỳ trên đối tượng), chọn điểm cuối (để biết rải theo hướng nào). Nó sẽ rải point theo thứ tự. (defun c:rdi(/ vat st1 st2 dd dd1 dc dc1 lenh kc) ...
| ||
Tác giả: Tot77 Bài viết gốc: 309070 Tên lệnh: tvg |
Entmod đối với điểm chèn của đối tượng Text
Bạn thử cái này. (defun c:TVG(/ Obj ss );;;;TEXT VUONG GOC (setq obj (vlax-ename->vla-object (car (entsel "\nChon Line hoac Polyline:")))) (prompt "\nChon text:") (setq ss (ssget '((0 . "TEXT")))) (mapcar '(lambda(x / tm) (setq tm (TD:TEXTBASE x)) (if (= (car tm) 10) (vla-put-InsertionPoint (vlax-ename->vla-object x) (vlax-3d-point (vlax-curve-getClosestPointTo obj (last tm) T))) ...
| ||
Tác giả: Tot77 Bài viết gốc: 309262 Tên lệnh: dem |
LISP KIỂM TRA CÁC TEXT TRÙNG NỘI DUNG!
Bạn dùng cái này. Những text nào trùng nhau thì nó chuyển sang layer 0 và đổi màu theo từng cặp. Chỉ cần đánh lệnh thôi. Cuối lệnh nó sẽ ghi lên dòng command những cái trùng nhau. (defun c:dem(/ l0 l1 ss n) (setvar 'cmdecho 0) (setq ss (ssget "X" '((0 . "TEXT")(1 . "~**"))) l0 (vl-remove-if-not '(lambda (x) (= 11 (strlen (cdr (assoc 1 (entget x)))))) (vl-remove-if 'listp (mapcar...
| ||
Tác giả: Doan Van Ha Bài viết gốc: 309280 Tên lệnh: ha |
Entmod đối với điểm chèn của đối tượng Text
Lisp của bác Gia_bach thiếu vài trường hợp. Có vẽ như cái này thì phù hợp với ý tưởng của em? (defun C:HA(/ obj pg);;;;TEXT VUONG GOC
(if
(and
(setq obj (vlax-ename->vla-object (car (entsel "\nChon Line hoac Polyline:"))))
(not (prompt "\nChon text:"))
(ssget '((0 . "TEXT"))))
(vlax-for e (vla-get-activeSelectionSet (vla-get-ActiveDocument...
| ||
Tác giả: thanhduan2407 Bài viết gốc: 309340 Tên lệnh: cvt3d |
Entmod đối với điểm chèn của đối tượng Text
Nhờ các hàm của các bác mà em đã hoàn thiện LISP CONVERT TEXT 3D rồi ạ. (defun C:CVT3D(/ ss0 ss ss1 ss2 item Caodo Pn) (vl-load-com) (setq ss (ssget (list (cons 0 "TEXT")))) (setq ss1 (ChonTextSo ss)) (setq ss2 (acet-ss-to-list ss1)) (foreach item ss2 (setq temp (entget item)) (setq Caodo (cdr (assoc 1 temp))) (setq e (vlax-ename->vla-object item)) (setq P1 (vlax-get e 'InsertionPoint)) (setq Pnt (list (car P1) (cadr P1)...
| ||
Tác giả: nhoclangbat Bài viết gốc: 309363 Tên lệnh: angsidet ast |
Nhờ giúp lisp lấy tọa độ x,y
hehe nghịch tí, ko phải lsp của nhoc, nhoc chôm của người ta ^^, nhưng nhoc ráng sửa cho đúng ý đồ của bạn, phần xuất ra txt y chang mẫu bạn đưa lên , chỉ khác chỗ tọa độ x y thay bằng số pick đc trên cad, lệnh là "AST" sau khi đánh lệnh kêu bạn chọn trạm máy với điểm định hướng bạn pick đại đâu cũng đc chủ yếu là để lấy cái cơ sở tính ra tọa độ bạn cần pick thui :))
| ||
Tác giả: thanhduan2407 Bài viết gốc: 309486 Tên lệnh: srd |
Lisp tạo một số ngẫu nhiên trong khoảng nhập vào
Với góp ý anh Tot77 em có chương trình gửi lên để ai cần mng dùng. (defun c:SRD(/ );;;;SO RANDOM (setq i 0) (setvar "CMDECHO" 0) (or *a* (setq *a* 0)) (setq a (getreal (strcat "\n \nNhap so nho: <" (rtos *a* 2 0) "> :" ) ) ) (if (not a) (setq a *a*) (setq *a* a)) (or *b* (setq *b* 10.0)) (setq b (getreal (strcat "\n \nNhap so lon: <" (rtos *b* 2 0) "> :" ) ) ) (if (not b) (setq b *b*) (setq *b*...
|
Trang 169/330