请帮我编一个程序,谢谢!
我要出图纸,大约200多张到300张,可是打印要一张一张的发,太耗时间!我把图框都作成了图块(图块名称相同)想用“SSGET”查找,然后得到每个图框的一对对顶角的坐标,再打印出来!或者前辈有何高见,请帮帮我! 波波, 在論壇里有這方面的程序. 你找找看看. 我已经找过了,以前好象有的,现在可能过期了,找不到了!
其实我的关键问题还是在“ssget”搜寻N个块,再存入一个变量!
问题:可以把所有的块名都存入同一变量(即使块名相同)
然后如何从这个变量里提取并得到各个块的控制点坐标 ;参数:BlkName——块名;输出:((左下角1 右上角1) (左下角2 右上角2) (左下角3 右上角3 ... );功能:取出了所有块的对角点,剩下的你自己做吧(defun Getpts(BlkName / ss i ent pts)
(defun GetBox(ent / pt1 pt2)
(vla-getboundingbox (vlax-ename->vla-object ent) 'pt1 'pt2)
(mapcar 'vlax-safearray->list (list pt1 pt2))
)
(setq ss (ssget "x" (list '(0 . "INSERT") (cons 2 BlkName))))
(setq i 0)
(if ss
(repeat (sslength ss)
(setq ent (ssname ss i))
(setq pts (append pts (list (GetBox ent))))
(setq i (1+ i))
)
)
pts
) 感谢飞哥,要的就是这个,啥都甭缩了,鲜花一朵! 能不能把程序写全啊,怎么实现自动选择图框对角打印 希望高手能把这个程序,写完共享。!!万分感谢。 ;command部分需要自己修改,选择自己的打印机,打印方式,纸张大小等等
(defun Getpts(BlkName / ss i ent pts)<BR> (defun GetBox(ent / pt1 pt2)<BR> (vla-getboundingbox (vlax-ename->vla-object ent) 'pt1 'pt2)<BR> (mapcar 'vlax-safearray->list (list pt1 pt2))<BR> )<BR> (if (= (type BlkName) 'STR)<BR> (setq ss (ssget "x" (list '(0 . "INSERT") (cons 2 BlkName))))<BR> (progn<BR> (setq ss (ssadd))<BR> (ssadd BlkName ss)<BR> )<BR> )<BR> (setq i 0)<BR> (if ss<BR> (repeat (sslength ss)<BR> (setq ent (ssname ss i))<BR> (setq pts (append pts (list (GetBox ent))))<BR> (setq i (1+ i))<BR> )<BR> )<BR> pts<BR>)
(defun c:Wplot( / BlkName plt pts i pt pt1 scale)<BR> (vl-load-com)<BR> (setq BlkName (getstring "输入块名<Base>:"))<BR> (if (= BlkName "") (setq BlkName "base"))<BR> (setq plt (car (entsel "选择图框<全部>...")))<BR> (if plt (setq BlkName plt)) <BR> (setq pts (GetPts BlkName))<BR> (setq i 0)<BR> (setvar "cmdecho" 0)<BR> (repeat (length pts)<BR> (setq pt (nth i pts))<BR> (setq pt1 (cadr pt))<BR> (command "_.plot" "y" "Model" "RICOH_A4_Hor.pc3" "A4 (210 x 297 mm)"<BR> "m" "l" "n" "w" pt1 pt "" "c" "n" "." "y" "a" "n" "y" "y")<BR> (setq i (1+ i))<BR> )<BR> (princ)<BR>) 我按照lsp在cad用-plot模拟了一遍,可是输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: c这一步做不下去,不知道为何?
(command "_.plot" "y" "Model" "RICOH_A4_Hor.pc3" "A4 (210 x 297 mm)"<BR> "m" "l" "n" "w" pt1 pt "" "c" "n" "." "y" "a" "n" "y" "y")
命令: -plot<BR>是否需要详细打印配置?[是(Y)/否(N)] <否>: y
输入布局名或 [?] <模型>:<BR>输入输出设备的名称或 [?] <Epson Stylus COLOR 460 ESC/P 2>:<BR>输入图纸尺寸或 [?] <A4>:<BR>输入图纸单位 [英寸(I)/毫米(M] <毫米>: m<BR>输入图形方向 [纵向(P)/横向(L)] <横向>: l<BR>是否反向打印?[是(Y)/否(N)] <否>:<BR>输入打印区域 [显示(D)/范围(E)/图形界限(L)/视图(V)/窗口(W)] <显示>: w<BR>输入窗口的左下角 <0.000000,0.000000>:<BR>输入窗口的右上角 <0.000000,0.000000>: 555555,5555<BR>输入打印比例 (打印的 毫米=图形单位) 或 [布满(F)] <Fit>: ?<BR><?> 不是有效比例。<BR>输入打印比例 (打印的 毫米=图形单位) 或 [布满(F)] <Fit>:<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: c<BR><c> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: C<BR><C> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: ?<BR><?> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: c<BR><c> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: q<BR><q> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: w<BR><w> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: e<BR><e> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: r<BR><r> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: t<BR><t> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: y<BR><y> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: u<BR><u> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: i<BR><i> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: o<BR><o> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: p<BR><p> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: l<BR><l> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: k<BR><k> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: j<BR><j> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: h<BR><h> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: g<BR><g> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: f<BR><f> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: d<BR><d> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: s<BR><s> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: a<BR><a> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: z<BR><z> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: x<BR><x> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: c<BR><c> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: v<BR><v> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: b<BR><b> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: n<BR><n> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: m<BR><m> 不是有效偏移。<BR>输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>:<BR>是否按样式打印?[是(Y)/否(N)] <是>: ?
无效的选项关键字。<BR>是否按样式打印?[是(Y)/否(N)] <是>: n<BR>输入打印样式表名称或 [?] (输入 . 表示无) <>: .<BR>是否打印线宽?[是(Y)/否(N)] <是>:<BR>输入着色打印设置 [按显示(A)/线框(W)/消隐(H)/渲染(R)] <按显示>: a<BR>是否打印到文件 [是(Y)/否(N)] <N>: n<BR>是否保存对页面设置的更改 [是(Y)/否(N)]? <N> y<BR>是否继续打印?[是(Y)/否(N)] <Y>: y 用lsp做也有个问题,"选择图框<全部>..."做到这一步,一点就出现很多未知命令“………”。按 F1 查看帮助。
我的图框块名是aa
WPLOT 输入块名<Base>:aa<BR>选择图框<全部>...未知命令“WPLOT”。按 F1 查看帮助。<BR>未知命令“C”。按 F1 查看帮助。<BR>未知命令“N”。按 F1 查看帮助。<BR>未知命令“WPLOT”。按 F1 查看帮助。<BR>未知命令“Y”。按 F1 查看帮助。<BR>未知命令“A”。按 F1 查看帮助。<BR>未知命令“Y”。按 F1 查看帮助。<BR>未知命令“Y”。按 F1 查看帮助。<BR>未知命令“Y”。按 F1 查看帮助。
页:
[1]
2