Đến nội dung


Hình ảnh
* * * - - 2 Bình chọn

Viết Lisp theo yêu cầu


  • Chủ đề bị khóa Chủ đề bị khóa
2780 replies to this topic

#1141 Phidoi_gabay

Phidoi_gabay

    biết vẽ rectang

  • Members
  • PipPip
  • 89 Bài viết
Điểm đánh giá: 14 (tàm tạm)

Đã gửi 29 September 2008 - 11:58 AM

Các Bác ơi, xin hãy giúp em với.

Mình cũng hay dùng Xref. Nhưng để làm như PP thì mình không hiểu lắm. Nó giải quyết vấn đề j vậy ? Vì nếu khi Attach bạn để Renference Type là Attachment thì tất cả các bản xref có trong đó sẽ đi theo. Nếu bạn để Overlay thì chỉ bản vẽ đang Attach đi theo thôi. Bạn trước đó sẽ không đc đính kèm.
  • 0

#1142 Phiphi-

Phiphi-

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 434 Bài viết
Điểm đánh giá: 175 (tàm tạm)

Đã gửi 29 September 2008 - 12:31 PM

Mình cũng hay dùng Xref. Nhưng để làm như PP thì mình không hiểu lắm. Nó giải quyết vấn đề j vậy ? Vì nếu khi Attach bạn để Renference Type là Attachment thì tất cả các bản xref có trong đó sẽ đi theo. Nếu bạn để Overlay thì chỉ bản vẽ đang Attach đi theo thôi. Bạn trước đó sẽ không đc đính kèm.

Cám ơn Bác đã quan tâm.
Vì trong 1 bản vẽ có nhiều Xref mà nếu có LISP để attach & detach những Xref nào cần thiết thì rất tiện. Bình thường thì phải dùng Xref manager để thực hiện.
Cũng giống như sử dụng nhiều Layer, nhiều khi ta phải turn on hoặc off những layer cần (hoặc không cần) thiết ngay trong khi vẽ, hiệu chỉnh cũng như in ra bản vẽ. Nếu có LISP thì chỉ cần đánh 1 lệnh nào đó, ta có thể control mọi layers, Xref files trong nháy mắt.
Một điều cần nói là việc sử dung Xref sẽ làm bản vẽ trở nên nhẹ (ít KB) việc open bản vẽ nhanh hơn, làm việc cũng nhanh hơn vì LISP sẽ giúp ta turn off những layers, images, Xref không cần thiết.
  • 0

#1143 Phidoi_gabay

Phidoi_gabay

    biết vẽ rectang

  • Members
  • PipPip
  • 89 Bài viết
Điểm đánh giá: 14 (tàm tạm)

Đã gửi 29 September 2008 - 12:39 PM

Vơi những bản chỉ mang tính chất Reference thì mình luôn Purge những layer không cần thiết đi. Việc đó cũng làm giảm dung lượng đáng kể. Hơn nữa bản vẽ dùng làm Renference có thể sẽ phải turn off các layer trong bản vẽ đó đi. Việc này cũng thao tác khá đơn giản trong Xref mà. Mình nói ở đây không phải vì tranh luận cái đúng của mình nhé! vì mình chỉ muốn biết cái lợi mà bạn muốn có khi sử dụng list thôi. he he !!
  • 0

#1144 dvdcad

dvdcad

    biết vẽ arc

  • Members
  • PipPip
  • 44 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 29 September 2008 - 04:47 PM

các bác viết giúp lisp này

có 1 lisp có lệnh 200 (tỷ lệ bản vẽ 1/200)
thì hiện lên như thế này
Hình đã gửi
  • 0

#1145 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 29 September 2008 - 04:56 PM

các bác viết giúp lisp này

có 1 lisp có lệnh 200 (tỷ lệ bản vẽ 1/200)
thì hiện lên như thế này
Hình đã gửi


(setvar "MODEMACRO" "noi dung dong chu")
Cứ ưng hiện lên chữ gì thì thay bằng chữ đó
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#1146 dvdcad

dvdcad

    biết vẽ arc

  • Members
  • PipPip
  • 44 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 29 September 2008 - 08:31 PM

(setvar "MODEMACRO" "noi dung dong chu")
Cứ ưng hiện lên chữ gì thì thay bằng chữ đó


