PHAPLUONG
-
Số lượng nội dung
17 -
Đã tham gia
-
Lần ghé thăm cuối
Bài đăng được đăng bởi PHAPLUONG
-
-
Mình dùng CAD 2021 thì bị lỗi hiện như thế này

Bác có cách nào khắc phục được không?
-
Vào lúc 31/8/2019 tại 08:11, congviet đã nói:Chương trình thì tải ở đây: https://jtbworld.com/ssmpropeditor
Thuốc thì lên mấy forum crack xin là có. Mà nếu mua được thuốc thì càng tốt. :D
Bác chia sẻ luôn cho mọi người với
-
Em mới tìm được tool này, có vẻ đáp ứng được nhu cầu của các bác
-
1
-
-
15 giờ trước, CadExTools đã nói:Lâu lâu mới thấy hàng mình
Tool của bác hay quá. Bác có thể viết chương trình như em mô tả được không ạ. Em nghĩ nhiều người sẽ cần dùng đến ạ. Cảm ơn bác.
-
Em cũng có nhu cầu giống bác này. Hiện tại em đang dùng chương trình này để đổi tên layouts, em muốn sửa lại sao cho có thể dùng tương tự cho sheet set ( cho các trường như Sheet title, Sheet number ...). Nếu làm được như vậy thì việ quản lý file theo Sheet set sẽ trửo nên đơn giản hơn rất nhiều. Cao thủ nào có thể giúp em tạo một chương trình như vậy được không ạ.
-
Xin phép đào bài này lên.
Em cũng có nhu cầu giống bác này. Hiện tại em đang dùng chương trình này để đổi tên layouts, em muốn sửa lại sao cho có thể dùng tương tự cho sheet set ( cho các trường như Sheet title, Sheet number ...). Nếu làm được như vậy thì việ quản lý file theo Sheet set sẽ trửo nên đơn giản hơn rất nhiều. Cao thủ nào có thể giúp em tạo một chương trình như vậy được không ạ.
-
1
-
-
Cảm ơn bạn Phapluong nhìu nha!...file Lisp hiệu chỉnh của bạn thật hoàn hảo...các bạn nào thường dàn layout thì nên load lisp về..rấtm
Mình chỉ chỉnh sửa lại lisp của bác Hà thôi, cái này đơn giản. Trình độ mình cũng chỉ có hạn thôi, còn chưa viết được lisp nào cơ
-
cảm ơn bạn PHAPLUONG. mình k rành về vba nên k biết đặt tiền tố là như thế nào.
Bạn có thể sửa dùm mình đc k? với yêu cầu đưa ra là; khi mình nhập 1 thì tên Layout sẽ tăng thêm 1, Tức là: khi mình gõ 1 thì Tên layout sẽ là 2,3,4,... nếu nhập 5 thì sẽ tăng là 6,7,..
.Nếu có thêm chữ đằng trước Số thì nó vẫn tăng thêm 1 giống vy (gõ SR-1 thì tên Layout sẽ thay đổi là SR-2, SR-3, ...Và SR-308 thì sẽ tăng thêm 1 là SR-309, SR-310, SR-311, ....)
Hiện tại Lisp này đã ok chỉ cần chỉnh lại là hoàn hảo (Hiện tại lisp này nếu gõ 1 thì sẽ là 11,12,13,.. và chữ là SR-300 thì sẽ là SR-3001, SR-3002,..Bạn lưu ý số tô đậm màu đỏ)
cảm ơn pan.
Của bạn đây, mình đã sửa lại thành thêm bước nhập vào số muôn bắt đầu, bạn xem được chưa
-
1
-
-
Lisp của Doanvanha (HA2) rất ok...nhưng nhờ pac sửa or cho thêm 1 tùy chọn nữa
VD:mình muốn đổi tên Layout SR-307A thành SR-308 đến vô cùng nhưng khi dùng lisp HA2 thì gõ SR-308 thì nó lại cộng 1 tăng dần ==> SR-3081, SR-3082,...
Trong khi mình muốn gõ SR-308 thì nó sẽ tăng dần là SR-309, SR-310,...
cảm ơn các pac nhìu
Bạn có thể sửa dòng (setq i 0) thành (setq i 7) và đặt tiền tố là SR-30
-
@Phapluong nếu sheet set của bạn mà có subset và bạn lấy fied title của sheet thì khi copy text các fiel này ko nhảy theo mà vẫn lấy theo giá trị đầu tiên khi tạo
Mình thấy fiel vẫn nhảy theo sheet mà bạn
-
Tuyệt vời. Nhưng bác KangKung viết bằng "Vê lờ" nên hơi dài và bỏ qua Layer Lock. Dùng entmake gọn hơn:
(defun c:tt (/ els mte i tab)
(and (not (eq (strcase (setq tab (getvar 'CTAB))) "MODEL"))
(setq mte (ssget '((0 . "MTEXT"))))
(repeat (setq i (sslength mte))
(setq els (entget (ssname mte (setq i (1- i)))))
(foreach lay (vl-remove tab (layoutlist))
(entmake (subst (cons 410 lay) (assoc 410 els) els)))))
(princ))
Cảm ơn bác nhiệt tình giúp đỡ. Lisp của bác ngắn gọn mà đáp ứng đúng nhu cầu ban đầu của e là chỉ copy Mtext, còn lisp của bác @KhangKung thì có thể copy các đối tượng khác, vượt yêu cầu của e. Cảm ơn 2 bác
-
Tuyệt vời
Cảm ơn bác!
-
1
-
-
Em xin nhờ các bác viết giúp lisp với công dụng như sau:
1. Tạo Mtext trong layout đầu tiên
2. gõ lệnh ==> chọn Mtext thì tự động copy mtext đã tạo ra tất cả các layout còn lại với cùng toaj độ
-
Của bạn đây.

Hướng dẫn:
1. Lệnh CLO
2. Chọn máy in, khổ giấy, style...
3. Đặt tên Layout, tỉ lệ
4. Chọn các khung hình chữ nhật (Polyline) bên Model để tạo Viewport bên Layout. Khi quét chọn thì Lisp sẽ tự động căn các khung theo thứ tự từ trái sang phải.
5. Chọn Block hoặc file xref. Nếu không cần thì khỏi chọn.
6. Bấm OK, Lisp sẽ tạo mỗi bản vẽ trên một Layout.
;LISP TAO LAYOUT HANG LOAT BANG CACH CHON KHUNG VIEW BEN MODEL (vl-load-com) (defun Make_dcl (/ ret) (if (= Printer nil) (setq Printer 0)) (if (= Size nil) (setq Size 0)) (if (= Style nil) (setq Style 0)) (if (= Block nil) (setq Block 0)) (if (= TenLayout nil) (setq TenLayout "Layout")) (if (= Tyle nil) (setq Tyle "1000")) (setq fl (vl-filename-mktemp "CLO" nil ".dcl")) (setq ret (open fl "w")) (write-line (strcat "CLO : dialog { label = \"Create Layout\"; : column { : boxed_column {label = \"Page Setup\"; : popup_list { key=\"Printer\"; label= \"Printer\"; value = \"" (itoa Printer) "\"; edit_width = 40;} : popup_list { key=\"PaperSize\"; label= \"Paper Size \"; value = \"" (itoa Size) "\"; edit_width = 40;} : popup_list { key=\"Style\"; label= \"Style \"; value = \"" (itoa Style) "\";edit_width = 40;} : edit_box { key = \"LO_name\"; label = \"Layout Name \"; value = \"" TenLayout "\";edit_width = 20;} : edit_box { key = \"Tyle\"; label = \"Drawing Scale\"; value = \"" Tyle "\";edit_width = 20;}} : button { key = \"Chonkhung\"; label = \"Select Frame \"; } : boxed_column { label = \"\"; :row { : button { key = \"TaoBlock\"; label = \"Create Title Block\"; is_default = false; width=30; fixed_width=true;} : popup_list {key=\"Block\"; label= \"Block\"; width=30; fixed_width=true; value = \"" (itoa Block) "\";}} : row { : button {key = \"Select_Xref\"; label = \"Xref Title Block\"; is_default = false; width=30; fixed_width=true;} : button {key = \"Remove\"; label = \"Remove Title Block\"; is_default = false; width=30; fixed_width=true;}} : list_box {label =\"\"; key = \"Xref_File\"; height = 3; value = \"0\";} } : boxed_row { : button { key = \"accept\"; label = \" OK \"; width=30; fixed_width=true; is_default = true;} : button { key = \"cancel\"; label = \"Cancel\"; is_default = false; is_cancel = true; width=30; fixed_width=true;}}}} " ) ret ) (setq ret (close ret)) ) (defun *error* (msg) (vl-file-delete fl)) (defun Chon () (vl-file-delete fl) (setq taphop(ssget '((0 . "POLYLINE,LWPOLYLINE")))) (Make_dcl) (setq ddiag 3) ) (defun TaoBlock (/ taphop pt) (vl-file-delete fl) (alert "Chon doi tuong de tao Block khung ten") (if (/= (setq taphop(ssget)) nil) (progn (setq pt(getpoint "\n Chon Base point cua Block: ")) (setq ten(lisped "Nhap ten cua Block")) (while (/= (tblsearch "Block" ten) nil) (setq ten(lisped "Trung ten Block da co. Nhap ten khac cho Block"))) (command "BLOCK" ten pt taphop "") (setq dsblock(cons "" (tablelist "Block"))) )) (Make_dcl) (setq ddiag 3) ) (defun Update () (vla-put-ConfigName (ActLay) (nth (atoi (get_tile "Printer")) dsmayin)) (setq dsPaper (PaperList)) (start_list "PaperSize" 3) (mapcar 'add_list dsPaper) (end_list) ) (defun Chon_Xref () (if (not Path) (setq Path(getvar "dwgprefix"))) (setq File(getfiled "Chon File khung ten" Path "dwg" 2)) (if (/= File nil) (setq Path File dsFile (list File))) (start_list "Xref_File" 3) (mapcar 'add_list dsFile) (end_list) ) (defun Remove_Xref () (setq File "" dsFile (list File)) (start_list "Xref_File" 3) (mapcar 'add_list dsFile) (end_list) ) (defun ActLay () (vla-get-ActiveLayout(vla-get-activedocument(vlax-get-acad-object)))) (defun PlotDeviceNamesList () (vla-RefreshPlotDeviceInfo (ActLay)) (vlax-safearray->list(vlax-variant-value(vla-GetPlotDeviceNames (ActLay))))) (defun PaperList (/ PLObj PSL) (setq PLObj (vla-GetCanonicalMediaNames (ActLay))) (foreach i (vlax-safearray->list (vlax-variant-value PLObj)) (setq PSL (append PSL (list (vla-GetLocaleMediaName (ActLay) i)))))) (defun PlotStyleTableNamesList () (vla-RefreshPlotDeviceInfo (ActLay)) (vlax-safearray->list(vlax-variant-value(vla-GetPlotStyleTableNames(ActLay))))) (defun tablelist (s / d r) (while (setq d (tblnext s (null d))) (setq r (cons (cdr (assoc 2 d)) r)))) (defun DeleteLayouts (/ layouts layout i) (vl-load-com) (setq layouts (vla-get-Layouts(vla-get-activedocument (vlax-get-acad-object)))) (if (> (vla-get-count layouts) 2) (vlax-for layout layouts (if (= (vla-get-ModelType layout) :vlax-false) (if (< (vla-get-count (vla-get-block layout)) 2) (vla-delete layout)))))) (setq dsmayin (PlotDeviceNamesList)) (setq dsStyle (PlotStyleTableNamesList)) (setq dsblock(cons "" (tablelist "Block"))) (defun hopthoai () (setq dcl_id (load_dialog fl)) (if (not (new_dialog "CLO" dcl_id)) (exit)) (start_list "Printer" 3) (mapcar 'add_list dsmayin) (end_list) (Update) (action_tile "Printer" "(Update)") (action_tile "Chonkhung" "(setq ddiag 5)(saveVars)(done_dialog)") (action_tile "TaoBlock" "(setq ddiag 9)(saveVars)(done_dialog)") (start_list "Style" 3) (mapcar 'add_list dsStyle) (end_list) (start_list "Block" 3) (mapcar 'add_list dsBlock) (end_list) (start_list "Xref_File" 3) (mapcar 'add_list dsFile) (end_list) (action_tile "Select_Xref" "(Chon_Xref)") (action_tile "Xref_File" "(Chon_Xref)") (action_tile "Remove" "(Remove_Xref)") (action_tile "cancel" "(setq ddiag 1)(done_dialog)") (action_tile "accept" "(setq ddiag 2)(setq tieptuc 1)(saveVars)(done_dialog)" ) (start_dialog) (unload_dialog dcl_id) ) (defun saveVars () (setq Printer (atoi (get_tile "Printer"))) (setq Size (atoi (get_tile "PaperSize"))) (setq Style (atoi (get_tile "Style"))) (setq Tyle (get_tile "Tyle")) (setq Block (atoi (get_tile "Block"))) (setq Printer1 (nth Printer dsmayin)) (setq Size1 (nth Size (PaperList))) (setq Style1 (nth Style dsStyle)) (setq TenLayout (get_tile "LO_name")) (setq Tyle1 (/ (atof (get_tile "Tyle")) 1000)) (setq Block1 (nth Block dsBlock)) ) (defun C:CLO (/ os) (setvar "CMDECHO" 0) (command "UNDO" "BE") (setq os(getvar "OSMODE")) (setvar "OSMODE" 0) (setvar "TILEMODE" 1) (setq dsblock(cons "" (tablelist "Block"))) (if (= File nil) (setq dsFile (list ""))) (setq tieptuc 0) (Make_dcl) (setq ddiag 3) (while (= ddiag 3) (hopthoai) (if (= ddiag 5) (Chon)) (if (= ddiag 9) (TaoBlock)) ) (vl-file-delete fl) (if (= tieptuc 1) (progn (Sapxepkhung) (Make_Layout) (DeleteLayouts) ) ) (setvar "OSMODE" os) (command "UNDO" "END") (princ) ) (defun Sapxepkhung(/ index khung S1 S2 D1 D2) (setq index 0) (setq lst_Khung(list)) (setq S1 0 S2 0) (while (< index (sslength taphop)) (setq khung (ssname taphop index)) (setq lst_Khung(append lst_Khung (list(list khung S1 S2)))) (setq index (1+ index)) ) (setq lst_Khung(vl-sort lst_Khung '(lambda (e1 e2) (< (cadr(assoc 10 (entget(car e1)))) (cadr(assoc 10 (entget(car e2)))))))) ) (defun Make_Layout (/ disp index khung lst pt0 pt1 pt2 pt3 P1 P2) (setq disp(getenv "CreateViewports")) (setenv "CreateViewports" "0") (setq index 1) (foreach khung1 lst_Khung (setq khung (car khung1)) (setq lst (acet-geom-vertex-list khung)) (setq lst (vl-sort lst '(lambda(e1 e2) (if (/= (car e1) (car e2)) (< (car e1) (car e2)) (< (cadr e1) (cadr e2)))))) (setq pt0 (nth 0 lst) pt3 (nth 3 lst)) (if (> (cadr (nth 1 lst)) (cadr (nth 2 lst))) (setq pt1 (nth 1 lst) pt2 (nth 2 lst)) (setq pt1 (nth 2 lst) pt2 (nth 1 lst))) (command "LAYOUT" "N" (strcat TenLayout (itoa (+ 0 index)))) (command "LAYOUT" "S" (strcat TenLayout (itoa (+ 0 index)))) (command "ERASE" "ALL" "") (if (/= File nil) (command "xref" "A" file (list 0 0) "" "" "")) (if (/= Block1 "") (command "INSERT" Block1 (list 0 0) "" "" "")) (command "ZOOM" "E") (if (> (distance pt2 pt0) (distance pt1 pt0)) (command "RECTANG" (list 0 0) (list (/ (distance pt2 pt0) tyle1) (/ (distance pt1 pt0) tyle1))) (command "RECTANG" (list 0 0) (list (/ (distance pt1 pt0) tyle1) (/ (distance pt2 pt0) tyle1))) ) (command "MVIEW" "O" (entlast)) (command "MSPACE") (if (> (distance pt2 pt0) (distance pt1 pt0)) (command "DVIEW" khung "" "TW" (- 90 (* (/ (angle pt0 pt1) pi) 180)) "") (command "DVIEW" khung "" "TW" (- 0 (* (/ (angle pt0 pt1) pi) 180)) "")) (command "ZOOM" "W" pt0 pt3) (command "PSPACE") (command "ZOOM" "E") (Setq P1 (Getvar "EXTMIN") P2 (Getvar "EXTMAX")) (command "PLOT" "Y" "" printer1 size1 "M" "L" "N" "W" P1 P2 "1" "C" "Y" Style1 "Y" "N" "N" "N" "N" "Y" "N") (command "MODEL") (setq index (+ index 1)) ) (setenv "CreateViewports" disp) (princ) ) (princ "\n Type CLO to run program\n"Cảm ơn bác!
thực sự thì lisp này rất hay rồi, tuy nhiên e vẫn muốn nhờ bác chỉnh sửa thêm một chút nữa phần tỷ lệ sao cho e để khung tên trong xref với khích thước thật khung A3 là 420x297 và khung chữ nhật ở model là 42000x29700 thì khi nhập tỷ lệ là 100 thì layout sẽ là các khung 420x297 vừa với khung xref luôn
và e cung được voi đòi hai bà Trưng nhừ bác viết giúp e 1 lisp nữa để kếp hợp với lisp trên. khi dùng lisp trên của bác e kếp hợp với đặt tên bản vẽ bằng sheetset bằng cách chèn field của sheetset name vào khung tên, như trong file e đính kèm bên dưới. Để giảm bớt thời gian cop tex giữa các layout bác có thể viết giúp e 1 lisp có tác dụng như sau:
1. tạo mtext trong 1 layout dầu tiên
2. chạy lisp, chọn mtext vừa tạo thì tự động coppy và paste đúng tọa độ sang các layout còn lại
Cảm ơn bác trước
Link file của e: https://drive.google.com/open?id=0B42Bw9dLRUS0c0RhNzRuSzAyWms
-
Xin chào cả nhà
Hôm nay có vấn đề này mong cả nhà giúp đỡ.Mình có dùng thử lisp tạo viewport từ khung chọn bên model của bác kangkung thấy rất hay và thiết thực. Lisp này tạo đc khung mv từ hình chữ nhật trong model có chen thêm đc khung tên. Nhưng do mình làm sheetset nên mình cần sửa lisp sao cho tạo mỗi mv trên 1 layout riêng. Xin nhờ các bác biết sửa hộ mình. xin chân thành cám ơn
http://www.cadviet.vn/caddata/?act=download34#http://www.cadviet.com/upfiles/3/71162_mtl_rev5.lsp
-
Mình thấy lisp này rất hay rồi nhưng mình dùng sheetshet nên nhờ 2 pro là KangKun va Nhoclangbat giúp mình sửa líp #63-rev5 này thành mỗi layout là 1 viewport thì thất tuyệt vời, tôi xin chân thành cám ơn
mong bác bớt chút thời gian
Lisp Dim hàng loạt (dim qua giao cắt, block, bán kính, vát góc, ...)
trong AutoLisp
Đã đăng · Trả lời báo cáo
cho mình xin với: E823_8FA6_BF53_0001_001B_444A_4824_4281
Cảm ơn bạn nhiều!