找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1624|回复: 5

[求助] [求助]:在lisp中执行pline命令的代码应该如何编写?

[复制链接]
发表于 2004-4-29 01:04:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
在lisp中,使用command函数执行“pline”命令时,能够同时实现直线和圆弧的绘图功能(即如在cad中的“a”、“L"参数的互换)、并能够获取所画出的实体的程序代码应该如何?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-4-29 15:21:43 | 显示全部楼层
先构造一个表
表中的元素可以是点、"a","l", "w","close"
但必须用点开头。

  1. ;
  2. ;(MyPLine pttab)
  3. ;用pttab画出多义线
  4. ;
  5. ;参数
  6. ;  pttab         线结点表
  7. ;
  8. ;返回值
  9. ;  went          多义线图元
  10. ;-------------------------------------------------------------------
  11. (defun MyPLine(pttab / pt)
  12.   (if(= (last pttab) "CLOSE")
  13.     (progn
  14.       (command "_.pline")(foreach pt pttab(command pt))
  15.     )
  16.     (progn
  17.       (command "_.pline")(foreach pt pttab(command pt))(command "")
  18.     )
  19.   )
  20.   (entlast)
  21. )
  22. ;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-4-29 21:04:01 | 显示全部楼层
(defun c:test()
(command ".pline" )
(while (/= ""(getvar "cmdnames"))(command pause))
(entlast)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-1 14:26:54 | 显示全部楼层
非常感谢以上两位,不过还要请教aeo
(/= ""(getvar "cmdnames"))
语句的作用的是什么?
是不是可以这样理解:pline命令中,所输入的“a”、“l”、“cl”等参数都可以认为是通透命令的一种?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-5 18:51:45 | 显示全部楼层
最初由 akang 发布
[B]非常感谢以上两位,不过还要请教aeo
(/= ""(getvar "cmdnames"))
语句的作用的是什么?
是不是可以这样理解:pline命令中,所输入的“a”、“l”、“cl”等参数都可以认为是通透命令的一种? [/B]


(/= ""(getvar "cmdnames"))
用于判断当前是不是仍然在PLINE命令中

所输入的“a”、“l”、“cl”等参数都可以认为是通透命令的一种?
不可以这么认为。这些是命令的选项。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-5 23:12:54 | 显示全部楼层
最初由 aeo 发布
[B](defun c:test()
(command ".pline" )
(while (/= ""(getvar "cmdnames"))(command pause))
(entlast)
) [/B]

加一点

  1. (defun c:test(/ oce)
  2. (setq oce (getvar "cmdecho"))
  3. (setvar "cmdecho" 1)
  4. (command ".pline" )
  5. (while (/= ""(getvar "cmdnames"))(command pause))
  6. (setvar "cmdecho" oce)
  7. (entlast)
  8. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 03:42 , Processed in 0.168086 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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