cám ơn bạn nhé
nhưng mình muốn khi mình thay lệng 500 or 1000 (VD 1/500 or 1/1000)
thì nó cũng thay đổi theo
  • 0

#1147 bighead

bighead

    biết vẽ arc

  • Members
  • PipPip
  • 46 Bài viết
Điểm đánh giá: 16 (tàm tạm)

Đã gửi 29 September 2008 - 08:56 PM

Gửi bác Hoành.
Em không rành về lisp và chẳng biết tẹo nào về VBA for Cad. Nhưng nhu cầu công việc hiện tại em cần là triển khai bản vẽ thi công. Ngặt cái là file do bên A gửi qua đều là minsert objects. Em cần là phá khối và khai thác bản vẽ tối đa, 100% thì tốt. Với tầm hiểu biết của em thì chỉ lấy được 60% thôi. Mày mò tìm kiếm thì có hai code sau:
xminsert
code VBA for exploding minsert objects

Vấn đề là : em chẳng biết cách dùng code VBA ! code lisp thì không chạy ! Chắc hẳn bác đã biết đến 2 đoạn mã này, vậy mong bác chỉ giúp.
Đây là file mẫu đã bị khóa.

Trên diễn đàn đã có chủ đề khóa files bằng nhiều cách. Nên em gửi yêu cầu này không biết có mâu thuẫn với anh em hay không ! Nếu có mong anh em bỏ qua và bác Admin hãy xóa bài này nếu thấy cần!

Mong được học hỏi thêm ! Bác có thể pm theo bigheaddemon2003@yahoo.com
  • 0
Mục đích của cuộc sống là sống có mục đích.

#1148 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 29 September 2008 - 09:34 PM

Gửi bác Hoành.
Em không rành về lisp và chẳng biết tẹo nào về VBA for Cad. Nhưng nhu cầu công việc hiện tại em cần là triển khai bản vẽ thi công. Ngặt cái là file do bên A gửi qua đều là minsert objects. Em cần là phá khối và khai thác bản vẽ tối đa, 100% thì tốt. Với tầm hiểu biết của em thì chỉ lấy được 60% thôi. Mày mò tìm kiếm thì có hai code sau:
xminsert
code VBA for exploding minsert objects

Vấn đề là : em chẳng biết cách dùng code VBA ! code lisp thì không chạy ! Chắc hẳn bác đã biết đến 2 đoạn mã này, vậy mong bác chỉ giúp.
Đây là file mẫu đã bị khóa.

Trên diễn đàn đã có chủ đề khóa files bằng nhiều cách. Nên em gửi yêu cầu này không biết có mâu thuẫn với anh em hay không ! Nếu có mong anh em bỏ qua và bác Admin hãy xóa bài này nếu thấy cần!

Mong được học hỏi thêm ! Bác có thể pm theo bigheaddemon2003@yahoo.com

Explode Minsert thì làm được bằng nhiều cách.

Nhưng nếu chỉ giúp bạn cách mở khóa 1 file mà người ta đã khóa thì tôi áy náy quá (nhỡ may người khóa đó lại là thành viên CADViet thì sao?)

Đang giằng xé lương tâm quá, mọi người cho ý kiến thêm.

Còn về cách dùng code VBA thì chương trình nào cũng vậy, bất kể Word, Excel, ACAD,... đều giống nhau:
- Bạn nhấn Ctr+F11 để hiện cửa sổ Visual Basic for Application.
- Vào menu Insert > Module để tạo mới một module. Paste code VBA vào đó.
- Quay ngược trở lại AutoCAD, nhấn Ctr+F8, chọn tên hàm rồi Run.
  • 1

#1149 bighead

bighead

    biết vẽ arc

  • Members
  • PipPip
  • 46 Bài viết
Điểm đánh giá: 16 (tàm tạm)

Đã gửi 29 September 2008 - 10:33 PM

Hình đã gửi

Cám ơn bác Hoành đã tận tình hướng dẫn nhưng kết quả vẫn không như ý! Chỉ phá được một layer thôi, chẳng hiểu làm sao nữa !

