Chuyển đến nội dung
Diễn đàn CADViet
Nguyen Hoanh

Viết lisp theo yêu cầu [phần 2]

Các bài được khuyến nghị

Cám ơn Bạn mình đã hiểu .

nhưng vào bước 6 thì mình chọn theo khung cửa sổ, lisp chọn hết ---> mình muốn nó chỉ chọn theo đối tượng mẫu đã xác lập ở trên

Đối với bước 7 và 8 mình nên bổ sung lệnh vào trong lisp, yêu cầu đặt tên cho mới là gì ? và xuất ra lớp đó luôn.

Vậy có khó lắm không bạn, rất mong bạn giúp.

Chào bạn ocinaqua,

Bạn hiểu sai rồi.

Ở bước 6, lisp sẽ chỉ chọn các đối tượng thỏa điều kiện chọn theo mẫu mà bạn đã xác lập ở các bước trên chứ không phải chọn tất cả các đối tượng trong vùng chọn đâu

Bước 7, việc nhấn enter thực chất chỉ là việc kết thúc lệnh chọn đối tượng mà thôi, khi đó lisp sẽ hiển thị những đối tượng đả được chọn.

Bước 8, có thể bổ sung thêm vào lisp song như đã nói lisp này là của bác NguyenNdait, muốn bổ sung cần phải đọc và hiểu nó đã. Bạn phải chờ thôi. Trước mắt hãy cố hiểu để dùng nó phục vụ cho công việc của bạn đi đã, đừng chờ tới khi có phần bổ sung mới làm...

Chúc bạn vui.

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
Cám ơn Bạn mình đã hiểu .

nhưng vào bước 6 thì mình chọn theo khung cửa sổ, lisp chọn hết ---> mình muốn nó chỉ chọn theo đối tượng mẫu đã xác lập ở trên

Đối với bước 7 và 8 mình nên bổ sung lệnh vào trong lisp, yêu cầu đặt tên cho mới là gì ? và xuất ra lớp đó luôn.

Vậy có khó lắm không bạn, rất mong bạn giúp.

Chào bạn ocinaqua,

Bạn dùng thử cái này coi đã ưng ý chưa nhé. Mình tin là bạn sẽ còn nhiều yêu cầu nữa phát sinh. Hề hề hề.

Cái ni là mình bổ sung thêm vào lisp của bác NguyenNdait để bạn xài thử, có y kiến gì thì mình sẽ hoàn chỉnh sau. Hy vọng bạn sẽ thử dùng nó.

