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ị

Nếu bạn muốn On, OFF các VP thì mình nghĩ mẹo nhỏ này hợp hơn là dùng ON all/ OFF all (thực tế với lisp cái này cũng hok dễ, dính cái của bạn đó)

 

At the command prompt, enter the sysvar MAXACTVP and set it to a value of 2 (the lowest setting allowed)

 

You will notice that all the Viewports will turn off except for 1 (well, 2 actually because paperspace itself is a Viewport)

 

Now, here's the fun part. If you want to turn a different Viewport on, but turn off the Viewport that is already being displayed, simply turn on the desired Viewpor, and the other one will automatically turn off.

 

Now, here's the cool part. Even though all of the Viewports are turned "off", the can still plot!

 

Now, let's say you want to see two Viewports on.. simply enter MAXACTVP and set it to 3. Basically, the more Viewports you want to see, the higher the setting.

 

Using MAXACTVP saves a lot of regen time.

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

Nếu bạn muốn On, OFF các VP thì mình nghĩ mẹo nhỏ này hợp hơn là dùng ON all/ OFF all (thực tế với lisp cái này cũng hok dễ, dính cái của bạn đó)

sysvar đó là số lượng (max) VP có thể ON trong 1 layout, mình muốn tắt tất cả VP trong bản vẽ.

Thanks bạ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

xin lỗi vì câu hỏi ngớ ngẩn của mình lisp csvtable lúc trước mình dùng được nhưng sao nay dùng ko được, bạn nào có cho minh xin lại nhé! mong được giúp đỡ

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
http://www.cadviet.com/upfiles/3/xyzom_1.lsp đây là đoạn lisp mình mới nhờ trên diễn đàn viết dùm mình dùng để xuất tọa độ xyz của point ra file text. Khi mình load lên thì cad báo command: ; error: no function definition: input. sau đó mình gọi lệnh xyzo thì cad bao nil. Nhờ các bạn xem giúp lisp bị lỗi gì trình độ cad mình còn kém lắm các bạn đừng cười mình nhe.

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 có seach được trên diễn đàn lisp copy tăng dần này http://www.cadviet.com/upfiles/3/copy_tang_dancom.lsp nhưng chỉ copy tăng dần được từ 1 tới 99 thôi. Bác nào biết sửa lại giúp mình copy tăng dần từ 1 tới 10000 mình cám ơn 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

Bạn post bản vẽ đó lên xem thử. Tôi chạy thì tốt.

Bạn kiểm tra lại dùm mình với, mình đã thử mấy máy rồi đều bị lỗi mất hình khi kick tính diện tích. Cảm ơn bạ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ác bác giúp em coi thử cái lisp này nó bị lỗi chỗ nào, turn on thì dc mà turn of là báo lỗi.

Thanks!

(defun vpOn (kw / kval doc adoc lao cnt inc cvprt blk pw)
 (vl-load-com)
 .............................................
)
     )    
   )
 )

 

Đã tìm ra cách giải quyết khác. Thanks các bác!

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 kiểm tra lại dùm mình với, mình đã thử mấy máy rồi đều bị lỗi mất hình khi kick tính diện tích. Cảm ơn bạn

Bạn không thể post bản vẽ lên được à?

Bạn chạy thử trên bản vẽ này xem có lỗi không nhé?

http://www.cadviet.com/upfiles/3/tinh_dien_tich.dwg

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

xin lisp tính diện tích từ một danh sách điểm.

tên hàm (TINHDT PS)

hàm hoàn trả giá trị là số thực và phải thoả mãn điều kiện sau:(xem hình minh hoạ trong file đính kèm)

PS là danh sách các điểm của 1 đa giác bất kỳ