File này là do bên A giao, của DCMSTUDIOS tư vấn thiết kế kiến trúc. Nghe đâu ở bên Hồng Kông. Em nghĩ nhu cầu thì mỗi người mỗi khác, muôn hình vạn trạng. Bác có thể gợi mở thêm không? Nếu không thì em đành tiếp tục "bơi" vậy, hy vọng sẽ tìm ra trước khi kết thúc công trình !?!?!
'"
À, tiện thể bác cho em hỏi. Dùng lệnh flatten đối với block này, trả lời "Y" thì máy báo "Unreference block found", còn trả lời "N" thì ... treo CAD và máy thì cũng treo lủng lẳng luôn ! Căn nguyên là sao vậy bác ?
  • 0
Mục đích của cuộc sống là sống có mục đích.

#1150 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 30 September 2008 - 11:10 AM

Explode Minsert thì làm được bằng nhiều cách.

Nhưng nếu chỉ giúp bạn cách mở khóa 1 file mà người ta đã khóa thì tôi áy náy quá (nhỡ may người khóa đó lại là thành viên CADViet thì sao?)

Đang giằng xé lương tâm quá, mọi người cho ý kiến thêm.

Còn về cách dùng code VBA thì chương trình nào cũng vậy, bất kể Word, Excel, ACAD,... đều giống nhau:
- Bạn nhấn Ctr+F11 để hiện cửa sổ Visual Basic for Application.
- Vào menu Insert > Module để tạo mới một module. Paste code VBA vào đó.
- Quay ngược trở lại AutoCAD, nhấn Ctr+F8, chọn tên hàm rồi Run.

convert anonymous block to normal block
Bạn tìm với dòng trên bác Hoành có lisp làm việc này thì phải.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#1151 chikonan

chikonan

    biết vẽ circle

  • Members
  • PipPip
  • 33 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 30 September 2008 - 11:24 AM

chủ đề này hay thật ! :cheers:
  • 0

#1152 ph168xd

ph168xd

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 779 Bài viết
Điểm đánh giá: 309 (khá)

Đã gửi 01 October 2008 - 02:23 PM

Anh Hoành đã từng viết 1 lish LockUp bản vẽ.
Và chắc anh cũng có lish Unlock bản vẽ đúng ko anh
Em biết anh ko thể trả loi trực tiếp vấn đề ấy trên diễn đàn
Em đang rất cần lish đó, anh cói thể gửi mail cho em đc không ah
gmail của em: ph168xd@gmail.com.
Thanks anh rất nhiều!
  • 0

#1153 ph168xd

ph168xd

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 779 Bài viết
Điểm đánh giá: 309 (khá)

Đã gửi 02 October 2008 - 04:20 PM

Anh Hoành đã từng viết 1 lish LockUp bản vẽ.
Và chắc anh cũng có lish Unlock bản vẽ đúng ko anh
Em biết anh ko thể trả loi trực tiếp vấn đề ấy trên diễn đàn
Em đang rất cần lish đó, anh cói thể gửi mail cho em đc không ah
gmail của em: ph168xd@gmail.com.
Thanks anh rất nhiều!


Mọi ng đi đâu hết rùi :cheers:
  • 0

#1154 xnetlove

xnetlove

    biết pan

  • Members
  • Pip
  • 5 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 03 October 2008 - 02:34 PM

Chào các thành viên trong Diễn đàn CadViet. Pro nào có thể viết dùm mình líp: Vẽ nết cắt, cửa đi, cửa sổ mà sau khi thực hiện xong đối tượng đước gán về layer của riêng chúng (Thực ra lip này trên Diễn dàn cũng đã có nhưng chưa tự gán layer nên mất thời gian gán lại). Thank !
  • 0

#1155 connaivang

connaivang

    biết vẽ arc

  • Members
  • PipPip
  • 42 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 06 October 2008 - 02:08 PM

Bạn dùng lệnh TCHU trong bộ ACV ở đây: http://www.cadviet.c...?showtopic=3825



Chào bác Nguyễn Hoành.
Rất cảm ơn bác về sự giúp đỡ nhiệt tình của bác. Như người ta vẫn bảo "được voi đòi tiên". Không biết bác có nghĩ như vậy và có cảm thấy khó chịu không nếu em có thêm một yêu cầu giúp đỡ như thế này.
Cái lệnh TCHU của bác em dùng đã cảm thấy rất tốt. Nhưng lệnh này em dùng khá thường xuyên. Em muốn cắt giảm một số thao tác của nó cho phù hợp với công việc của mình nhưng lại không biết chỉnh sửa ở đâu. Em muốn bác sửa lại lệnh trên thành một autolisp nhỏ với những thay đổi như sau:
Lệnh t1 tương tự như lệnh trên nhưng mặc định ở dòng T/S là viết thêm text ở phía trước dòng text.
Lênh t2 tương tự như lệnh t1, chỉ khác là ta chỉ cần insert thêm một kí tự duy nhất vào phía trước dòng text (Có nghĩa là sau khi nhập một kí tự,ta gõ space sẽ tương đương gõ enter)
Bác cố gắng giúp đỡ kẻ ngu muội này nhé.
Xin cảm ơn bác trước.
  • 0

