amateurday 14 Báo cáo bài đăng Đã đăng Tháng 6 3, 2012 Nhờ các bác sửa cho em đoạn code này, mục đích là chuyển xref thành no path. Có lẽ lisp không update dữ liệu vào được nên không chạy. Em đang gặp khó khăn nếu reference name bị thay đổi (không trùng tên với file xref). (defun c:aaa(/ tmp1) ;(vl-load-com) (setq tmp1 (tblnext "BLOCK" 1)) (WHILE (/= tmp1 NIL) (IF(/= (assoc 1 tmp1) nil) (PROGN (SETQ xfname (cdr (ASSOC 2 tmp1))) (princ xfname) (princ "\n Current: ") (setq pathname (cdr (assoc 1 tmp1))) (princ pathname) (setq ct (strlen pathname)) (setq c ct) (setq test (substr pathname ct 1)) (while (/= test "\\") (setq test (substr pathname c 1)) (setq c (1- c)) ) ;while (setq pathdir (substr pathname 1 c)) (setq filenameex (substr pathname (1+ c))) (if (/= (assoc 2 tmp1) (substr pathname 1 (- (strlen pathname) 4))) (progn (setq tmp1 (subst (cons 1 (strcat (cdr (assoc 2 tmp1)) ".dwg")) (assoc 1 tmp1) tmp1)) (entmod tmp1) (entupd (cdr(assoc -2 tmp1))) ) )))) (setq tmp1 (tblnext "BLOCK")) ) 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
amateurday 14 Báo cáo bài đăng Đã đăng Tháng 6 4, 2012 Nhờ các bác tiếp 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
ketxu 2.984 Báo cáo bài đăng Đã đăng Tháng 6 4, 2012 (defun c:xrefnopath (/ xrefName ) ;@ketxu 4/6 (vl-load-com) (vlax-for x (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object))) (cond ((and (vlax-property-available-p x 'isxref) (eq (vla-get-IsXref x) :vlax-true) ) (vla-put-path x (strcat (vl-filename-base (setq xrefName (vla-get-Path x))) (vl-filename-extension xrefName) ) ) (vla-reload x) ) ) ) ) 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
LoveLisp 21 Báo cáo bài đăng Đã đăng Tháng 12 28, 2012 Mình bị gặp lỗi này Command: XREFNOPATH ; error: Automation Error. File access error Cho mình hỏi liệu có thể chuyển đổi qua lại giữa Full path, Relative path và No path được không? 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
ketxu 2.984 Báo cáo bài đăng Đã đăng Tháng 12 28, 2012 Nếu bạn xài thì hình như mình có nghịch một cái ở đây, lâu quá rùi ^^ CODE search trên mạng nhìu lắm í 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
LoveLisp 21 Báo cáo bài đăng Đã đăng Tháng 12 28, 2012 Cám ơn ket! Mình đã thử, khi chuyển từ Relative sáng Full thì tốt, nhưng ngược lại thì không thành công bạn ạ, chẳng có gì thay đổi hết! 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
Doan Van Ha 3.196 Báo cáo bài đăng Đã đăng Tháng 12 28, 2012 Tôi chưa test. LL thử xem: ;Full Path to Relative Path ;;-------------=={ Full Path to Relative Path }==-------------;; ;; ;; ;; Converts a Full XRef path to a Relative Path. ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; dir - Directory of the Drawing in which the Xref resides ;; ;; path - Full Xref Path ;; ;;------------------------------------------------------------;; ;; Returns: Relative XRef Path ;; ;;------------------------------------------------------------;; (defun LM:XRef:Full->Relative ( dir path / p q ) (setq dir (vl-string-right-trim "\\" dir)) (cond ( (and (setq p (vl-string-position 58 dir)) (setq q (vl-string-position 58 path)) (not (eq (strcase (substr dir 1 p)) (strcase (substr path 1 q)))) ) path ) ( (and (setq p (vl-string-position 92 dir)) (setq q (vl-string-position 92 path)) (eq (strcase (substr dir 1 p)) (strcase (substr path 1 q))) ) (LM:Xref:Full->Relative (substr dir (+ 2 p)) (substr path (+ 2 q))) ) ( (and (setq q (vl-string-position 92 path)) (eq (strcase dir) (strcase (substr path 1 q))) ) (strcat ".\\" (substr path (+ 2 q))) ) ( (eq "" dir) path ) ( (setq p (vl-string-position 92 dir)) (LM:Xref:Full->Relative (substr dir (+ 2 p)) (strcat "..\\" path)) ) ( (LM:Xref:Full->Relative "" (strcat "..\\" path)) ) ) ) ;----- Example Function Calls: ;_$ (LM:XRef:Full->Relative "C:\\Folder1\\Folder2\\Folder3" "C:\\Folder1\\Folder2\\Folder3\\XRef.dwg") => ".\\XRef.dwg" ;_$ (LM:XRef:Full->Relative "C:\\Folder1\\Folder2\\Folder3" "C:\\Folder1\\Folder2\\XRef.dwg") => "..\\XRef.dwg" ;_$ (LM:XRef:Full->Relative "C:\\Folder1\\Folder2\\Folder3" "C:\\Folder1\\Folder4\\XRef.dwg") => "..\\..\\Folder4\\XRef.dwg" 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
LoveLisp 21 Báo cáo bài đăng Đã đăng Tháng 12 28, 2012 hihi.. cám ơn bác HẠ, nhưng cái này là hàm con, chỉ làm nhiệm vụ xử lý thôi. Mình muốn có cái nào ... trọn gói lun í, nghĩa là chỉ gõ lệnh là xong thôi! :) 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
Doan Van Ha 3.196 Báo cáo bài đăng Đã đăng Tháng 12 28, 2012 Bạn biết viết lisp, và có hàm con rồi, thì tự phóng bút cho oai luôn đi! 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
LoveLisp 21 Báo cáo bài đăng Đã đăng Tháng 12 28, 2012 oh, vụ này để sau vậy. Chúc mọi người ăn Tết vui vẻ! :) 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
txchuong 3 Báo cáo bài đăng Đã đăng Tháng 6 11, 2014 Lôi cái này lên nhờ bác Doan Van Ha giúp cho. Em rất cần "Full Path to Relative Path" cái này nhưng không thể "Phóng bút" như bác nói, mong bác hoàn thiện giúp cho. Em có biết vài hàm lisp nhưng mấy hàm vl thì em mù tịt luôn. Hơn nữa cho em hỏi thêm không biết nó có dùng được cho Attach Image không? nếu không thì nhờ bác sửa cho nó dùng được với à. 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