citykunan
发表于 2004-4-6 09:02:00
TO Alin: 我是想不用绑定xref,实现extrim的效果,这个很有用的。
citykunan
发表于 2004-4-6 09:05:00
龙班主,从model中以图块的形势 copy到出来,也要进行修剪,可是如何处理xref呢?在次感谢。
alin
发表于 2004-4-6 11:57:00
本帖最后由 作者 于 2004-4-6 14:16:05 编辑
use "clipit" in Express tools or "XCLIP" in Autocad
龙龙仔
发表于 2004-4-7 16:31:00
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">說說copy到出来的主要用途是甚麼好嗎??為甚麼要COPY出來!<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">你應該知道炸開會有很多問題,但不炸開看來並沒有甚麼用處?<o:p></o:p>
citykunan
发表于 2004-4-8 14:31:00
龙班主,是这样的,可以不炸开。只是要求在MODEL中把框选中的东西(可能是XREF,BLOCK,PLINE......的一部分),给复制出来给客户,不选中的不能给。而这些部分视图,已经在纸空间中用VIEWPORT做过了,如果有程序能够直接通过VIEWPORT导出那就很方便了。这次的图纸我已经手动作好了。但是以后可能还会有很多,能不能劳驾版主帮忙想想办法,真是感激万分。
龙龙仔
发表于 2004-4-8 16:31:00
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3>總是希望由網友寫出程序<FONT face="Times New Roman">,</FONT>不行才看問題點<FONT face="Times New Roman">,</FONT>這樣才能進步<FONT face="Times New Roman">!</FONT>像你說的功能<FONT face="Times New Roman">,</FONT>並不難<FONT face="Times New Roman">!(有空改一個羊春半自動程序__就是說留一些給你完成!)</FONT></FONT>
龙龙仔
发表于 2004-4-9 09:01:00
;;功能只把VIEWPORTS中物件從MODEL中以圖塊方式COPY到圖紙空間
;;已知問題:
;;1.當Viewport太少時無法操作(defun C:M_VIEW(/HOLDECHO HOLDOSMODE A AA
W10W12 W40 W41 W69 VCTRX VCTRY
LPTRPT INS XP SS
) (defun DO_IT (CEN)
(setq VCTRX (car CEN))
(setq VCTRY (cadr CEN))
(setq
LPT (list (- VCTRX (/ W40 2.0)) (- VCTRY (/ W41 2.0)))
)
(setq
RPT (list (+ VCTRX (/ W40 2.0)) (+ VCTRY (/ W41 2.0)))
)
)
(setq HOLDECHO (getvar "cmdecho"))
(setq HOLDOSMODE (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(command "_.PSPACE")
(setq A (car (entsel "\nSelect Viewport: ")))
(setq WDXF (entget A))
(setq XP (/ (cdr (assoc 41 WDXF)) (cdr (assoc 45 WDXF))))
(setq W10 (cdr (assoc 10 WDXF)))
(setq W12 (cdr (assoc 12 WDXF)))
(setq W40 (cdr (assoc 40 WDXF)))
(setq W41 (cdr (assoc 41 WDXF)))
(setq W69 (cdr (assoc 69 WDXF)))
(DO_IT W10)
(command "_.rectang" LPT RPT)
(setq BOX (entlast))
(setq W40 (/ W40 XP))
(setq W41 (/ W41 XP))
(command "_.MSPACE")
(setvar "cvport" W69)
(command "_.ucs" "v")
(DO_IT W12)
(setq SS (ssget "w" RPT LPT))
(if SS
(progn
(setq AA (rtos (* (getvar "CDATE") 1E8)))
(command "_.block" AA W12 SS "")
(command "_.oops")
(command "_.pspace")
(command "_.insert" AA W10 XP "" "")
(command "_.xclip" (entlast) "" "N" "S" BOX)
)
)
(command "_.pspace")
(command "_.ERASE" A "")
(setvar "osmode" HOLDOSMODE)
(setvar "cmdecho" HOLDECHO)
(princ)
)
citykunan
发表于 2004-4-9 10:44:00
首先谢谢龙版主,编的程序,这个程序我是一点思路也没有,原本没有注意过dxf的
69号码。龙版主教导的对,其实我提的很多问题,都是自己编过的,只是有时怕献
丑不敢帖出。我知道了,以后一定附上自己的程序。
龙版主留下什么问题给我做啊,viewport 只有一个时,也能实现。不知版主要考我
什么?无论如何还是谢谢版主的关心。
龙龙仔
发表于 2004-4-9 12:29:00
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; WORD-BREAK: break-all; TEXT-INDENT: -18pt; LINE-HEIGHT: 12pt; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN style="mso-list: Ignore">1.<SPAN style="FONT: 7pt 'Times New Roman'"> </SPAN></SPAN>所有<SPAN lang=EN-US>VIEWPORTS一次</SPAN>完成<SPAN lang=EN-US>!
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; WORD-BREAK: break-all; LINE-HEIGHT: 12pt; mso-pagination: widow-orphan"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 細明體; mso-bidi-font-family: Tahoma">2. <SPAN style="mso-spacerun: yes"> 解決當Viewport太少時無法操作</SPAN><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>
<o:p></o:p></SPAN></SPAN>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; WORD-BREAK: break-all; LINE-HEIGHT: 12pt; mso-pagination: widow-orphan"><o:p> </o:p>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; WORD-BREAK: break-all; LINE-HEIGHT: 12pt; mso-pagination: widow-orphan">下列這個比較難<SPAN lang=EN-US><o:p></o:p></SPAN>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; WORD-BREAK: break-all; TEXT-INDENT: -18pt; LINE-HEIGHT: 12pt; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><SPAN style="mso-list: Ignore">3.<SPAN style="FONT: 7pt 'Times New Roman'"> </SPAN></SPAN>炸開圖塊也能保持一樣<SPAN lang=EN-US>(因不能用XCLIP命令__有些東西還是要修剪)</SPAN><o:p></o:p>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; WORD-BREAK: break-all; LINE-HEIGHT: 12pt; mso-pagination: widow-orphan"><SPAN style="mso-spacerun: yes"> 保持一樣指的是_____(尺寸標註)<o:p></o:p></SPAN>
citykunan
发表于 2004-4-9 13:36:00
;;功能只把VIEWPORTS中物件從MODEL中以圖塊方式COPY到圖紙空間<BR>;;已知問題:<BR>;;1.當Viewport太少時無法操作
;;made by 龙龙仔
;;我做了一些批注,基本看懂了,有两句还是看不懂。
;;为什么要(setvar "cvport" W69),(command "_.ucs" "v")这两句
;;没这两句也好像能执行
(defun C:M_VIEW (/ HOLDECHO HOLDOSMODE A AA<BR> W10 W12 W40 W41 W69 VCTRX VCTRY<BR> LPT RPT INS XP SS<BR> )
(defun DO_IT (CEN)<BR> (setq VCTRX (car CEN))<BR> (setq VCTRY (cadr CEN))<BR> (setq<BR> LPT (list (- VCTRX (/ W40 2.0)) (- VCTRY (/ W41 2.0)))<BR> )<BR> (setq<BR> RPT (list (+ VCTRX (/ W40 2.0)) (+ VCTRY (/ W41 2.0)))<BR> )<BR> );得出矩形两个角点坐标<BR> (setq HOLDECHO (getvar "cmdecho"))<BR> (setq HOLDOSMODE (getvar "osmode"))<BR> (setvar "cmdecho" 0)<BR> (setvar "osmode" 0)<BR> (command "_.undo" "be")<BR> (command "_.PSPACE")<BR> (setq A (car (entsel "\nSelect Viewport: ")))<BR> (setq WDXF (entget A))<BR> (setq XP (/ (cdr (assoc 41 WDXF)) (cdr (assoc 45 WDXF))));-------45号码是什么用的?好像是个比例因子,我研究下来发现可以得到viewport的比例<BR> ;经多次研究发现41号码除以45号码总能得到viewport的比例<BR> (setq W10 (cdr (assoc 10 WDXF)));viewport视图的中点<BR> (setq W12 (cdr (assoc 12 WDXF)));wcs下的目标点<BR> (setq W40 (cdr (assoc 40 WDXF)));视图的高度<BR> (setq W41 (cdr (assoc 41 WDXF)));视图的宽度<BR> (setq W69 (cdr (assoc 69 WDXF)));app:视口的表示数字<BR> (DO_IT W10)<BR> (command "_.rectang" LPT RPT)<BR> (setq BOX (entlast))<BR> (setq W40 (/ W40 XP)) <BR> (setq W41 (/ W41 XP))<BR> (command "_.MSPACE")<BR> (setvar "cvport" W69);---这句话有什么用?<BR> (command "_.ucs" "v");--这句话有什么用?<BR> (DO_IT W12);得到相应大小的矩形框。<BR> (setq SS (ssget "w" RPT LPT))<BR> (if SS<BR> (progn<BR> (setq AA (rtos (* (getvar "CDATE") 1E8)));做块名<BR> (command "_.block" AA W12 SS "")<BR> (command "_.oops");undo erase<BR> (command "_.pspace")<BR> (command "_.insert" AA W10 XP "" "")<BR> (command "_.xclip" (entlast) "" "N" "S" BOX)<BR> )<BR> )<BR> (command "_.pspace")<BR> (command "_.ERASE" A "")<BR> (setvar "osmode" HOLDOSMODE)<BR> (setvar "cmdecho" HOLDECHO)<BR> (command "_.undo" "e")<BR> (princ)<BR>)
我做的解决问题1,可复选viewport,还望版主指教。
问题2好像我没有碰到,就算在纸空间只有一个viewport也能运行程序,不知龙版主
是什么用意,能不能说的详细点?
问题3好像好难,版主能不能给点思路,我尽我所能去做一下。
再次感谢版主的栽培。