明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: citykunan

将viewport中的内复制到modle中

  [复制链接]
 楼主| 发表于 2004-4-6 09:02:00 | 显示全部楼层
TO Alin: 我是想不用绑定xref,实现extrim的效果,这个很有用的。
 楼主| 发表于 2004-4-6 09:05:00 | 显示全部楼层
龙班主,从model中以图块的形势 copy到出来,也要进行修剪,可是如何处理xref呢?在次感谢。
发表于 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 | 显示全部楼层

說說copy到出来的主要用途是甚麼好嗎??為甚麼要COPY出來!

你應該知道炸開會有很多問題,但不炸開看來並沒有甚麼用處?

 楼主| 发表于 2004-4-8 14:31:00 | 显示全部楼层
龙班主,是这样的,可以不炸开。只是要求在MODEL中把框选中的东西(可能是XREF,BLOCK,PLINE......的一部分),给复制出来给客户,不选中的不能给。而这些部分视图,已经在纸空间中用VIEWPORT做过了,如果有程序能够直接通过VIEWPORT导出那就很方便了。这次的图纸我已经手动作好了。但是以后可能还会有很多,能不能劳驾版主帮忙想想办法,真是感激万分。
发表于 2004-4-8 16:31:00 | 显示全部楼层

總是希望由網友寫出程序,不行才看問題點,這樣才能進步!像你說的功能,並不難!(有空改一個羊春半自動程序__就是說留一些給你完成!)

发表于 2004-4-9 09:01:00 | 显示全部楼层
  1. ;;功能只把VIEWPORTS中物件從MODEL中以圖塊方式COPY到圖紙空間
  2. ;;已知問題:
  3. ;;1.當Viewport太少時無法操作(defun C:M_VIEW  (/  HOLDECHO           HOLDOSMODE       A       AA
  4.      W10  W12       W40       W41       W69       VCTRX   VCTRY
  5.      LPT  RPT       INS       XP         SS
  6.     )   (defun DO_IT (CEN)
  7.        (setq VCTRX (car CEN))
  8.        (setq VCTRY (cadr CEN))
  9.        (setq
  10.            LPT (list (- VCTRX (/ W40 2.0)) (- VCTRY (/ W41 2.0)))
  11.        )
  12.        (setq
  13.            RPT (list (+ VCTRX (/ W40 2.0)) (+ VCTRY (/ W41 2.0)))
  14.        )
  15.    )
  16.    (setq HOLDECHO (getvar "cmdecho"))
  17.    (setq HOLDOSMODE (getvar "osmode"))
  18.    (setvar "cmdecho" 0)
  19.    (setvar "osmode" 0)
  20.    (command "_.PSPACE")
  21.    (setq A (car (entsel "\nSelect Viewport: ")))
  22.    (setq WDXF (entget A))
  23.    (setq XP (/ (cdr (assoc 41 WDXF)) (cdr (assoc 45 WDXF))))
  24.    (setq W10 (cdr (assoc 10 WDXF)))
  25.    (setq W12 (cdr (assoc 12 WDXF)))
  26.    (setq W40 (cdr (assoc 40 WDXF)))
  27.    (setq W41 (cdr (assoc 41 WDXF)))
  28.    (setq W69 (cdr (assoc 69 WDXF)))
  29.    (DO_IT W10)
  30.    (command "_.rectang" LPT RPT)
  31.    (setq BOX (entlast))
  32.    (setq W40 (/ W40 XP))
  33.    (setq W41 (/ W41 XP))
  34.    (command "_.MSPACE")
  35.    (setvar "cvport" W69)
  36.    (command "_.ucs" "v")
  37.    (DO_IT W12)
  38.    (setq SS (ssget "w" RPT LPT))
  39.    (if SS
  40.        (progn
  41.            (setq AA (rtos (* (getvar "CDATE") 1E8)))
  42.            (command "_.block" AA W12 SS "")
  43.            (command "_.oops")
  44.            (command "_.pspace")
  45.            (command "_.insert" AA W10 XP "" "")
  46.            (command "_.xclip" (entlast) "" "N" "S" BOX)
  47.        )
  48.    )
  49.    (command "_.pspace")
  50.    (command "_.ERASE" A "")
  51.    (setvar "osmode" HOLDOSMODE)
  52.    (setvar "cmdecho" HOLDECHO)
  53.    (princ)
  54. )
 楼主| 发表于 2004-4-9 10:44:00 | 显示全部楼层
首先谢谢龙版主,编的程序,这个程序我是一点思路也没有,原本没有注意过dxf的


69号码。龙版主教导的对,其实我提的很多问题,都是自己编过的,只是有时怕献


丑不敢帖出。我知道了,以后一定附上自己的程序。


龙版主留下什么问题给我做啊,viewport 只有一个时,也能实现。不知版主要考我


什么?无论如何还是谢谢版主的关心。
发表于 2004-4-9 12:29:00 | 显示全部楼层

1. 所有VIEWPORTS一次完成!

2. 解決當Viewport太少時無法操作

下列這個比較難

3. 炸開圖塊也能保持一樣(因不能用XCLIP命令__有些東西還是要修剪)

保持一樣指的是_____(尺寸標註)

 楼主| 发表于 2004-4-9 13:36:00 | 显示全部楼层
;;功能只把VIEWPORTS中物件從MODEL中以圖塊方式COPY到圖紙空間
;;已知問題:
;;1.當Viewport太少時無法操作 ;;made by 龙龙仔 ;;我做了一些批注,基本看懂了,有两句还是看不懂。 ;;为什么要(setvar "cvport" W69),(command "_.ucs" "v")这两句 ;;没这两句也好像能执行 (defun C:M_VIEW (/ HOLDECHO HOLDOSMODE A AA
W10 W12 W40 W41 W69 VCTRX VCTRY
LPT RPT 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 "_.undo" "be")
(command "_.PSPACE")
(setq A (car (entsel "\nSelect Viewport: ")))
(setq WDXF (entget A))
(setq XP (/ (cdr (assoc 41 WDXF)) (cdr (assoc 45 WDXF))));-------45号码是什么用的?好像是个比例因子,我研究下来发现可以得到viewport的比例
;经多次研究发现41号码除以45号码总能得到viewport的比例
(setq W10 (cdr (assoc 10 WDXF)));viewport视图的中点
(setq W12 (cdr (assoc 12 WDXF)));wcs下的目标点
(setq W40 (cdr (assoc 40 WDXF)));视图的高度
(setq W41 (cdr (assoc 41 WDXF)));视图的宽度
(setq W69 (cdr (assoc 69 WDXF)));app:视口的表示数字
(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");undo erase
(command "_.pspace")
(command "_.insert" AA W10 XP "" "")
(command "_.xclip" (entlast) "" "N" "S" BOX)
)
)
(command "_.pspace")
(command "_.ERASE" A "")
(setvar "osmode" HOLDOSMODE)
(setvar "cmdecho" HOLDECHO)
(command "_.undo" "e")
(princ)
) 我做的解决问题1,可复选viewport,还望版主指教。 问题2好像我没有碰到,就算在纸空间只有一个viewport也能运行程序,不知龙版主 是什么用意,能不能说的详细点? 问题3好像好难,版主能不能给点思路,我尽我所能去做一下。 再次感谢版主的栽培。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-26 09:50 , Processed in 0.167389 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表