Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
huaductiep

Nhờ sửa Lisp Join Dimension

Các bài được khuyến nghị

Mình mới download được cái Lisp Join Dim này trên mạng. Nhưng dùng nó báo lỗi :  "Error in SpeedDraftLT"
Mong các bác sửa giúp với ah. Cám ơn các bác nhiều. :)

---------------------------

(defun c:JD (/ Flag ObjName1 ObjName2 Ang Ang2 Pt1 Pt2 Pt3 Pt4)
  (princ
    "\n convert two dimensions to total Dimension on the same position"
  )
  (princ "\n **********************************")
  (setq *error* *myerror*)
  (SD1028)
  (setq LegLen 7.0)
  (setq Flag nil)
  (get_layer&ltype&color)
  (RegistryRead_1001)
  (setvar "Clayer" Lay1)
  (setvar "Cecolor" Col1)
  (setvar "Celtype" LT1)
  (while (= Flag nil)
    (setq ObjName1 (car (entsel "\n Select 1st Dimension :")))
    (if (and ObjName1
      (= (cdr (assoc 0 (setq Data1 (entget ObjName1))))
  "DIMENSION"
      )
 )
      (setq Flag T)
    )
  )
  (redraw ObjName1 3)
  (setq theStyle (SD3511 3 ObjName1))
  (setq Flag nil)
  (while (= Flag nil)
    (setq ObjName2 (car (entsel "\n Select 2nd Dimension :")))
    (if
      (and
 ObjName2
 (= (cdr (assoc 0 (setq Data2 (entget ObjName2))))
    "DIMENSION"
 )
 (or
   (equal (abs (- (cdr (assoc 50 Data1)) (cdr (assoc 50 Data2))))
   0.0
   0.0001
   )
   (equal (abs (- (cdr (assoc 50 Data1)) (cdr (assoc 50 Data2))))
   pi
   0.0001
   )
 )
      )
       (setq Flag T)
       (princ "\n two dimensions should have same angle")
    )
  )
  (redraw ObjName1 4)
  (setq PList (list (cdr (assoc 13 Data1))
      (cdr (assoc 14 Data1))
      (cdr (assoc 13 Data2))
      (cdr (assoc 14 Data2))
       )
  )
  (setq PList2 (list (cdr (assoc 10 Data1)) (cdr (assoc 10 Data2))))
  (if (/= (distance (cdr (assoc 14 Data1)) (cdr (assoc 10 Data1)))
   0
      )
    (setq Ang (angle (cdr (assoc 14 Data1)) (cdr (assoc 10 Data1))))
    (setq Ang (+ (angle (cdr (assoc 13 Data1)) (cdr (assoc 14 Data1)))
   (* 0.5 pi)
       )
    )
  )
  (setq Ang2 (+ Ang (* -0.5 pi)))
  (setq ItsLayer (cdr (assoc 8 Data1)))

  (setq PList_n (mapcar '(lambda (x) (SD1862 x Ang2)) PList))
  (setq PList2_n (mapcar '(lambda (x) (SD1862 x Ang2)) PList2))
  (setq PList_n_x (mapcar 'car PList_n))
  (setq PList2_n_y (mapcar 'cadr PList2_n))
  (setq Position1 (vl-position (apply 'min PList_n_x) PList_n_x))
  (setq Position2 (vl-position (apply 'max PList_n_x) PList_n_x))
  (setq Position3 (vl-position (apply 'max PList2_n_y) PList2_n_y))
  (setq Pt1 (nth Position1 PList))
  (checkcircle Pt1 1.0 "A21")
  (setq Pt2 (nth Position2 PList))
  (checkcircle Pt2 1.0 "A31")
  (setq Pt3 (nth Position3 PList2))
  (checkcircle Pt3 1.0 "A51")
  (setq Pt4 (polar Pt3 Ang (* LegLen Scale)))
  (checkcircle Pt4 1.0 "A21")
  (setq Pt1 (trans Pt1 0 1)
 Pt2 (trans Pt2 0 1)
 Pt3 (trans Pt3 0 1)
 Pt4 (trans Pt4 0 1)
  )
  (setq UAng (angle '(0 0) (getvar "UCSXDIR")))
  (setq Ang2 (- Ang2 UAng))
  (command "._dimstyle" "RE" theStyle)
  (command "dimrotated" (* 180 (/ Ang2 pi)) Pt1 Pt2 Pt3)
  (command "change" (entlast) "" "P" "LA" ItsLayer "")
  (entdel ObjName1)
  (entdel ObjName2)
  (SD2056)
  (setq *error* nil)
  (princ)
)
;-----------------------------------------
(defun RegistryRead_1001 ()
  (setq Path1001 "HKEY_CURRENT_USER\\Software\\SpeedDraftLT\\SD_1001")
  (if (vl-registry-read Path1001 "LegLen")
    (progn (set_tile "LegLen" (vl-registry-read Path1001 "LegLen"))
    (setq LegLen (atof (vl-registry-read Path1001 "LegLen")))
    )
    (setq LegLen 7.0)
  )
  (if (and (vl-registry-read Path1001 "Lay1")
    (member (vl-registry-read Path1001 "Lay1") Laylist1)
      )
    (progn (set_tile
      "Lay1"
      (itoa
        (vl-position (vl-registry-read Path1001 "Lay1") Laylist1)
      )
    )
    (setq Lay1 (vl-registry-read Path1001 "Lay1"))
    )
    (progn (setq Lay1 (getvar "Clayer"))
    (set_tile "Lay1" (itoa (vl-position Lay1 Laylist1)))
    )
  )
  (if (and (vl-registry-read Path1001 "LT1")
    (member (vl-registry-read Path1001 "LT1") Laylist3)
      )
    (progn (set_tile
      "LT1"
      (itoa
        (vl-position (vl-registry-read Path1001 "LT1") Laylist3)
      )
    )
    (setq LT1 (vl-registry-read Path1001 "LT1"))
    )
    (progn (setq LT1 "ByLayer") (set_tile "LT1" "0"))
  )
  (if (and (vl-registry-read Path1001 "Col1")
    (member (vl-registry-read Path1001 "Col1") Laylist2)
      )
    (progn (set_tile
      "Col1"
      (itoa
        (vl-position (vl-registry-read Path1001 "Col1") Laylist2)
      )
    )
    (setq Col1 (vl-registry-read Path1001 "Col1"))
    )
    (progn (setq Col1 "ByLayer") (set_tile "Col1" "0"))
  )
)
;
(defun SD1028 ()
  (setq OldCmdEcho (getvar "CMDECHO"))
  (setvar "CMDECHO" 0)
  (command "undo" "be")
  (setq OldOsmode (getvar "OSMODE"))
  (setq OldLayer (getvar "CLAYER"))
  (setq OldLType (getvar "CeLType"))
  (setq OldCeLWeight (getvar "CeLWeight"))
  (setq OldColor (getvar "CeColor"))
  (setq OldOrtho (getvar "ORTHOMODE"))
  (setq OldDStyle (getvar "DIMSTYLE"))
  (setq OldExpert (getvar "Expert"))
  (setvar "EXPERT" 0)
  (setq Path_Lang "HKEY_CURRENT_USER\\Software\\SpeedDraftLT")
  (princ)
)
;********************************
(defun SD2056 ()
  (setvar "OSMODE" OldOsmode)
  (command "undo" "end")
  (setvar "CLAYER" OldLayer)
  (setvar "CeLType" OldLType)
  (setvar "CeLWeight" OldCeLWeight)
  (setvar "CeColor" OldColor)
  (setvar "ORTHOMODE" OldOrtho)
  (setvar "Expert" OldExpert)
  (if (and (/= (getvar "DIMSTYLE") OldDStyle)
    (tblsearch "DIMSTYLE" OldDStyle)
      )
    (command "-dimstyle" "Restore" OldDStyle)
  )
  (setvar "CMDECHO" OldCmdEcho)
  (princ)
)
;********************************
(defun get_layer&ltype&color ()
  (setq Lay  (tblnext "LAYER" T)
 LT  (tblnext "LTYPE" T)
 Laylist1 (list)
 Laylist2 (list "ByLayer"  "Red"      "Yellow" "Green"
         "Cyan"   "Blue"     "Magenta" "B/W"
        )
 Laylist3 (list "ByLayer")
  )
  (While Lay
    (setq lay1    (list (cdr (assoc 2 Lay)))
   lay2    (cdr (assoc 62 Lay))
   lay3    (list (cdr (assoc 6 Lay)))
   Laylist1 (append Laylist1 lay1)
   Laylist3 (append Laylist3 lay3)
   Lay    (tblnext "LAYER")
    )
    (if (> lay2 7)
      (setq lay2     (list (itoa lay2))
     Laylist2 (append Laylist2 lay2)
      )
    )
  )
  (While LT
    (setq lay3    (list (cdr (assoc 2 LT)))
   Laylist3 (append Laylist3 lay3)
   LT    (tblnext "LTYPE")
    )
  )
  (setq Laylist1 (RemoveOverlap Laylist1)
 Laylist2 (RemoveOverlap Laylist2)
 Laylist3 (RemoveOverlap Laylist3)
  )
)
;************************
(defun RemoveOverlap (List2 / List1)
  (while List2
    (setq List1 (append List1 (list (car List2))))
    (setq List2 (vl-remove (car List2) List2))
  )
  List1
)
;;;---------Rotate----------------------------
(defun SD8446 (PointA PointB Ang / XA YA XB YB PointC)
  (setq XA2 (- (car PointA) (car PointB))
 YA2 (- (cadr PointA) (cadr PointB))
  )
  (setq PointC (list (- (* XA2 (cos Ang)) (* YA2 (sin Ang)))
       (+ (* XA2 (sin Ang)) (* YA2 (cos Ang)))
        )
  )
  (setq PointC (mapcar '+ PointC PointB))
  PointC
)
;****************************************************
(defun SD1862 (OldPt Ang / NewCs)
  (setq NewCs (SD8446 '(1 0) '(0 0) Ang))
  (setq NewPt (trans OldPt 0 NewCs))
  (setq NewPt (list (nth 2 NewPt) (nth 0 NewPt)))
  NewPt
)
;**********************
(defun SD3511 (g e)
  (cond
    ((= (type e) 'ename) (cdr (assoc g (entget e))))
    ((= (type e) 'list) (cdr (assoc g e)))
  )
)
;********************************
(defun *myerror* (msg)
  (setq *error* nil)
  (SD2056)
  (princ "\n Error in SpeedDraftLT")
  (princ)
)
(princ "\n Command Name: JDIMS")
(princ)

 

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

Link SpeedDraft mình up lên Cadviet rồi, muốn dùng được cái lisp bên trên bạn phải cài đặt bộ cài của nó mới dùng được

 

http://www.offshorecad.com.ph/en/autolisp-customising/dims/files-download/231_66bf35237968dc58f1079514bbf18d63.html

 

Bạn download file này về, đánh lệnh Menuload chọn đường dẫn đến Folder bạn vừa giải nén, chọn 04_Dims.mns nó sẽ hiện lên thanh công cụ bạn chọn hình  sẽ join được Dim (tên lệnh của nó là Sd_1005).

  • 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ám ơn bạn. Mình down về dùng ngon lành rồi. Nhưng hơi lạ là mình chỉ cần load Lísp Sd_1005 rồi gõ lệnh Sd_1005 là dùng được chứ đâu cần phải Load cả MenuLoad đâu nhỉ? Nếu ko load Menu Load liệu có lỗi gì ko bạn ?

 

Link SpeedDraft mình up lên Cadviet rồi, muốn dùng được cái lisp bên trên bạn phải cài đặt bộ cài của nó mới dùng được

 

http://www.offshorecad.com.ph/en/autolisp-customising/dims/files-download/231_66bf35237968dc58f1079514bbf18d63.html

 

Bạn download file này về, đánh lệnh Menuload chọn đường dẫn đến Folder bạn vừa giải nén, chọn 04_Dims.mns nó sẽ hiện lên thanh công cụ bạn chọn hình  sẽ join được Dim (tên lệnh của nó là Sd_1005).

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

@ThanhChipnuce ... bạn tìm mục Gửi bài mới để post 1 chủ đề mới.

 

@Huaduchiep ... không ảnh hưởng gì khi bạn ko load menu, chỉ là trong đó nó còn 1 số tính năng nữa có thể bạn sẽ cầ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

Link SpeedDraft mình up lên Cadviet rồi, muốn dùng được cái lisp bên trên bạn phải cài đặt bộ cài của nó mới dùng được

 

http://www.offshorecad.com.ph/en/autolisp-customising/dims/files-download/231_66bf35237968dc58f1079514bbf18d63.html

 

Bạn download file này về, đánh lệnh Menuload chọn đường dẫn đến Folder bạn vừa giải nén, chọn 04_Dims.mns nó sẽ hiện lên thanh công cụ bạn chọn hình  sẽ join được Dim (tên lệnh của nó là Sd_1005).

Hề hề hề,

Mình đã down file speeddraft_basic và speeddraft_full về rồi, nhưng chưa rõ cách cài và sử dụng nó. bạn có thể hướng dẫn cụ thể hơn được không.

Hai file này đều là file .lzh. Sau khi xả nén thì dược rất nhiều các file nhỏ bên trong. Sử dụng file nào để cài đặt và khi cài có cần phải mỡ Cad lên hay không??? Rất mong bạn chỉ dẫ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

http://www.cadviet.com/forum/topic/85346-speeddraft-lai-mot-bo-tong-hop-lisp-hay/?do=findComment&comment=263469

mình có post bộ này ở đây và cũng không biết cài bộ full như nào vì cài theo hướng dẫn của bọn nhật cũng chỉ là copy folder Speeddraft_full vào C:\Program Files\ sau đó load lisp nhưng làm rồi vẫn ko dc :D

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/forum/topic/85346-speeddraft-lai-mot-bo-tong-hop-lisp-hay/?do=findComment&comment=263469

mình có post bộ này ở đây và cũng không biết cài bộ full như nào vì cài theo hướng dẫn của bọn nhật cũng chỉ là copy folder Speeddraft_full vào C:\Program Files\ sau đó load lisp nhưng làm rồi vẫn ko dc :D

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

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×