CAD中怎样一次算出多条多段线的总长度

CAD中怎样一次算出多条多段线的总长度,第1张

1、首先在命令栏输入命令“li"(英文大小写都可以,这个没有影响,下面步骤中输入命令也是这样,没有区分),然后按”Enter“键确定。

2、然后我们选择两条不同的线段,如图所示,选择好对象,按”Enter“键确定。

3、就会d出文本窗口,上面有两个不同的对象的长度值。

4、在百度上搜索下载”cad计算总长度插件。

5、然后回到我们要测长度所对应的cad图纸,点击”工具“---”加载应用程序“。

li命令全称(LIST)就是一个查询图形各种参数特征的工具,点击要查询的图素后再输入LI,该图素所有信息都可以出现,包括图素类型,颜色,图层,长度,坐标,面积,等等等,主要是用来方便作图者快速了解图元的一个快捷工具。

Graphics 中有些abstract method,继承它的类必须要实现这些abstract method

Graphics s=new Graphics(); 这也是不对的,abstract class 不能直接new

具体如需实现的方法如下

@Override

public void clearRect(int x, int y, int width, int height) {

// TODO Auto-generated method stub

}

@Override

public void clipRect(int x, int y, int width, int height) {

// TODO Auto-generated method stub

}

@Override

public void copyArea(int x, int y, int width, int height, int dx, int dy) {

// TODO Auto-generated method stub

}

@Override

public Graphics create() {

// TODO Auto-generated method stub

return null;

}

@Override

public void dispose() {

// TODO Auto-generated method stub

}

@Override

public void drawArc(int x, int y, int width, int height, int startAngle,

int arcAngle) {

// TODO Auto-generated method stub

}

@Override

public boolean drawImage(Image img, int x, int y, Color bgcolor,

ImageObserver observer) {

// TODO Auto-generated method stub

return false;

}

@Override

public boolean drawImage(Image img, int x, int y, ImageObserver observer) {

// TODO Auto-generated method stub

return false;

}

@Override

public boolean drawImage(Image img, int x, int y, int width, int height,

Color bgcolor, ImageObserver observer) {

// TODO Auto-generated method stub

return false;

}

@Override

public boolean drawImage(Image img, int x, int y, int width, int height,

ImageObserver observer) {

// TODO Auto-generated method stub

return false;

}

@Override

public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2,

int sx1, int sy1, int sx2, int sy2, Color bgcolor,

ImageObserver observer) {

// TODO Auto-generated method stub

return false;

}

@Override

public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2,

int sx1, int sy1, int sx2, int sy2, ImageObserver observer) {

// TODO Auto-generated method stub

return false;

}

@Override

public void drawLine(int x1, int y1, int x2, int y2) {

// TODO Auto-generated method stub

}

@Override

public void drawOval(int x, int y, int width, int height) {

// TODO Auto-generated method stub

}

@Override

public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) {

// TODO Auto-generated method stub

}

@Override

public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) {

// TODO Auto-generated method stub

}

@Override

public void drawRoundRect(int x, int y, int width, int height,

int arcWidth, int arcHeight) {

// TODO Auto-generated method stub

}

@Override

public void drawString(AttributedCharacterIterator iterator, int x, int y) {

// TODO Auto-generated method stub

}

@Override

public void drawString(String str, int x, int y) {

// TODO Auto-generated method stub

}

@Override

public void fillArc(int x, int y, int width, int height, int startAngle,

int arcAngle) {

// TODO Auto-generated method stub

}

@Override

public void fillOval(int x, int y, int width, int height) {

// TODO Auto-generated method stub

}

@Override

public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) {

// TODO Auto-generated method stub

}

@Override

public void fillRect(int x, int y, int width, int height) {

// TODO Auto-generated method stub

}

@Override

public void fillRoundRect(int x, int y, int width, int height,

int arcWidth, int arcHeight) {

// TODO Auto-generated method stub

}

@Override

public Shape getClip() {

// TODO Auto-generated method stub

return null;

}

@Override

public Rectangle getClipBounds() {

// TODO Auto-generated method stub

return null;

}

@Override

public Color getColor() {

// TODO Auto-generated method stub

return null;

}

@Override

public Font getFont() {

// TODO Auto-generated method stub

return null;

}

@Override

public FontMetrics getFontMetrics(Font f) {

// TODO Auto-generated method stub

return null;

}

@Override

public void setClip(int x, int y, int width, int height) {

// TODO Auto-generated method stub

}

@Override

public void setClip(Shape clip) {

// TODO Auto-generated method stub

}

@Override

public void setColor(Color c) {

// TODO Auto-generated method stub

}

@Override

public void setFont(Font font) {

// TODO Auto-generated method stub

}

@Override

public void setPaintMode() {

// TODO Auto-generated method stub

}

@Override

public void setXORMode(Color c1) {

// TODO Auto-generated method stub

}

@Override

public void translate(int x, int y) {

// TODO Auto-generated method stub

}