ví dụ (setq ps '( p1 p2 p3 p4))

http://www.cadviet.com/upfiles/3/tinh_dien_tich_thong_minh.dwg

mình đang cần gấp trong ngày, nếu bạn nào giúp được mình xin cảm ơn và hậu tạ

LH: Tomboy 0919668875

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

http://www.cadviet.com/upfiles/3/xyzom_1.lsp đây là đoạn lisp mình mới nhờ trên diễn đàn viết dùm mình dùng để xuất tọa độ xyz của point ra file text. Khi mình load lên thì cad báo command: ; error: no function definition: input. sau đó mình gọi lệnh xyzo thì cad bao nil. Nhờ các bạn xem giúp lisp bị lỗi gì trình độ cad mình còn kém lắm các bạn đừng cười mình nhe.

đúng vậy, lỗi này chác do trình biên dịch của diễn đàn quá, chứ bản gốc mình còn lưu lại mà, bạn down lại nhé:

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

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 CÓ 1 LISP ĐÁNH MẶT CẮT TỰ ĐỘNG : LISP NÀY CHỈ ĐÁNH ĐƯỢC 1 BÊN À , CÁC BẠN CÓ THỂ XEM RÕ HƠN TREN FILE CAD :YÊU CẦU BÀI TOÁN

ĐỂ SỬ DỤNG LISP NÀY ĐẦU TIÊN CÁC BẠN COPY FILE CAD :MC1 VÀO TRONG SUPPORT CỦA CAD SAU ĐÓ LOAD LISP MC1 LEN GÕ LENH MC.

CAC BAN SUA DUM LISP NAY

CHO MINH NHE

http://www.cadviet.c...s/3/lisp_mc.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

chào bạn tomboy và các bạn trên diễn đàn,

http://www.cadviet.com/upfiles/3/chaytoado_2.dwg

file cad này của mình chứa rất nhiều poit và số hiệu của point mình dùng lisp http://www.cadviet.com/upfiles/3/xyzo_2.lsp của bạn tomboy viết dùm mình. mình dùng lisp này để xuất tọa độ xyz của các point và số hiệu của point ra file text, lisp chạy rất tốt nhưng mình chỉ xuất được khoảng 1/2 số lượng point trên file mình thôi, nhờ bạn tomboy và các bạn trên diễn đàn xem lại giúp mình, mình cám ơn trước nhe!

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

trong lisp trên chỉ xuất text là điểm stt, và point là tọa độ x,y.

Mong được bạn giúp cho lisp xuất ra text stt - x - y - z - code

như file trên.

Cám ơn

Bạn copy dòng dưới đây

(setq data (xuly (car data) (cadr data) (caddr data)))

Và paste vào dòng này

(setq data (xuly (car data) (cadr data)))

Thế là được cả x,y,z.

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ác Bác giúp em tạo Block có Attribute và tự nhập cao độ cho nó với.

(Lệnh dưới mới chỉ tạo được block (không có Attribute):

 

...

(setq TenBlock (getstring "\n - Nhap ten block: "))

(setq Caodo (getreal "\n - Nhap cao đo: "))

(setq Diem (getpoint "\n - Chon Diem Dat Block: "))

(entmake (list (cons 0 "insert") (cons 2 TenBlock) (cons 10 Diem)))

...

 

Xin cảm ơn 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

Các anh ơi , cho e hỏi liệu có 1 lisp như sau ko ạ . Bản vẽ của e mang về gồm rất nhiều text Style khác nhau . E chọn tất cả các text đưa về layer TEXT và tạo 1 text Style : TEXT CHUẨN . Em muỗn hỏi có 1 lisp nào chuyển các Text Style cũ chuyển sang Style " TEXT CHUAN " . bởi vì bản vẽ e có nhiều Style quá cứ chọn từng cái 1 và chuyển sang TEXT CHUAN thì mất nhiều thời gian quá . Em cũng muốn hỏi thêm là có Lisp giúp chuyển DimStyle của bản vẽ cũ thành DimStyle chuẩn ko ạ ? Em cám ơn các anh ạ .

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ác anh ơi , cho e hỏi liệu có 1 lisp như sau ko ạ . Bản vẽ của e mang về gồm rất nhiều text Style khác nhau . E chọn tất cả các text đưa về layer TEXT và tạo 1 text Style : TEXT CHUẨN . Em muỗn hỏi có 1 lisp nào chuyển các Text Style cũ chuyển sang Style " TEXT CHUAN " . bởi vì bản vẽ e có nhiều Style quá cứ chọn từng cái 1 và chuyển sang TEXT CHUAN thì mất nhiều thời gian quá . Em cũng muốn hỏi thêm là có Lisp giúp chuyển DimStyle của bản vẽ cũ thành DimStyle chuẩn ko ạ ? Em cám ơn các anh ạ .

Việc bạn cần làm mình nghĩ chưa cần tới lisp, hãy tận dụng Qselect và Ctrl+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

Anh cho e hỏi , nếu sử dụng Qselect và ctril 1 thì m phải chon từng text , liệu làm sao mà ta có thể chuyển 1 hẳn 1 Style này Sang Style kia được ạ .

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

Anh cho e hỏi , nếu sử dụng Qselect và ctril 1 thì m phải chon từng text , liệu làm sao mà ta có thể chuyển 1 hẳn 1 Style này Sang Style kia được ạ .

Xin lỗi bạn, nếu trả lời dài dòng thì làm loãng topic, nếu có gì hỏi tiếp thì bạn sang mục kỹ thuật ha..Qselect + Ctrl 1 không hà cớ j bạn phải chọn từng text cả.Bạn dùng Qselect, chọn tất cả các text -> Ctrl 1 -> Ở mục style bạn chọn Style cần chuyển. Các đối tượng khác với các Properties khác cũng làm như thế. Tất nhiên, ở đây mình chưa nói đến các thứ k thể chọn khơi khơi, như đối tượng trong Block. Còn về Lisp, có thể làm đc nhưng mình nghĩ bạn chưa cần 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

Xin lỗi bạn, nếu trả lời dài dòng thì làm loãng topic, nếu có gì hỏi tiếp thì bạn sang mục kỹ thuật ha..Qselect + Ctrl 1 không hà cớ j bạn phải chọn từng text cả.Bạn dùng Qselect, chọn tất cả các text -> Ctrl 1 -> Ở mục style bạn chọn Style cần chuyển. Các đối tượng khác với các Properties khác cũng làm như thế. Tất nhiên, ở đây mình chưa nói đến các thứ k thể chọn khơi khơi, như đối tượng trong Block. Còn về Lisp, có thể làm đc nhưng mình nghĩ bạn chưa cần nó

Tôi thấy bạn trả lời nghe hơi chuối. Đôi khi tôi cũng phải gia công lại các bản vẽ của người khác. Và để thao tác nhanh hơn tôi thấy nếu có lisp sẽ rất tiện dụng. Còn nếu sử dụng Ctrl 1 rất mất thời gian. Chưa kể nếu gặp phải các đối tượng thuộc tính và blog. Ko hiểu sao bạn lại nghĩ được cho người ta là họ chưa cần đến nó. Vậy đến bao giờ họ mới cần đến 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

Anh cho e hỏi , nếu sử dụng Qselect và ctril 1 thì m phải chon từng text , liệu làm sao mà ta có thể chuyển 1 hẳn 1 Style này Sang Style kia được ạ .

Nếu bạn muốn gọn gàng, có thể tạo 1 file CAD standard và sử dụng chức năng này ở menu Tool -> CAD Standard, đảm bảo bạn sẽ thích :)Như mình đã nói, topic này không phải để viết tut, nên nếu không phải là 1 yêu cầu lisp khả thi và rõ ràng, hoặc nếu lisp chưa được đắpúng, bạn có thể qua bên Kỹ thuật để hỏi về các thủ thuật xử lý nó trước khi nghĩ tới lisp :)

 

 

 