;;Loc lay cac doi tuong theo tinh chat cua doi tuong mau
(defun c:Loc (/ LOC1 LOC2 KDT LAY COR LTYP CACHLOC OBJ)
(setvar "osmode" 0)
(while (null (setq LOC1 (car (entsel "\nChon 1 doi tuong lam mau loc"))))
(princ "\nKhong co doi tuong."));while
(setvar "cmdecho" 1) ;;;;;;;;; (setvar "blipmode" blip) (setvar "osmode" osmo)
(setq LOC2 (entget Loc1) KDT (cdr (assoc 0 LOC2)) LAY (cdr (assoc 8 LOC2)))
(if (null (assoc 62 LOC2)) (setq COR 256) (setq COR (cdr (assoc 62 LOC2))))
(if (null (assoc 6 LOC2)) (setq LTYP "BYLAYER") (setq LTYP (assoc 6 LOC2)))
(initget "Kieu Lop Mau Dangduong")
(setq CACHLOC (getkword "\nChon cach loc: Kieu,Lop,Mau,Dangduong : "))
(setq ss (cond
((= "Kieu" CACHLOC) (sssetfirst nil (setq OBJ (ssget (list (cons 0 KDT))))))
((= "Lop" CACHLOC) (sssetfirst nil (setq OBJ (ssget (list (cons 8 LAY))))))
((= "Mau" CACHLOC) (sssetfirst nil (setq OBJ (ssget (list (cons 62 COR))))))
((= "Dangduong" CACHLOC) (sssetfirst nil (setq OBJ (ssget (list (cons 6 LTYP))))))
(t (sssetfirst nil (setq OBJ (ssget (list (cons 0 KDT) (cons 8 LAY) (cons 62 COR)
(cons 6 LTYP))))))
);cond
)

(setq Ten (getstring t "\n Nhap ten lop ban muon: "))
(if (= (tblsearch "layer" ten) nil)
   (command "layer" "n" ten "")
)
(command "change" (cadr ss) "" "p" "la" ten "")


(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
Em đã tìm trong các trang từ 120 trở về đây nhưng sao ko thấy cái lisp làm thưa trắc ngang mà bác nói, hix có ai cho em xin link được không ạ.

Đây bạn tròn 50 trang trước. không ngờ topic này trôi nhanh thế :undecided:

  • Vote tăng 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
Mình gộp hết lại vào 1 file lvtcu_ndait.lsp cho bạn dễ sử dụng :

http://www.cadviet.com/upfiles/3/lvtcu_ndait_1.lsp

 

Túm lại ctrình này có nhiệm vụ copy 1 vùng (rectangle) dữ liệu đến đặt vào 1 chỗ mà mình cần.

Bạn làm như sau :

load file lvtcu_ndait.lsp

gọi lệnh lvtcu

Nhập tỷ lệ mong muốn. 5 = 500 ( 1=1000 , 2=2000 ....)

Pick chọn vùng mà bạn cần đem kết quả đến bằng cách chọn 2 điểm tạo ra 1 hình chữ nhật. (Vùng đặt kết quả)

Dịch chuyển màn hình đến khu vực bạn cần lấy dữ liệu bằng nút cuộn của con chuột (Vùng dữ liệu cần lấy)

Lúc này bạn sẽ thấy 1 hình chữ nhật đi kèm theo con trỏ chuột.

Bạn pick chọn 1 điểm sao cho hcn đó chộp được những gì bạn cần.

Có thể bạn sẽ cần lấy thêm các số thửa lân cận nằm ngoài vùng chọn. Ban hãy chọn text rồi chọn 1 điểm trong vùng hcn để đặt nó. (Nếu thấy không cần bổ sung gì thì cứ enter cho qua ) Xong bấm enter.

Pick chọn 1 điểm tại 1 vị trí bất kỳ sao cho vùng màn hình có đủ chỗ trống để ct mượn chỗ thao tác. (Cắt xén)

Hết lệnh. Lúc này ct sẽ đem những gì bạn cần chép đến vùng kết quả

Bạn xem file ví dụ sẽ thấy rõ hơn :http://www.cadviet.com/upfiles/3/lvtcu.dwg

 

@: Nếu ctrình vẫn lỗi, không chạy trên máy bạn được thì bạn hãy cho mình biết thông tin lỗi cụ thể để mình tiện xem lại

Vì ctrình này vẫn chạy tốt trên máy của mình

Chúc bạn thành công !

Bạn có thể sửa mã lisp có thể chọn đưọc 10 vùng (hoặc hơn ) để trích ra 10 thửa hoặc hơn được không. Mình định sửa nhưng ngồi dò mã lâu quá ,chưa thể sửa được.

Nghĩa là cũng như bạn chọn 10 vùng đặt kết quả rồi dến 10 vùng cần lấy.

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
Cám ơn Bạn, cái này thì tuyệt vời rồi không thể nói gì đi nữa.

Xin có ý này thêm nha,,,, bạn xem lại bản vẽ trước cần tách nhé. Đơn vị tư vấn ban đầu khảo sát phá hết khối và đưa về cùng một lớp.

Lisp LOC đã giải quyết chọn và tách được text, theo duong, M, L,.... Nhưng các khối như kí hiệu cây, lưới chử thập ô vuông bản đồ,... dạng kiểu đường, cùng màu mình chưa tách được.

Ý mình muốn bổ sung là : Chọn cả nhóm đối tượng tạo mẫu cho điều kiện ban đầu khi lọc, khi đó lisp hiểu đó là nhóm đối tượng mẫu, lisp tìm và chọn trong các đối tượng và tách ra theo lớp riêng.

Mong được bạn giúp.

Chào bạn Ocinaqua,

Rất mừng là bạn hài lòng với cái lisp đã sửa.

Yêu cầu mới đặt ra của bạn có vẻ như không dễ xơi. Mình chưa nghĩ ra thuật toán để giải. Có thể các bác khác sẽ có chăng. Bạn hãy ráng mà dợi đấy hỉ....

Tuy nhiên mình có ý kiến rằng bạn có thể tận dụng cái lisp trên để giải quyết tốt vấn đề của bạn. Có thể bạn phải tách làm nhiều lần, mỗi lần một loại đối tượng bạn cần rồi sau đó làm cái bước nhập chúng lại với nhau, Theo mình nghĩ việc này không quá khó nếu bạn chủ động suy nghĩ và tìm giải pháp.

Với cái lisp đã có, nếu bạn vận dụng một cách sáng tạo thì nó đủ sức làm chí ít cũng là 80% yêu cầu của bạn trong thời gian không quá lâu. Phần còn lại chỉ bẳng thủ công bạn cũng đã giải quyết tốt mà chả cần sự trợ giúp nào cả bạn ạ.

Cái lisp mới thì mình chưa rõ bao giờ sẽ có, và ngay cả khi có chưa chắc đã đúng cái bạn cần. Vậy nên hãy tự cứu mình trước khi trời cứu bạn ạ. Diễn đàn tuy nhiều người nhưng không phải ai cũng có thể đủ điều kiện và khả năng giúp bạn được. Vậy nên bạn hãy ráng lê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
bác Thaistress thân, em đã tìm trong các trang từ 120 trở về đây nhưng sao ko thấy cái lisp làm thưa trắc ngang mà bác nói, hix có ai cho em xin link được không ạ. có gì các bác bỏ qúa nhé . chúc các bác giáng sinh an lành. :undecided:

 

bạn cứ gửi file *.ntd nào thật nhiều cọc, các Tn dày mo vào cho tui

đảm bảo 30s sau là có hàng liền

==> ra file *.ntd như ý luôn

Độc như thịt chuột lun

hehe

  • Vote tăng 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
Đây bạn tròn 50 trang trước. không ngờ topic này trôi nhanh thế :undecided:

Vâng ! cám ơn bác nhiều nhiều, bác cho em hỏi thêm chút đuowjc không ạ: để sử dụng lisp EDTN thì trước khi chạy nova thì phải có thêm bước NS nữa hả bác? nếu em copy bản vẽ từ máy khác rồi mang về chỉnh sửđuowcj không bác?nếu không chạy lệnh NS thì sẽ thế nào ạ??

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
bạn cứ gửi file *.ntd nào thật nhiều cọc, các Tn dày mo vào cho tui

đảm bảo 30s sau là có hàng liền

==> ra file *.ntd như ý luôn

Độc như thịt chuột lun

hehe

em xin cám ơn bác nhiều, em tin là bác làm được rùi mà . Chúc bác và gia đình luôn mạnh khỏe.

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

bác VUVUZELA có thể đặt khoảng cách miacần xóa không ạ?? ý em là tùy thuộc vào địa hình của mình mà xóa mia dày, mỏng cho phù hợp đó.gửi bác file cad 2008 :http://www.cadviet.com/upfiles/3/sua.rar .bác sửa được trắc ngang ở bản 08 ko a?

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

Bác nào viết giúp e lisp tạo group,xóa group, xóa tất cả các group một cách nhanh chóng với.Bình thường mỗi lần tạo cứ phải vào add, đặt tên rất phiền hà :undecided:(

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
Cám ơn bạn phamthanhbinh đã giúp đở và động viên mình, mình cũng đang sửa và sắp xết lại các bản vẽ theo trình tự các lớp lại cho chuyên nghiệp, giải quyết từ các hiện trạng cho đến các bản vẽ khác, Cho nên mình suy nghĩ hoài làm thế nào mà giải quyết vấn đề trên cho một cách hợp lý , làm lại những ... mà những người không hay đã tạo ra đó.

Việc lọc đối tượng, hay một nhóm, Block giống nhau thực tế mình cũng rất cần, để chọn nó ra và thay thế lại những thứ mới và tốt hơn,

Cám ơn bạn giúp

Chào bạn ocinaqua,

Gửi bạn cái lisp lọc theo nhóm đối tượng mẫu. Tuy mình cải tạo cái lisp của bác NguyenNdait để bạn dùng thử như thật lòng mình khuyên bạn nên hạn chế sử dụng so với cái lisp của bác ấy. Lý do là vì với các bản vẽ như của bạn, có rất nhiều đối tượng khác nhau nhưng lại cùng kiểu loại, cùng màu hay cùng lớp, cùng ltyp. Nếu bạn chọn theo nhóm đối tượng hơi nhiều một chút là dễ dính đòn chọn hầu như hết các đối tượng lắm, ngoại trừ việc chọn theo màu (Bởi vì như bạn biết thì chả có đối tượng nào lại có hai màu cả đúng không) Vì thế với lísp này khi bạn định chọn các nhóm đối tượng theo màu thì bạn phải chọn đối tượng nào có màu cần chọn trước bạn nhé.

Việc chọn đối tượng theo nhóm đối tượng mẫu này chỉ nên sử dụng với các bản vẽ có tổ chức chặt chẽ và quy củ thôi bạn ạ, nếu không thà bạn dùng cái lisp trước của bác NguyênNdait còn nhanh chóng và thuận lợi hơn nhiều.

;;Loc lay cac doi tuong theo tinh chat cua nhom doi tuong mau
(defun c:Loc (/ LOC1 LOC2 KDT LAY COR LTYP CACHLOC OBJ)
(setvar "osmode" 0)
;;;;;;;;;;;;;;;(while (null (setq LOC1 (car (entsel "\nChon 1 doi tuong lam mau loc"))))
;;;;;;;;;;;;;;(princ "\nKhong co doi tuong."));while
(alert "\n Hay chon nhom doi tuong mau")
(setq ssm (ssget )
       n (sslength ssm)
       i 0
       KDT1 ""
       LAY1 ""
       COR1 ""
       LTYP1 ""
)
(setvar "cmdecho" 1) ;;;;;;;;; (setvar "blipmode" blip) (setvar "osmode" osmo)

(repeat n
(setq LOC1 (ssname ssm i))
(setq LOC2 (entget Loc1) KDT (cdr (assoc 0 LOC2)) LAY (cdr (assoc 8 LOC2)))
(if (null (assoc 62 LOC2)) (setq COR 256) (setq COR (cdr (assoc 62 LOC2))))
(if (null (assoc 6 LOC2)) (setq LTYP "BYLAYER") (setq LTYP(cdr (assoc 6 LOC2))))

(if (= (wcmatch kdt1 (strcat "*" kdt "*")) nil)
   (setq kdt1 (strcat kdt1 kdt ","))
)
(if (= (wcmatch lay1 (strcat "*" lay "*")) nil)
   (setq lay1 (strcat lay1 lay ","))
)
(if (= (wcmatch cor1 (strcat "*" (itoa cor) "*")) nil)
   (setq cor1 (strcat cor1 (itoa cor) ","))
)
(if (= (wcmatch ltyp1 (strcat "*" ltyp "*")) nil)
   (setq ltyp1 (strcat ltyp1 ltyp ","))
)
(setq i (1+ i))
)
(setq kdt1 (substr kdt1 1 (1- (strlen kdt1)))
       lay1 (substr lay1 1 (1- (strlen lay1)))
       cor1 (substr cor1 1 (1- (strlen cor1)))
       ltyp1 (substr ltyp1 1 (1- (strlen ltyp1)))
)


(initget "Kieu Lop Mau Dangduong")
(setq CACHLOC (getkword "\nChon cach loc: Kieu,Lop,Mau,Dangduong : "))
(setq ss (cond
((= "Kieu" CACHLOC) (sssetfirst nil (setq OBJ (ssget (list (cons 0 KDT1))))))
((= "Lop" CACHLOC) (sssetfirst nil (setq OBJ (ssget (list (cons 8 LAY1))))))
((= "Mau" CACHLOC) (sssetfirst nil (setq OBJ (ssget (list (cons 62 (atoi COR1)))))))
((= "Dangduong" CACHLOC) (sssetfirst nil (setq OBJ (ssget (list (cons 6 LTYP1))))))
(t (sssetfirst nil (setq OBJ (ssget (list (cons 0 KDT1) (cons 8 LAY1) (cons 62 (atoi COR1))
(cons 6 LTYP1))))))
);cond
)

(setq Ten (getstring t "\n Nhap ten lop ban muon: "))
(if (= (tblsearch "layer" ten) nil)
   (command "layer" "n" ten "")
)
(command "change" (cadr ss) "" "p" "la" ten "")


(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

Việc xác định tim đường giao thông và thủy lợi trong bản vẻ quá lớn, phài đo, chia và vẽ đoạn giửa 2 đường .

Nay nhờ các anh giúp cho một Lisp xác dịnh tim giửa 2 đường, Khi ta chọn đường lề thứ nhứt và thứ 2 thì vẻ đường ở giửa và ghi ra lớp tim điuờng, khi chọn vẻ tim thuy hệ thì tao lớp tim thủy hệ.

Rất mong được các anh giúp

http://www.cadviet.com/upfiles/3/tim_gt_tloi.rar

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
Bác nào viết giúp e lisp tạo group,xóa group, xóa tất cả các group một cách nhanh chóng với.Bình thường mỗi lần tạo cứ phải vào add, đặt tên rất phiền hà :undecided:(

Không hiểu xóa group của bạn nghĩa là thế nào luôn. (xóa group trên bản vẽ hay là explode group)

đây là lệnh tạo nhanh group. group được tạo là 1 group không tên. với chú thích Desgription là: thichhoabinh's Group. bạn có thể tìm thấy nó trong Group manager bằng cách pick chọn Include unnamed.

(defun c:TG ()(ACET-GROUP-MAKE-ANON (acet-ss-to-list (ssget)) "thichhoabinh's Group"))

  • Vote tăng 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
Vâng ! cám ơn bác nhiều nhiều, bác cho em hỏi thêm chút đuowjc không ạ: để sử dụng lisp EDTN thì trước khi chạy nova thì phải có thêm bước NS nữa hả bác? nếu em copy bản vẽ từ máy khác rồi mang về chỉnh sửđuowcj không bác?nếu không chạy lệnh NS thì sẽ thế nào ạ??

Không phải lúc nào nó cũng lỗi nếu không chạy lệnh NS. truờng hợp nỗi thỉnh thoảng mới xảy ra. thay vì hỏi lại mình như thế này sao bạn không thử chạy với truờng hợp như bạn vừa nêu để thấy kết quả? :undecided:

  • Vote tăng 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
nhờ các bác giúp: mình có file micro khi chuyển qua autocad không mở được báo lỗi " drawing is not valid". Bác nào biết xin chuyển dùm. Xin cảm ơn

http://www.cadviet.com/upfiles/3/mptanvan.rar

Của bác đây.em đã save xuống cad 2004 cho bác rùii.

http://www.cadviet.com/upfiles/3/gui_bac.rar

  • Vote tăng 2

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
Không hiểu xóa group của bạn nghĩa là thế nào luôn. (xóa group trên bản vẽ hay là explode group)

đây là lệnh tạo nhanh group. group được tạo là 1 group không tên. với chú thích Desgription là: thichhoabinh's Group. bạn có thể tìm thấy nó trong Group manager bằng cách pick chọn Include unnamed.

(defun c:TG ()(ACET-GROUP-MAKE-ANON (acet-ss-to-list (ssget)) "thichhoabinh's Group"))

Tks bạn.Xóa group tức ý mình là explode nó đó :"> .Bạn làm cái explode khi kick vào 1 đối tượng, và 1 cái explode toàn bộ group nhé :undecided:

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

Sorry bà con!

Tình hình là bị mất cái lisp trích dẫn đối tuợng ( copy đối tưọng trong vùng kín rồi lấy ra để trích dẫn chi tiết). Search hoài mà không thấy! Ai có repost dùm mình nhé!

Thanks và hậu tạ 2 ly cà phê!

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
Tks bạn.Xóa group tức ý mình là explode nó đó :"> .Bạn làm cái explode khi kick vào 1 đối tượng, và 1 cái explode toàn bộ group nhé :undecided:

Explode toàn bộ group thì bạn thử dùng dòng này xem sao

(defun c:xg() (vlax-map-collection (vla-get-groups (vla-get-activedocument (vlax-get-acad-object))) '(lambda (x) (vla-delete x))))

 

P/S bác Sờ Trít : các hàm ACET ấy sao e tìm thấy mỗi tí nhỉ :leluoi:

  • Vote tăng 2

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
Mình dùng tới bước 6 thì tắt ngấm rồi bạn ơi,

Mình không tách được.

Mong được bạn giúp

khi mình thao tách như sau

 

Command: loc

 

Chon 1 doi tuong lam mau loc

Chon cach loc: Kieu,Lop,Mau,Dangduong k

 

Select objects: Specify opposite corner: 2421 found

 

Select objects:

 

Command:

Command: change

2421 found

Specify change point or [Properties]: li

 

Point or option keyword required.

Specify change point or [Properties]:

 

Specify new text insertion point :

 

Enter new text style :

 

Specify new height :

 

Specify new rotation angle :

Không chuyển về lớp text, khi mình chọn đối tượng text số

Hề hề hề,

Cái bạn post chứng tỏ kỹ năng về CAD của bạn còn kém lắm. Hãy học tập và bổ sung đi nhé.

Theo như cái bạn post thì lisp đã chọn được tập đối tượng cho bạn rồi, nhưng khi bạn thực hiện lệnh Change trong CAD thì bạn thực hiện sai mà thôi.

Sau khi nhập lệnh Change, bạn phải nhập P tức là properties. Nhấn Enter nó sẽ hiện ra một dãy các tham số mà bạn phải chọn.

Nếu bạn định chuyển layer của các đối tượng chọn, bạn phải nhập tiếp LA, tức layer và nhấn enter.

Khi đó Cad sẽ hiện các tham số để bạn chọn tiếp, nếu không chọn thay đổi gì nữa thì bạn nhấn tiếp enter , Cad sẽ thoat khỏi lệnh change.

 

Túm lại là ban cần học kỹ về các thao tác sử dụng các lệnh của CAd nếu bạn muốn trở thành một Cadman.

Hề hề hề,

Như vậy một lần nữa mình khẳng định lisp không sai mà là bạn sai....

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
Việc xác định tim đường giao thông và thủy lợi trong bản vẻ quá lớn, phài đo, chia và vẽ đoạn giửa 2 đường .

Nay nhờ các anh giúp cho một Lisp xác dịnh tim giửa 2 đường, Khi ta chọn đường lề thứ nhứt và thứ 2 thì vẻ đường ở giửa và ghi ra lớp tim điuờng, khi chọn vẻ tim thuy hệ thì tao lớp tim thủy hệ.

Rất mong được các anh giúp

http://www.cadviet.com/upfiles/3/tim_gt_tloi.rar

Chào bạn khaosat2009,

Hề hề hề, chả gì bạn cũng là một cây đa cây đề trong cái làng Cadviet này rồi mà. Vậy mà bạn chả chịu tìm kiếm trước khi post bài. Thật là .... thiếu gương mẫu...

Nếu mình nhớ không lộn thì trong phần viết lisp theo yêu cầu đã có cái lisp này rồi đó. Hề hề hề.

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
Sorry bà con!

Tình hình là bị mất cái lisp trích dẫn đối tuợng ( copy đối tưọng trong vùng kín rồi lấy ra để trích dẫn chi tiết). Search hoài mà không thấy! Ai có repost dùm mình nhé!

Thanks và hậu tạ 2 ly cà phê!

Hình như nó chính là cái lisp của bác NguyenNdait ngay phía trên bài của bạn mấy bài đó. thử xem có đúng không

@Ketxu: có 1 topic về các hàm acet đấy, bạn có thể tham khảo trong topic đó.

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
bác VUVUZELA có thể đặt khoảng cách miacần xóa không ạ?? ý em là tùy thuộc vào địa hình của mình mà xóa mia dày, mỏng cho phù hợp đó.gửi bác file cad 2008 :http://www.cadviet.com/upfiles/3/sua.rar .bác sửa được trắc ngang ở bản 08 ko a?

 

chài

bác này chơi khó tui kô à

bác gửi tui cái file nova mà bị bác ẽplođe tùm lum sao mà sửa cho nổi

bác gửi lại tui file khác (nguyên bản chưa explode j hết) í

mà có thể chạy các lệnh nova như : t , td, tn ... thì mới sửa ok được

ok?

  • Vote tăng 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
Mình sửa và bổ xung cho bạn rồi này. Chúc bạn như ý.

;; free lisp from cadviet.com

(DEFUN C:gct ()
(SETQ DK1 (GETVAR "USERR3"))
(IF (= DK1 0)
    (PROGN
     (SETQ STR "1")
     (SETVAR "USERR3" 1)
    )    
    (SETQ STR (RTOS DK1))
)
(SETQ PRPT (STRCAT "\nSize <" STR ">:"))
(SETQ DK1 (GETREAL PRPT))
(IF (= DK1 NIL)
    (SETQ DK1 (GETVAR "USERR3"))
    (SETVAR "USERR3" DK1)
)
(setq dk (* DK1 50))
(INITGET 7)
(SETQ PTD (GETPOINT "\nFrom point:"))
(INITGET 7)
(SETQ PTC (GETPOINT PTD "\nTo point:"))
(SETQ GOCX (ANGLE PTD PTC))
(SETQ GOCY (+ GOCX (/ PI 2)))
(setq v (rtos dk))
(setq t (distance ptd ptc))
(setq r (/ t 2))
(SETQ PT1 (POLAR  PTc  0   (* 33 DK)))
(SETQ o (POLAR  PT1  0   (* 5.2 DK)))
(setq h (substr v 1 1))
(setq y (substr v 2 3))
(setq l (distance ptc pt1))
(setq pt3 (polar ptc 0 (/ l 1.85)))
(setq pt4 (polar pt3 (/ pi 2) (* 4 DK)))
(setq pt5 (polar ptd (- gocx (/ pi 2)) r))
(setq pt6 (polar ptd (+ gocx (/ pi 2)) r))
(setq pt7 (polar ptd (+ gocx  pi) r))
(setq pt8 (polar ptd  gocx   100))
(command "osnap"  "")
(command "layer" "m" "ghichu" "c" "163" """")
(COMMAND "COLOR" "84" "")
(COMMAND "STYLE" "T_THEP"  "romans.shx,vn1.shx" "" "" "" "" "" "" )
(command "text" "j" "m" pt4 (* 5 DK) 0)
(command "%%c10a150" )
(setq sua (entlast))
(if (= (tblsearch "block" "ghithep_t") nil)
(progn
(COMMAND "STYLE" "VnAvant"  ".VnAvant" "" "" "" "" "")
(command "attdef" "" 1 1 1 "j" "m" o (* 5 50) 0)
(setq ss (ssadd))
(setq ss (ssadd (entlast) ss))
(COMMAND "COLOR" "4" "")
(command "circle" o (* 5.2 50)"")
(setq ss (ssadd (entlast) ss))
(command "block" "ghithep_t" o ss "")
(command "insert" "ghithep_t" o DK1 DK1 "" "1")
)
(command "insert" "ghithep_t" o DK1 DK1 "" "1")
)
(initget 1 "TR T C")
(setq w (getkword "\nBan muon dung: [TRong/duong Tron/duong Cheo]: "))
(if (= (strcase w) "T") 
(progn
(COMMAND "COLOR" "150" "")
(setvar "plinewid" 0)
(COMMAND "PLINE" pt8 ptc pt1 "")
(command "circle" ptd 100 "")
)
)
(if (= (strcase w) "C")
(progn
(COMMAND "COLOR" "150" "")
(setvar "plinewid" 0)
(COMMAND "PLINE" PTD ptc pt1 "")
(setq pg1 (polar PTD (- pi (/ pi 4)) 100))
(setq pg2 (polar PTD (- (* pi 2) (/ pi 4)) 100))
(setvar "plinewid" 20)
(command "pline" pg1 pg2 "")
)
)
(if (= (strcase w) "TR")
(progn
(COMMAND "COLOR" "150" "")
(setvar "plinewid" 0)
(COMMAND "PLINE" PTD ptc pt1 "")
)
)
(COMMAND "COLOR" "BYLAYER" "")
(command "osnap" "End,Mid,Cen,Quad,Int,Perp,Tan,Near,App,Int,Ext,Par"  )
(command "ddedit" sua pause)
)

Lisp rất hay,nhưng bác ơi khi thực hiện lệnh có dấu gạch chéo xong rồi thực hiện lệnh khác thì ok nhưng khi vẽ lệnh pline thì nó sẽ gán chiều dày của pline này là 20 giống trong lisp.Mong bác sửa lisp này sao cho không ảnh hưởng đến pline.Cảm ơn các bác rất 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
Lisp rất hay,nhưng bác ơi khi thực hiện lệnh có dấu gạch chéo xong rồi thực hiện lệnh khác thì ok nhưng khi vẽ lệnh pline thì nó sẽ gán chiều dày của pline này là 20 giống trong lisp.Mong bác sửa lisp này sao cho không ảnh hưởng đến pline.Cảm ơn các bác rất nhiều.

Hề hề hề,

Bạn bổ sung thêm dòng code sau vào trước khi kết thúc lisp : (setvar "plinewid" 0).

  • Vote tăng 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
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×