27
72
45
初露锋芒
使用道具 举报
106
1万
101
顶梁支柱
;;;Reads world tiff file (.jgw) to scale and place image correctly in autocad.;;;First insert all tiff images into drawing at whatever scale and insertion point.;;;If the jgw exists in same directory and is named the same as the image selected,;;;it will automatically be found and the image will be scaled and placed. If it is;;;not in the same directory, the user can browse for the file.;;;03.23.2011 Added support to create jgw files as well as support rotated images ;;;Needs a file with 6 lines (ScaleX Rotation -Rotation -ScaleY TopLeftXCoord TopLeftYCoord); « Last Edit: April 12, 2011, 09:43:43 am by ronjonp » (vl-load-com) (defun ss->lst (ss / e n out) (setq n -1) (while (setq e (ssname ss (setq n (1+ n)))) (setq out (cons (vlax-ename->vla-object e) out))) ) (defun _writefile (filename lst / file result) (cond ((and (eq 'str (type filename)) (setq file (open filename "w"))) (foreach x lst (write-line (cond ((= (type x) 'str) x) ((= (type x) 'int) (itoa x)) ((= (type x) 'real) (rtos x 2 6)) ((vl-prin1-to-string x)) ) file ) ) (close file) filename ) ) ) (defun _readfile (filename / file result) (cond ((and (eq 'str (type filename)) (setq file (open filename "r"))) (while (setq line (read-line file)) (setq result (cons (vl-string-trim " " line) result))) (close file) (reverse result) ) ) ) (setq opt "ReadIt"); (initget 0 "ReadIt WriteIt"); (setq opt (cond ((getkword (strcat "\nImage World File [ReadIt/WriteIt] <" opt ">: "))); (opt); ); ) (princ "\nSelect image(s): ") (setq pre (getvar 'dwgprefix)) (if (and (setq ss (ssget '((0 . "image")))) (setq ss (ss->lst ss))) (foreach image ss (setq name (vlax-get image 'name) hgt (vlax-get image 'height) wdth (vlax-get image 'width) imhgt (vlax-get image 'imageheight) imwdth (vlax-get image 'imagewidth) rot (vlax-get image 'rotation) bpt (vlax-get image 'origin) imgpath (vl-filename-directory (vlax-get image 'imagefile)) jgw (strcat imgpath "\" name ".jgw") ) (if (= opt "ReadIt")(progn (if (and (or (setq jgw (findfile (strcat pre name ".jgw"))) (setq jgw (findfile (strcat imgpath "\" name ".jgw"))) (setq jgw (getfiled (strcat "***Select <<" name ".jgw>>***") pre "jgw" 16)) ) (setq pre (strcat (vl-filename-directory jgw) "\")) (setq data (mapcar 'atof (_readfile jgw))) (> (length data) 5) (setq l1 (car data)) (setq mvpt (list (nth 4 data) (nth 5 data) 0.0)) ) (progn (vla-put-imageheight image (* hgt l1)) (vla-put-imagewidth image (* wdth l1)) (vla-put-rotation image (cadr data)) (setq rot (vlax-get image 'rotation)) (setq bpt (polar bpt (+ (/ pi 2.) rot) (* hgt l1))) (vlax-invoke image 'move bpt mvpt) (princ (strcat "\njgw File Read - " jgw)) ) (princ "\njgw file NOT found or not correctly formatted!") ))(progn (setq bpt (polar bpt (+ (/ pi 2.) rot) imhgt)) (if (setq jgw (_writefile (strcat imgpath "\" name ".jgw") (list (/ imhgt hgt) rot (strcat "-" (rtos (abs rot) 2 6)) (strcat "-" (rtos (abs (/ imwdth wdth)) 2 6)) (rtos (car bpt) 2 6) (rtos (cadr bpt) 2 6) ) ) ) (print jgw) (princ "\nError writing file...") )) ) ) ) (princ)(command "draworder" (entlast) "" "B") ; « Last Edit: Dec 16 2011 send to back added by alan »
本版积分规则 发表回复 回帖后跳转到最后一页
微信公众平台
扫描访问手机版
点击图片下载手机App
|关于我们|小黑屋|乐筑天下 繁体中文
GMT+8, 2025-3-12 01:46 , Processed in 0.398989 second(s), 67 queries .
© 2020-2025 乐筑天下
在线时间:10:00-17:00
暂无
扫一扫,关注我们
帮助中心
关于我们
下载APP客户端