Còn nếu sử dụng Ctrl 1 rất mất thời gian. Chưa kể nếu gặp phải các đối tượng thuộc tính và blog. Ko hiểu sao bạn lại nghĩ được cho người ta là họ chưa cần đến nó. Vậy đến bao giờ họ mới cần đến nó:)

Đỏ : :blush:

Xanh : bạn đọc lại bài mình viết ha

Tím : Nếu bạn cũng cần, và đã có, hãy chia sẻ với Tokyo.

Tks bạn vì đã góp ý

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 có vấn đề này nhờ các cao thủ giúp đỡ:

Khi vẽ bản vẽ không theo tỉ lệ 1:1 mà cần stretch thi phải nhân chia rất mệt nên các cao thủ giúp em tạo lệnh chọn dim để đọc scale factor sau đó chỉ gõ chiều dài cần stretch (không nhân tỉ lệ của dim) để nó stretch cho mình. Cám ơn các đại ca!

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ác pro làm ơn viết dùm em lisp quay đối tượng

đối tượng của em sẽ gồm một text hoặc mtext với tập hợp các đối tượng khác.

khi thực hiện lệnh chương trình sẽ yêu cầu chọn đối tượng ( nếu chọn nhiều hơn 1 text hoặc mtext chương trình sẽ báo lỗi và bắt chọn lại)

