Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
DungNguyen685

[HELP] Căn chỉnh image trong tile image của dialog

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

Chào các bác! 

Em có tham khảo qua nhiều topic trong đó có topic của bác @Doan Van Ha 

 

 mà vẫn không thể nào căn chỉnh được img sao cho vừa title  img trong dialog. Em có code này để minh họa. Mong các bác giúp đỡ.

(defun C:VT (/)
(if
        (and
            (setq dcl (vl-filename-mktemp nil nil ".dcl"))
            (setq des (open dcl "w"))
            (foreach x
               '(
                    "pass : dialog"
                    "{"
                    "        label = \"Setting\";"		
                    "            : column "
                    "            {"
                    "                : boxed_row"
                    "                	{"	
                    "        		 label = \"Th\U+00F4ng s\U+1ED1\";"	
                    "            : radio_column "
                    "            {"					
                    "            : edit_box"
                    "            {"
                    "                key = \"k1\";"
                    "       		 label = \"Nh\U+1EADp th\U+00F4ng s\U+1ED1:\";"					
                    "                edit_width = 12;"
                    "                alignment = left;"
                    "                mnemonic = \"L\";"	
                    "            }"	
                    "    spacer;"
                            "        : image"
                            "        {"
                            "            key = \"logo\";"
                            "            width = 33.5;"
                            "            height = 11.62;"
                            "            fixed_width = true;"
                            "            fixed_height = true;"
                            "            alignment = centered;"
                            "        }"
                    "    spacer;"	
                    "            }"	
                    "            }"	
                    "    : row"
                    "    {"	
                    "    : button"
                    "    {"
                    "        key = \"accept\";"
                    "        label = \"Draw\";"
                    "        is_default = true;"	
                    "        is_cancel = true;"
                    "        fixed_width = true;"
                    "        alignment = centered;"
                    "        width = 15;"
                    "        mnemonic = \"x\";"
                    "    }"
					
                    "    : button"
                    "    {"
                    "        key = \"cancel\";"
                    "        label = \"Cancel\";"
                    "        is_default = false;"	
                    "        is_cancel = true;"						
                    "        fixed_width = true;"
                    "        alignment = centered;"
                    "        width = 15;"
                    "        mnemonic = \"G\";"
                    "    }"					
                    "    }"						
                    "}"
					"            }"	
                )
                (write-line x des)
            )
            (not (setq des (close des)))
            (< 0 (setq dch (load_dialog dcl)))
            (new_dialog "pass" dch)
        )
        (progn
(defun logo (key)
  (start_image key)
  (mapcar 'vector_image; Color 1
	(list 86 96 86)
    (list 47 47 47)
    (list 96 96 86)
    (list 47 48 48)
    (list  1  1  1)
  );mapcar
  (end_image)
);defun
 (logo "logo")
			(start_dialog)
        )
        (princ "\nUnable to load password dialog.")
)
(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

Khi tạo file sld thì nó chụp ảnh toàn bộ phần hiển thị của màn hình cad. Muốn canh ảnh sld vào giữa vùng hiển thị trong dcl thì tỉ lệ ngang dọc của vùng hiển thị phải giống tỉ lệ ngang dọc ảnh sld. Minh hoạ như hình dưới vùng hiển thị màu tím tỉ lệ ngang dọc là 3/2, ảnh sld màu xanh tỉ lệ ngang dọc là 2/1 thì lúc này ảnh sẽ hiển thị từ dưới lên hay trên xuống gì đó ko nhớ rỏ và vó bị lệch ko chính giữa được.

 

(Post xong mới đọc bài của bác Hà được dẩn link phía trên. Nhưng cứ để nguyên bài vậy có khi có ích.)

IMA.jpg

  • Like 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

- Topic tham khảo là slide_image, còn code minh họa lại là vector_image, 2 loại này có khác nhau đó bạn.

- Với code bạn gửi, bạn thử thay hàm logo trong lisp bằng hàm mới dưới đây xem sao:

(defun logo  (key / hei wid vec)
  (setq wid (dimx_tile "logo")
        hei (dimy_tile "logo")
        vec (lambda (d l) (mapcar '(lambda (x) (fix (+ d (* x (/ d -10))))) l)))
  (start_image key)
  (mapcar 'vector_image
          (vec wid '(1 1 9))
          (vec hei '(4 6 6))
          (vec wid '(1 9 9))
          (vec hei '(6 6 4))
          '(1 1 1))
  (end_image))

P/s: Bạn test với nhiều trường hợp (thay đổi: width = ... height = ... của tile logo xem).

  • Like 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
49 phút trước, quocmanh04tt đã nói:

- Topic tham khảo là slide_image, còn code minh họa lại là vector_image, 2 loại này có khác nhau đó bạn.

- Với code bạn gửi, bạn thử thay hàm logo trong lisp bằng hàm mới dưới đây xem sao:

(defun logo  (key / hei wid vec)
  (setq wid (dimx_tile "logo")
        hei (dimy_tile "logo")
        vec (lambda (d l) (mapcar '(lambda (x) (fix (+ d (* x (/ d -10))))) l)))
  (start_image key)
  (mapcar 'vector_image
          (vec wid '(1 1 9))
          (vec hei '(4 6 6))
          (vec wid '(1 9 9))
          (vec hei '(6 6 4))
          '(1 1 1))
  (end_image))

P/s: Bạn test với nhiều trường hợp (thay đổi: width = ... height = ... của tile logo xem).

Lúc mình thử  slide_image cũng không vừa xong mình thử qua vector_image nó cũng vậy. mình gửi code vector để minh họa thôi chứ gửi bằng  slide_image lên kèm file theo nữa nhằn quá sợ mọi người lười thử. Để  mình thử code bạn cảm ơn nhé!

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
2 giờ trước, duy782006 đã nói:

Khi tạo file sld thì nó chụp ảnh toàn bộ phần hiển thị của màn hình cad. Muốn canh ảnh sld vào giữa vùng hiển thị trong dcl thì tỉ lệ ngang dọc của vùng hiển thị phải giống tỉ lệ ngang dọc ảnh sld. Minh hoạ như hình dưới vùng hiển thị màu tím tỉ lệ ngang dọc là 3/2, ảnh sld màu xanh tỉ lệ ngang dọc là 2/1 thì lúc này ảnh sẽ hiển thị từ dưới lên hay trên xuống gì đó ko nhớ rỏ và vó bị lệch ko chính giữa được.

 

(Post xong mới đọc bài của bác Hà được dẩn link phía trên. Nhưng cứ để nguyên bài vậy có khi có ích.)

IMA.jpg

Cảm ơn bạn nhé! Để mình thử xem.

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  

×