minhphuong_humg
-
Số lượng nội dung
167 -
Đã tham gia
-
Lần ghé thăm cuối
Bài đăng được đăng bởi minhphuong_humg
-
-
Trước mình được môt cậu em gửi cho file Toolpac 15, bạn có thể để lại email mình gửi cho xem có dùng được không.
-
Link mới đây bạn:
http://www.cadviet.com/upfiles/3/71162_googleearth_converter_2.lsp
Thông thường từ file tọa độ LatLong mình dùng lisp trên để convert thành file *.kml rồi mở bằng GoogleEarth là xong. Chưa bao giờ xuất file kml từ GE cả.
Chào KangKung, mình đã check thử file số liệu mẫu bạn đính kèm. Kết quả cho ra như hình vẽ bạn xem có phải không?
Nếu đúng, thì mình nghĩ rằng Việt Nam mình cũng có nhiều số liệu để test chứ làm sao lại bay cả sang TQ để test chứ. :D
Nếu chưa chính xác thì bạn chỉ mình nhé.
Trân trọng.
-
Lisp thêm tiền tố và/hoặc hậu tố cho DIMENSION, TEXT, MTEXT, ATTDEF.
;----- Add/Change Prefix and/or Suffix for DIMENSION, TEXT, MTEXT, ATTDEF. De tim hieu code >> nen mo trong Notepad++.;----- Doan Van Ha - CadMagic - Ver.1: 15/9/2013(vl-load-com)(defun C:APS ( / dial flag lstobj lstkey lstvar fn Add_Prefix_Suffix SelectObj Ss->Lst Old_APS New_APS HA:SetVal Make_File_Dcl);----- Sub Functions(defun Add_Prefix_Suffix (lst pre suf add) ;Add Prefix vµ/hoÆc Suffix cho lstobj.(command "undo" "be")(if (and lst pre suf)(mapcar'(lambda (obj / typ txt pre1 suf1)(setq typ (cdr (assoc 0 (entget (vlax-vla-object->ename obj)))))(cond((wcmatch typ "MTEXT,TEXT") (vla-put-TextString obj (strcat pre (vla-get-TextString obj) suf))) ;MultiLeader ???((wcmatch typ "ATTDEF") (vla-put-TagString obj (strcat pre (vla-get-TagString obj) suf)))((wcmatch typ "DIMENSION")(setq txt (cdr (assoc 1 (entget (vlax-vla-object->ename obj)))) pre1 (vla-get-TextPrefix obj) suf1 (vla-get-TextSuffix obj))(cond((and (= txt "") (= add "0")) ; Nguyen thuy hoac da add pre/suf: Change(vla-put-TextPrefix obj pre) (vla-put-TextSuffix obj suf))((and (= txt "") (= add "1")) ; Nguyen thuy hoac da add pre/suf: Add(vla-put-TextPrefix obj (strcat pre pre1)) (vla-put-TextSuffix obj (strcat suf1 suf)))(T ; Override: Add (not Change)(vla-put-TextOverride obj (strcat pre txt suf))))))(vlax-release-object obj))lst))(command "undo" "e"))(defun SelectObj (lstvar lstkey / txt lst) ;Chän ®èi tîng.(setq txt (apply 'strcat (mapcar '(lambda(var key) (if (= var "1") (strcat key ",") "")) (mapcar 'eval lstvar) lstkey)))(setq lst (Ss->Lst (ssget (list (cons 0 txt))) T)))(defun Ss->Lst (ss flag / lst) ;Convert selection set to list vla-object(and ss (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))(if flag (setq lst (mapcar 'vlax-ename->vla-object lst))))lst)(defun Old_APS() ;®Æt chƠ ®é nh c̣.(setq text_old text mtext_old mtext attdef_old attdef dimension_old dimension pre_old pre suf_old suf add_old add change_old change))(defun New_APS() ;®Æt chƠ ®é míi nh c̣".(setq text text_old mtext mtext_old attdef attdef_old dimension dimension_old pre pre_old suf suf_old add add_old change change_ols))(defun HA:SetVal (lstkey lstvar lstval) ;Set value_default or set value_old for var + Set_tile for key. EX: (HA:SetVal '("key1" "key2" "key3") '(var1 var2 var3) '("0" "1" "a"))(mapcar '(lambda (var val) (if (not (eval var)) (set var val))) lstvar lstval)(mapcar '(lambda (key val) (set_tile key (set (read key) val))) lstkey (mapcar 'eval lstvar)))(defun Make_File_Dcl ( / fn ow dial)(setq fn (vl-filename-mktemp "APS" nil ".dcl"))(setq ow (open fn "w"))(mapcar'(lambda (x) (write-line x ow))(list"APS : dialog { label = \"CadMagic - Add prefix and suffix for objects\";"" : boxed_column { label = \"Set variable\";"" : row {"" : boxed_column { label = \"Dimension\";"" : toggle { label = \"Dimension\"; key = \"dimension\"; }"" : radio_row {"" : radio_button { label = \"Add\"; key = \"add\"; }"" : radio_button { label = \"Change\"; key = \"change\"; }"" }"" }"" : boxed_row { label = \"Text/Mtext/Attdef\";"" : toggle { label = \"Text\"; key = \"text\"; }"" : toggle { label = \"Mtext\"; key = \"mtext\"; }"" : toggle { label = \"Attdef\"; key = \"attdef\"; }"" }"" }"" : column {"" : edit_box { label = \"Prefix:\"; key = \"pre\"; edit_width = 45; }"" : edit_box { label = \"Suffix:\"; key = \"suf\"; edit_width = 45; }"" }"" : button { label = \"Select objects\"; key = \"chon\"; fixed_width = true; alignment = centered; }"" }"" ok_cancel;""}"))(close ow)fn);----- Main Function.(setq dial (load_dialog (setq fn (Make_File_Dcl))) flag 3)(while (> flag 1)(if (not (new_dialog "APS" dial)) (exit))(Old_APS)(HA:SetVal (setq lstkey '("text" "mtext" "attdef" "dimension" "pre" "suf" "add" "change"))(setq lstvar '(text mtext attdef dimension pre suf add change)) '("0" "0" "0" "0" "Prefix" "Suffix" "1" "0"))(action_tile "text" "(setq text $value)")(action_tile "mtext" "(setq mtext $value)")(action_tile "attdef" "(setq attdef $value)")(action_tile "dimension" "(setq dimension $value)")(action_tile "pre" "(setq pre $value)")(action_tile "suf" "(setq suf $value)")(action_tile "add" "(setq add $value change \"0\")")(action_tile "change" "(setq change $value add \"0\")")(action_tile "Cancel" "(done_dialog 0)")(action_tile "Accept" "(done_dialog 1)")(action_tile "chon" "(done_dialog 2)")(setq flag (start_dialog))(cond ((= 0 flag) (New_APS))((= 2 flag) (setq lstobj (SelectObj lstvar lstkey)))((= 1 flag) (Add_Prefix_Suffix lstobj pre suf add))))(unload_dialog dial) (vl-file-delete fn) (princ));--------------------------------------------------------------------------------------------------------------------------------------Anh ơi, đây là lisp thêm tiền tố, hậu tố cho Dimension....Anh có thể thêm chức năng là remove tiền tố, hậu tố cho các trường hợp mà chúng (dimension..) đã có sẵn không ạ. Ví dụ: Em có các dimension với hậu tố là m (mét) em giờ muốn remove hết đi anh ạ.
Khi em load lisp trên thì xuất hiện lỗi này:
Command: ; error: syntax error
Mong anh giúp đỡ.
Trân trọng cảm ơn anh.
-
Em có bản vẽ bao gồm các Dynamic Block và Attribute block. Nay em muốn các bác giúp em viết một lisp để xuất dữ liệu ra như hình vẽ và file đính kèm.
Trân trọng cảm ơn.
File ảnh:
http://www.mediafire.com/view/bolzs7ao800xgdc/original.png
File dwg:
http://www.mediafire.com/download/2gr184zwr1qk1c1/Dynamic%20Block%20Full.dwg
File Excel (2010):
-
Hỏi khôn:
Sao e down lisp ở trên về add vào mà k chạy được nhỉ?
Chả hiểu bạn hỏi gì.
-
Chào bạn minhphuonghung!
Ý bạn là : Nếu định sửa text ATT 1 lần cùng giá trị thì cũng phải pick chọn từng cái rồi nhập giá trị thì các text ATT được pick đó thay đổi pk?
Chào bác Tue_NV!
Đúng ý em là như thế đấy ạ. Trong lisp edt thì chỉ cho chọn 1 text rồi sửa trực tiếp luôn. Thật ra, nó giống như cái lệnh EdATT trong attribute_modification_suite_v6.lsp ấy ạ. Nhưng EDATT lại có nhược điểm là chọn được các text cùng một lúc để đưa về cùng một giá trị, thay vì chuột phải thì chúng ta lại phải nhấn Enter, làm như vậy thành ra em thấy đang dùng chuột để Select thì lại phải dùng tay Enter một cái.
Nói chung, nhu cầu của em không phức tạp như lệnh EDATT chỉ cần như cái lệnh edt rồi thêm chức năng là select nhiều text để chuyển về cùng một giá trị thôi ạ.
Cảm ơn bác nhiều.
-
Trong block có sử dụng nhiều text attribute thì việc gõ ed để sửa nội dung hơi vất vả một chút.
Đây là đoạn code để edit trực tiếp vào các text attribute do ta chọn bằng cách pick chuột.
(defun c:edt () (while (setq att (car(nentsel "\nChon text Attribute :")))(if (= (dxf 0 att) "ATTRIB")(progn (setq TagName (dxf 2 att) TagVal (dxf 1 att) BlName (dxf 330 att)) (if (setq NewVal (getstring 5 (strcat "\nNhap gia tri moi cho " TagName " <" TagVal "> : ")) ) (putAtt BlName TagName NewVal));if);progn);if);while(princ) );end;------------------------------------------------------------------------------------------(defun dxf(id ent) (cdr (assoc id (entget ent))));------------------------------------------------------------------------------------------(defun putAtt (BlName TagName NewVal / AttName EntDxf dk)(setq AttName (entnext BlName ) dk 1) (while (and AttName dk) (if (equal (assoc 0 (entget AttName )) '(0 . "SEQEND")) (setq AttName nil ) (if (= (cdr (assoc 2 (entget AttName ))) TagName ) ; <-- Your Attribute name (progn (setq EntDxf (entget AttName ) dk nil) (setq EntDxf (subst (cons 1 NewVal ) (assoc 1 (entget AttName )) EntDxf ) ) (entmod EntDxf ) (entupd BlName ) (setq AttName (entnext AttName )) );progn (setq AttName (entnext AttName )) );if );if );while );end
Tuy nhiên lisp này phải gõ nội dung cần thay đổi ở dòng command.Giờ em muốn thực hiện việc này thông qua một hộp thoại. hộp thoại đó có 2 nút Cancel và OK.
Xin nhờ các huynh viết hộ cái này, em không có rành khoản này lắm.
Similar topics from web:Chia sẻ Bộ Lisp rất hay: ”Kho báu của Minh”
Bác nào biết cách thống nhất kích thước text trong layout mode [Lưu ...
+: Lisp quay mọi loại đối tượng quanh tâm chính nó.
Video HDSD lisp vẽ và tính ô lưới trong san nền
Tiện ích nhỏ xuất khối lượng trắc ngang từ file trắc ngang của Nova ...
[Hướng dẫn] Giải quyết lỗi thiếu font CAD
Lisp sử dụng rất đơn giản và tiện. Nhưng có một điều là nếu như ta cùng sửa text ở >1 block khác nhau thì ta lại phải chọn từng cái một. Anh có thể sửa thêm chức năng nữa là cho chọn những text (định sửa có cùng giá trị) sau đó nhập vào không ạ?
-
Hề hề hề,
Xin chào anh chị và các bạn,
Em có một bản vẽ với các Dimension và các Block. Em muốn nhờ anh chị và các bạn viết giúp em một lisp để lựa chọn các Dimension và các Block đó sau đó xuất ra kết quả như file excel đính kèm.
Trân trọng cảm ơn!
File đính kèm:
http://www.cadviet.com/upfiles/3/2883_high.rar
Đối tượng của bạn là một ACAD_PROXY_ENTITY chứ không phải block thuộc tính.
Cảm ơn anh Thanh Bình.
Đúng là em không biết nó là ACAD_PROXY_ENTITY. Em tìm thấy cái đó (vòng tròn) nó phù hợp cho việc điền số liệu (như trong bản vẽ) cần thiết nên em cứ nghĩ nó là Block.
Anh cho em hỏi là có thể tạo được Block GIỐNG như vậy không ạ? Tức là nó cũng bao gồm các thành phần như vậy. Ta có thể nhắp đúp vào để nhập số liều. Và sau đó là xuất các thuộc tính đó quá excel ạ.
Nếu được, anh có thể hướng dẫn em các tạo block như vậy được không ạ.
Em cảm ơn anh trước nhé.
-
Xin chào anh chị và các bạn,
Em có một bản vẽ với các Dimension và các Block. Em muốn nhờ anh chị và các bạn viết giúp em một lisp để lựa chọn các Dimension và các Block đó sau đó xuất ra kết quả như file excel đính kèm.
Trân trọng cảm ơn!
File đính kèm:
-
Ðây bạn:
(defun C:HA( / lst fn fw index x y z txt) ;Doan Van Ha Cadviet.com (princ "\nChon cac Text/Mtext/Dimension can xuat ra file...") (setq lst (acet-ss-to-list (ssget '((0 . "*TEXT,DIMENSION")))) fn (getfiled "Chon file de save" "" "csv" 1) fw (open fn "w") index 0 x 1 y 1 z 1) (repeat (length lst) (cond ((= (cdr (assoc 0 (entget (nth index lst)))) "TEXT") (setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "text" (itoa x)) x (1+ x))) ((= (cdr (assoc 0 (entget (nth index lst)))) "MTEXT") (setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "mtext" (itoa y)) y (1+ y))) ((= (cdr (assoc 0 (entget (nth index lst)))) "DIMENSION") (if (= (cdr (assoc 1 (entget (nth index lst)))) "") (setq txt (strcat (rtos (cdr (assoc 42 (entget (nth index lst))))) "," "dim" (itoa z)) z (1+ z)) (setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "dim" (itoa z)) z (1+ z))))) (princ (strcat txt "\n") fw) (setq index (1+ index))) (close fw))
Nhờ Bác Doan Van Ha và các Bác trong diễn ðàn có thể giúp em sửa lisp này với mục ðích sau ðýợc không ạ:
Trýờng hợp 1 [select từng Dimension):
Lựa chọn (Select) Số thứ tự rồi chọn Dimension. Cuối cùng xuất ra file excel có dạng:
STT Khoảng cách
5 37
6 26
7 29
8 34
.........
Trýờng hợp 2 [select Ðiểm ðầu - Ðiểm cuối]:
Lựa chọn (Seclect) Dimension ðầu tiên (Dimension 1) rồi chọn Dimension cuối (Dimension n). Cuối cùng cho ra file excel có dạng:
STT Khoảng cách
Dimension 1 37
Dimension 2 26
Dimension 3 29
Dimension 4 37
Dimension 5 32
..........................................
Dimension 29 40
Link file:
http://www.cadviet.com/upfiles/3/2883_hoi_3.dwg
Em trân trọng cảm õn!
-
Cảm ơn kb_provn, mình cũng biết là post sai và đã xin lỗi ngay từ đầu rồi mà. Cái quan trọng là mìn không biết tìm diễn đàn nào để post cho nó phù hợp. Mình nghĩ diễn đàn cũng có nhiều người biết về cái này nên post vào và hỏi mọi người thôi mà.
-
Mình có file này muốn xuất ra file excel với 2 cột là STT và Khoảng cách được không ạ?
Ví dụ:
STT Khoảng cách
1.1 0
1.2 61
1.3 66
1.4 60
1.5 52
......
Xin các bác trong diễn đàn giúp đỡ ạ.
Trân trọng cảm ơn.
-
Em rất cảm ơn bác Doan Van Ha, em đã xem và đăng kí và làm theo link mà bác gửi cho em. Tuy nhiên, theo thiển ý của em chắc là họ làm bằng một cái phần mềm gì đó bác nhỉ? Chứ em thấy nếu giả sử họ làm bằng cái này chắc không được như trên VTV. Rất mong anh chị nào đã từng làm hoặc biết thì mong chỉ bảo thêm ạ.
- 1
-
Ấy bác Doan Van Ha, em nghĩ bác kb_provn và em cũng không có ý gì đâu. Xin bác đừng nói vậy, anh em ngoài việc trao đổi kiến thức ra nhiều lúc cũng nên hài hước một chút. Tuy nhiên, đừng nghĩ quá xa ra ý khác. Rất mong bác thông cảm và giúp đỡ anh em trong diễn đàn. Trân trọng cảm ơn bác.
-
Mình hỏi chân tình và muốn học hỏi mà. Ai lại nỡ cao hứng trả lời rồi không hướng dẫn thế. :'(
-
Nhưng Bác Doan Van Ha ơi, làm sao để extract ra được một "mảng" ảnh to, dài như vậy để đưa vào PowerPoint ạ? Em vẫn chưa hiểu cách làm để extract ra được tấm ảnh đó. Giả sử, ta làm video hướng dẫn đường đi theo Quốc lộ 1 từ Lạng Sơn tới TP. HCM chẳng hạn thì ta làm sao mà zoom lên được ạ?
Rất mong bác và các anh chị trong diễn đàn hướng dẫn ạ.
Trân trọng cảm ơn.
-
Hôm trước mình xem trên chương trình thời sự có đoạn video về lộ trình rước linh xa của Đại tướng Võ Nguyên Giáp được làm trên nền Maps Google. Tuy nhiên, mình không biết chúng đuợc làm bằng phần mềm gì và làm như thế nào? Member nào biết rất mong được chỉ dạy.
Trân trọng cảm ơn.
-
'Tạo khung bản đồ'
trong AutoLisp
Mình ko dùng Cad2014 nên bạn hỏi mình ko trả lời đc. Tuy nhiên 2014 cao hơn 2004 nên mình nghĩ là được. Bạn hình như vẫn ko test nhỉ?
Không phải hình như, mà là mình chưa test. Bởi lẽ, như mình trao đổi ở trên nếu có mem nào dùng Cad2014 rồi mà không cài được thì khuyến cáo mình thì mình sẽ không cài nữa. Vì thật ra, cài xong rồi mà nó không làm việc trên phiên bản của mình có phải là không tốt không? Còn nếu, chưa có mem nào thử thì mình sẽ là người thử đầu tiên. Và dĩ nhiên, lần sau khi gặp câu hỏi tương tự thì mình cũng đưa ra khuyến cáo cho mọi người thôi. Trân trọng.
-
'Tạo khung bản đồ'
trong AutoLisp
Phiên bản Autocad 2004 cũng được nhưng phải cài Tools Express. Còn 2007 trở lên thì vô tư. Bạn download về dùng biết ngay được hay ko được. ^^
Bạn ơi, Autocad 2014 chứ không phải Autocad 2004 bạn à. Mình hỏi để biết xem nó dùng được cho phiên bản nào. Còn giả sử không tương thích với phiên bản nào các bạn nào cài trước thì chia sẻ cho mọi người cùng biết. Trân trọng cảm ơn!
-
'Tạo khung bản đồ'
trong AutoLisp
Phần mềm EGS 58Mb nên hơi nặng một chút. Nó tích hợp vào Cad và thực hiện rất nhiều chức năng. Bạn đợi sau 90s thì load về.
Mình đã thử đường link chạy rất tốt. Mình sẽ upload huớng dẫn sử dụng vào 1 ngày gần nhất có thể. Chúc bạn gặp nhiều may mắn
Bạn ơi, cho mình hỏi cái này nó chạy trên Autocad phiên bản nào vậy hay là Autocad phiên bản nào cũng dùng được? Mình đang dùng autocad 2014 thì có dùng được không? Trân trọng cảm ơn.
-
Không load được lisp
trong AutoLisp
bạn thử đổi tên file lisp rồi load lại xem có được không!
Cảm ơn bạn, mình vừa làm như bạn nhưng vẫn không load được.
P/S: Thực tình, mình không rõ lắm là tên nó cũng ảnh hưởng đến việc load lisp ư!
-
Không load được lisp
trong AutoLisp
Em có một vài lisp được tải từ diễn đàn nhưng em không thể load được. Mặc dù trước đây dùng bình thường. Em dùng autocad 2014. Rất mong anh chị và các bạn giúp đỡ.
Trân trọng cảm ơn.
File ví dụ:
-
:D :D :D
Bạn đưa file gốc lên nhé. Chứ file này 2 lúa thấy ko có lỗi j.
:D :D :D
Xin lỗi anh vì hôm trước em gửi nhầm cái file bị mất cái block ở chân cột đèn. Em gửi lại anh file gốc và file ở trên là file sau khi em chuyển. Rất mong nhận được sự giúp đỡ.
File gốc:http://www.cadviet.com/upfiles/3/2883_01_mbcs_tong_the__1.dwg
-
Tôi chỉ nghe nói thôi, chưa bao giờ gặp trường hợp này.
Bạn hãy gửi cho chúng tôi một file DWG bất kỳ có chữ này được không?
Nếu không, bạn hãy thử làm ngay như sau: Save as sang AutoCAD 14, ở đời này (R14) chưa có phiên bản dành cho Education. Sau đó thì in bằng AutoCAD 14 hoặc wblock ra file CAD khác rồi in bằng CAD đời mới. Cách này nói chung sẽ vượt qua được các sự bảo vệ file CAD. Tuy nhiên nếu file CAD có sử dụng một số đối tượng mới thì các đối tượng này sẽ bị Disable.
Chào anh, em có một file bị lỗi tương tự. Tuy nhiên, em áp dụng cách như các bạn hướng dẫn ở các bài sau nhưng kết quả thì mất được các chữ ở viền. Nhưng không hiểu sao các block lại bị mất hết. Trong bản vẽ em gửi kèm, nếu ta chuyển theo thao tác tương tự thì các hình tròn màu đỏ ở chân cột đèn sẽ bị mất hết. Em rất mong nhận được sự giúp đỡ của anh. Trân trọng cảm ơn.
http://www.cadviet.com/link/?f=upfiles/3/110802_2883_01_mbcs_tong_the_.dwg&w=3774
[Yêu Cầu] Lisp Duỗi Thẳng Tuyến
trong AutoLisp
Đã đăng · Trả lời báo cáo
Xin chào các bác,
Hôm nay em có vấn đề nay xin nhờ các Pro giúp đỡ. Em có vạch một tuyến đường trên bản vẽ. Giờ em muốn duỗi thẳng tuyến đường đó ra với khoảng cách ofset sang mỗi bên của tuyến đường là 100.
Xin nhờ các bác trong diễn đàn viết giúp em một lisp để khi chọn vào tuyến đường cần duỗi thẳng thì cho ra kết quả đường duỗi thẳng.Tại mỗi vị trí nối giữa các đoạn thẳng sau khi duỗi thì cho ra một text ghi góc xoay (theo hướng đi của tuyến - ta hình dung đi từ đầu đến cuối tuyến nếu rẽ phải ghì là góc phải và rẽ trái thì là góc trái) của đoạn thẳng hợp với đoạn thẳng tiếp theo. Nếu xoay sang phải thì ghi P(góc xoay làm tròn đến phút); nếu xoay sang trái thì ghi T(góc xoay làm tròn đến phút). Phần độ thì ghi liền vào chữ viết tắt của góc xoay P (phải), T (trái) (xin xem bản vẽ đính kèm).
Rất mong nhận được sự giúp đỡ của các bác!
Trân trọng cảm ơn!
File:
http://www.mediafire.com/download/omynz9ma02u7tko/lt.dwg