sau đó chương trình sẽ hỏi góc quay, góc quay là góc hợp bởi phương ngang với đường thẳng tạo bởi 2 điểm pick chuột.

tâm quay của đối tượng là điểm chèn của text hoặc mtext đã chọn.

Lệnh này của em giống lệnh Torient nhưng chỉ thao tác với một nhóm đối tượng một lần.

em cám ơn các bác.

 

Không Pro nào giúp em à. các bác cố gắng hộ em cái. em cám ơn nhiều 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

Không Pro nào giúp em à. các bác cố gắng hộ em cái. em cám ơn nhiều nhiều!

Cũng đâu cứ phải pro hả bạn ^^ Mình đù đờ cũng chọc ngoáy giúp bạn 1 cái nè.Hy vọng bạn dùng được

(defun c:rtt(/ ss sst)
(setq ss (ssadd))
(while (or 
(= (setq sst (acet-list-to-ss (vl-remove-if '(lambda(x)  (null (wcmatch (acet-dxf 0 (entget x)) "*TEXT")))  (acet-ss-to-list ss)))) nil)
(>(sslength sst) 1))
(Prompt "\nXin h\U+00E3y ch\U+1ECDn \U+0111\U+1ED1i t\U+01B0\U+1EE3ng :")
   (setq ss (ssget))
)    
   (command ".rotate" ss "" (acet-dxf 10 (entget(ssname sst 0))) pause)
)

  • 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

Cũng đâu cứ phải pro hả bạn ^^ Mình đù đờ cũng chọc ngoáy giúp bạn 1 cái nè.Hy vọng bạn dùng được

(defun c:rtt(/ ss sst)
(setq ss (ssadd))
(while (or 
(= (setq sst (acet-list-to-ss (vl-remove-if '(lambda(x)  (null (wcmatch (acet-dxf 0 (entget x)) "*TEXT")))  (acet-ss-to-list ss)))) nil)
(>(sslength sst) 1))
(Prompt "\nXin h\U+00E3y ch\U+1ECDn \U+0111\U+1ED1i t\U+01B0\U+1EE3ng :")
   (setq ss (ssget))
)    
   (command ".rotate" ss "" (acet-dxf 10 (entget(ssname sst 0))) pause)
)

 

cám ơn bác nhiều, lisp quay của bác đúng ý em rồi nhưng còn phần chọn góc quay chua được tiện lắm, bác có thể điều chỉnh cách lấy góc quay bằng cách pick hai điểm ( giống lệnh torient)vì em hay phải chèn text và tập hợp đối tượng song song với một đoạn thẳng. em cám ơn bác nhiều, chúc bác 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
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×