#1156 dvdcad

dvdcad

    biết vẽ arc

  • Members
  • PipPip
  • 44 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 08 October 2008 - 09:03 PM

có cách nào làm như thế này ko bác nào biết chỉ giúp:

http://www.cadviet.c...untitled_39.bmp


không ai giúp hộ cái này a chắn qua
  • 0

#1157 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 411 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 09 October 2008 - 01:16 AM

Hình đã gửi

Em không rành về lisp và chẳng biết tẹo nào về VBA for Cad. Nhưng nhu cầu công việc hiện tại em cần là triển khai bản vẽ thi công. Ngặt cái là file do bên A gửi qua đều là minsert objects. Em cần là phá khối và khai thác bản vẽ tối đa, 100% thì tốt. Với tầm hiểu biết của em thì chỉ lấy được 60% thôi. Mày mò tìm kiếm thì có hai code sau:


Không rõ bạn lấy được 60% là nhưng gì nhưng theo mình chắc là bạn đã lấy được tất cả các thứ (cửa, trục, tường, các block...) chỉ có text và hatch là ko lấy được -----> quá đủ để thực hiện công việc bạn cần rồi còn gì :cheers: mấy cái kia kiểu gì chẳng phải vẽ lại.
  • 0

#1158 traitimsat034

traitimsat034

    biết vẽ pline

  • Members
  • PipPip
  • 61 Bài viết
Điểm đánh giá: 15 (tàm tạm)

Đã gửi 09 October 2008 - 08:49 AM

anh làm ơn viết giúp em một lisp có nội dung như sau.

- mục đích: thay đổi Text Hight hiển thị của Dim .
- cú pháp lệnh: khi đánh lệnh chương trình sẽ yêu cầu nhập text hight muốn thay đổi (A) sau đó yêu cầu chọn Dim cần thay đổi.
+ chương trình sẽ kiểm tra text hight của dim ( B ) rồi gán giá trị A/B cho Fit Dim.
kết quả là dim vừa thay đổi sẽ có text hight hiển thị ra là ( B ).

nếu có thể anh viết sao cho sử dụng được với nhiều dim tức là nhập giá trị (A) rồi chọn nhiều dim chương trình sẽ gán giá trị A/B1, A/B2... riêng cho các dim khác nhau.
em cám ơn anh nhiều!
  • 0

#1159 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 09 October 2008 - 02:54 PM

Bác nào giúp em lisp này với!
Em có một đường line A (hoặc đường bất kì) cắt qua nhiều đường B khác, yêu cầu của em là:
- Gõ lệnh: chat
- Chọn đường line A là đối tượng làm dao cắt như lệnh trim
- Chọn phần cần chặt của đường B. Nhưng phần cần chặt không biến mất như lệnh trim mà nó chỉ bị tách ra làm đối tượng khác tại điểm giao cắt của đường A và B
Tại diển đàn em đã dùng thử lệnh BRK nhưng lệnh này ta đôi khi gây khó khăn cho em. Em mong bác nào rảnh giúp em cái nha. Thanks!!


Pác nào giúp em đi? em cảm ơn rất nhiều. Thanksssssss!!!!!!
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#1160 nguoi_mong_du

nguoi_mong_du

    biết zoom

  • Members
  • Pip
  • 10 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 09 October 2008 - 10:31 PM

Mình cần nhờ bác Hoành viết cho minh 1 lisp chia 1 đoạn thẳng thành nhiều đoạn thằng tại những điểm đc chọn và 1 lisp tạo lệnh tắt trở về ngay 1 khung hình mình đã chon trước( 1 khung hình mà mình chứa các đối tượng mẫu mà hay dc sử dụng trong bản vẽ) sau đó lại trở về ngay khung hình cũ. Cam ơn bác trước
  • 0