pl回车。输入线起点宽度(XX)回车。输入线终点宽度(XX)回车。这两个数要一样。适用于少量线加粗。多数线变粗的话有个命令。但是不是CAD自带的。可以自己做,但是要作成AutoLISP 应用程序源代码的类型。后缀为LSP。打开此命令是用记事本。大概可以用相同的文件改,代码在下面。改好以后命名为CW。作好后放在安装的cad2002\Support文件夹下就可以了。用法:(load“cw”)回车,cw回车,输入线宽回车,选择要变宽的线即可。代码如下:(希望你能看懂哈哈。。)

(defun absang(ang)(while (> ang ( 20 pi)) (setq ang (- ang ( 20 pi))))

(if (< ang 0)( setq ang (+ ( 20 pi) ang ))ang))

(defun c:cw(/ length pick width wdlist whlist n pickn pickout flag dpcen ang1

ang2 rad dp1 dp2 atan ch0 listpl entpl entver entver1 entver2 entlist1 entlist2 nn)

(princ"\n 欢迎使用CW小程序")(princ"\n 本程序可以将多条多义线或是单线的宽度进行改变:")(initget 1)

(setq width (getreal "\n 请输入所需宽度:"))(setq wdlist (cons 40 width))

(setq whlist (cons 41 width))(princ"\n 请选择多义线或是单线:")(setq pick (ssget))

(if (not pick)(progn (princ "\n怎么什么也没选呢我不干了!")(exit)))

(setq length (sslength pick))(setq n 0)(setq nn 0)(repeat length

(setq pickn (ssname pick n))(setq n (1+ n))(setq pickout (entget pickn))

(cond((equal (cdr (assoc '0 pickout)) "POLYLINE")

(setq pickout (subst wdlist (assoc '40 pickout) pickout) pickout (subst whlist (assoc '41 pickout) pickout))

(entmod pickout)(setq flag 1)(while flag (setq pickn (entnext pickn )

pickout (entget pickn))(cond ((equal (cdr (assoc '0 pickout)) "VERTEX")

(setq pickout (subst wdlist (assoc '40 pickout) pickout)

pickout (subst whlist (assoc '41 pickout) pickout))(entmod pickout))

((equal (cdr (assoc '0 pickout)) "SEQEND")(setq flag nil)))))

((equal (cdr (assoc '0 pickout)) "ARC")(setq dpcen (cdr (assoc '10 pickout))

ang1 (cdr (assoc '50 pickout))ang2 (cdr (assoc '51 pickout)) rad (cdr (assoc '40 pickout))

dp1 (polar dpcen ang1 rad)dp2 (polar dpcen ang2 rad)atan (/ (absang (- ang2 ang1)) 40)

atan (/ (sin atan) (cos atan)) ch0 (cdr (assoc '8 pickout)))

(setq listpl '((210 00 00 10)(71 0)(72 0)(73 0)(74 0)(75 0))

entpl (cons wdlist (cons whlist listpl)) entpl (cons '(10 00 00 00) entpl)

entpl (cons '(70 0)entpl)entpl (cons '(66 1)entpl)entpl (cons (cons 8 ch0)entpl)

entpl (cons '(0 "POLYLINE") entpl))(entmake entpl)

(setq entver '((70 0)(50 00)(71 0)(72 0)(73 0)(74 0))

entver (cons (cons 42 atan) entver )entver (cons wdlist (cons whlist entver))

entver (cons (cons 8 ch0)entver )entver1(cons (cons 10 dp1)entver )

entver2(cons (cons 10 dp2)entver)entver1(cons '(0 "VERTEX") entver1)

entver2(cons '(0 "VERTEX") entver2))(entdel pickn)(entmake entver1)

(entmake entver2)(entmake '((0 "SEQEND"))))

((equal (cdr (assoc '0 pickout)) "LINE")(setq dp1 (cdr (assoc '10 pickout))

dp2 (cdr (assoc '11 pickout))ch0 (cdr (assoc '8 pickout)))(entdel pickn)

(setq entlist1 '((71 0)(72 0)(73 0)(74 0)(75 0)) entlist2 '((71 0)(72 0)(73 0)(74 0)))

(setq entpl (cons '(210 00 00 10) entlist1) entpl (cons wdlist (cons whlist entpl))

entpl (cons '(10 00 00 00) entpl) entpl (cons '(70 0) entpl) entpl (cons '(66 1) entpl)

entpl (cons (cons 8 ch0) entpl) entpl (cons '(0 "POLYLINE") entpl))

(entmake entpl)(setq entver(cons '(50 00) entlist2) entver(cons '(70 0) entver )

entver(cons '(42 00) entver ) entver(cons wdlist (cons whlist entver))

entver(cons (cons 8 ch0) entver) entver1(cons (cons 10 dp1)entver)

entver1(cons '(0 "VERTEX") entver1))(entmake entver1)

(setq entver2(cons (cons 10 dp2)entver) entver2(cons '(0 "VERTEX") entver2))

(entmake entver2)(entmake '((0 "SEQEND"))))(pickn (setq nn (1+ nn)))))(redraw)

(if (> nn 0)(progn(princ "\n顺利完成")(princ "\n选择集中共有 ")(princ nn)(princ " 个不是弧,单线,多义线的实体,未做处理")))

(princ))

以上就是关于CAD中怎样一次算出多条多段线的总长度全部的内容,包括:CAD中怎样一次算出多条多段线的总长度、java小程序,,,、天正软件拉伸,拉长一个图怎么拉啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10074475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存