明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3135|回复: 4

三维多段线绘制矩形,求助

[复制链接]
发表于 2012-10-14 02:52 | 显示全部楼层 |阅读模式
本帖最后由 xman00 于 2012-10-22 21:55 编辑

求助:LSP编写,三维多段线绘制矩形
效果:用三维多段线绘制矩形,操作:指定第一个角点,输入尺寸。重点是线的类型为三维多段线,即四个角点Z坐标固定为0.

看了下论坛相关的矩形绘制的贴子,因本人对LSP一窍不通,只能根据我的理解提供一下思路,希望高人们帮忙解决一下。

由3DPOLY自己画矩形的话,需输入四个角点坐标,此处与用二维多段线PLINE自己绘制矩形的步骤一致了。(此处矩形与系统自带命令RECTANG矩形绘制一样是正交矩形,非斜交)。

;;;矩形绘制系统过程界面
命令: rec RECTANG
指定第一个角点或 [倒角(C)/标高(E)/圆角(F)/厚度(T)/宽度(W)]:
指定另一个角点或 [面积(A)/尺寸(D)/旋转(R)]: d
指定矩形的长度 <30.00>: 30
指定矩形的宽度 <30.00>: 30
指定另一个角点或 [面积(A)/尺寸(D)/旋转(R)]:

由多段线(二维,三维无区别)绘制距离需输入P1,P2,P3,P4四个角点坐标,P1为用户点击取得,与REC命令中指定第一个角点一致,P4可通过多段线绘制前三个点后C闭合命令获取。P2,P3的值与REC命令下 D尺寸命令输入信息矩形的长度 ,矩形的宽度有计算关系(此处,Z坐标固定为0值,X或Y方向的增量对应为长度和宽度输入值)。

我能描述的就这些了,再次恳请大家帮忙写下LSP程序。

PS:长度和宽度输入值和REC命令中一样有记忆功能;捕捉不要关闭咯。
[倒角(C)/标高(E)/圆角(F)/厚度(T)/宽度(W)]:和 [面积(A)/旋转(R)]选项均不要哈,命令执行过程如下界面:

命令: recc
指定第一个角点:
指定矩形的长度 <30.00>:  30
指定矩形的宽度 <30.00>:  30
指定另一个角点(和REC命令中一样,即选择生成的矩形的象限位置)。


 楼主| 发表于 2012-10-14 11:23 | 显示全部楼层
自己顶一个先,求教高手哇
发表于 2012-10-14 16:51 | 显示全部楼层
  1. (defun c:tt()
  2.   (setq ent (entlast))
  3.   (command "_rectang")
  4.   (while (= 1 (getvar "cmdactive"))
  5.   (command pause)
  6.     )
  7.   (if (not (equal ent (setq ent (entlast))))
  8.     (progn
  9.       (setq pl (vl-remove-if-not '(lambda (x) (= 10 (car x))) (entget ent))
  10.             pl (mapcar '(lambda (x) (append (cdr x) '(0))) pl)
  11.             )
  12.       (entdel ent)
  13.       (command "_3dpoly")
  14.       (foreach pt pl  (command "_non" pt))
  15.       (command "_c")
  16.       )
  17.     )
  18.   )
发表于 2012-10-14 19:00 | 显示全部楼层
G版牛,什么都难不到.
 楼主| 发表于 2012-10-14 20:15 | 显示全部楼层
G大,真是G大啊,万分感谢。只能称赞一个,强。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-7 03:51 , Processed in 1.438451 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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