明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3111|回复: 33

画楼梯疑问

[复制链接]
发表于 2023-5-3 17:27:11 | 显示全部楼层 |阅读模式
画楼梯代码学习疑问,帮忙解释一下,为何此处没有执行执行画多线pline命令,画出了多线?
此为李小科30集入门视频之第八集,
如有需要学习入门朋友,大神推荐,感谢论坛,感谢大神。百度网盘下载链接:https://pan.baidu.com/s/1sS3hoafjfJekGPH8pTNhtg  提取码:1111
bilibili网址如下:AutoLISP入门实例视频教程_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV15b411T74a/?spm_id_from=333.337.search-card.all.click&vd_source=8f0b874732a8b06a25e898707279ce59
(defun c:8demo3()
此代码动图如附件:

(defun c:88()
      (setvar "cmdecho" 0)
      (setq osm (getvar "osmode"))
      (setvar "osmode" 0)
    (setq pa (getpoint  "选择基点"))
   (setq w (getdist  pa "输入楼梯踏面宽度:" ))
     (setq  pb (polar pa 0 w ))
    (setq h (getdist pa "输入楼梯高度:" ))
         (setq pc (polar pb (/ pi 2) h ))
     (setq n (getint "输入楼梯阶数:"))
     (setq dw (/ w n))
     (setq dh (/ h n))
                 (command "pline"  pc pb pa)
     (setq p1 (polar pa  (/ pi 2)  dh ))
         (setq p2 (polar p1 0 dw ))
     (repeat  n
          (command  p1 p2)"""帮忙解释一下,为何此处没有执行执行画多线pline命令,画出了多线?
          (setq p1 (polar p2  (/ pi 2)  dh ))
              (setq p2 (polar p1 0 dw ))
              (princ)
     )
      (command "")
  )


本帖子中包含更多资源

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

x
发表于 2023-5-3 19:38:31 | 显示全部楼层
  1. (defun c:88(/ dh dw h n p1 p2 pa pb pc pts w)
  2.         (setq pa(getpoint "\n选择基点:"))
  3.         (setq w (getdist pa "\n输入楼梯踏面宽度:" ))
  4.         (setq pb(polar pa 0 w))
  5.         (setq h (getdist pa "\n输入楼梯高度:" ))
  6.         (setq pc(polar pb (/ pi 2) h ))
  7.         (setq n (getint "\n输入楼梯阶数:"))
  8.         (setq dw (/ w n))
  9.         (setq dh (/ h n))
  10.         (setq pts '())
  11.         (setq pts (append pts (list pc pb pa)))
  12.         (setq p1 (polar pa  (/ pi 2)  dh ))
  13.         (setq p2 (polar p1 0 dw ))
  14.         (repeat  n
  15.                 (setq pts (append pts (list p1 p2)))
  16.                 (setq p1 (polar p2 (/ pi 2) dh ))
  17.                 (setq p2 (polar p1 0 dw ))
  18.         )
  19.         (entmake (append (list
  20.                                                                                  '(0 . "LWPOLYLINE")
  21.                                                                                  '(100 . "AcDbEntity")
  22.                                                                                  '(100 . "AcDbPolyline")
  23.                                                                                  (cons 90 (length pts))
  24.                                                                                  (cons 70 1)
  25.                                                                         )
  26.                                                  (mapcar '(lambda (a) (cons 10 a)) pts))
  27.   )
  28.         (princ)
  29. )

用entmake 就通用了
发表于 2023-5-3 19:33:37 | 显示全部楼层
  1. (defun c:88()
  2.         (setvar "cmdecho" 0)
  3.         (setq osm (getvar "osmode"))
  4.         (setvar "osmode" 0)
  5.         (setq pa (getpoint  "选择基点"))
  6.         (setq w (getdist  pa "输入楼梯踏面宽度:" ))
  7.         (setq  pb (polar pa 0 w ))
  8.         (setq h (getdist pa "输入楼梯高度:" ))
  9.         (setq pc (polar pb (/ pi 2) h ))
  10.         (setq n (getint "输入楼梯阶数:"))
  11.         (setq dw (/ w n))
  12.         (setq dh (/ h n))
  13.         (command "pline"  pc pb pa)
  14.         (setq p1 (polar pa  (/ pi 2)  dh ))
  15.         (setq p2 (polar p1 0 dw ))
  16.         (repeat  n
  17.                 (command p1 p2)
  18.                 (setq p1 (polar p2 (/ pi 2) dh ))
  19.                 (setq p2 (polar p1 0 dw ))
  20.                 (princ)
  21.         )
  22.         (command "")
  23. )

可能是版本问题 command 会有不通用的情况 我在07上测试没问题
 楼主| 发表于 2023-5-4 08:17:48 | 显示全部楼层
1,你的录制动态gif?为何看不见?试试我之前的软件?

2,为何command没有执行完毕?没有完毕怎么会进入下个语句?执行赋值?
3,你的entake,里面为什么又在执行画线?如果没有退出,那不是重复?
4,打破砂锅问到底,万望见谅!

作为回报,还是世界经典纯音乐奉上,淘宝购买一百多元。

链接永久有效:https://pan.baidu.com/s/1gA-yfGJFLNcqm-vUKlj3QQ
提取码:1111

本帖子中包含更多资源

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

x
 楼主| 发表于 2023-5-3 20:24:46 | 显示全部楼层
我测试command也是无问题,想问下用command的话(commmand p1 p2)是什么意思?
 楼主| 发表于 2023-5-3 20:31:34 | 显示全部楼层

数字行号是用什么做出来的?

本帖子中包含更多资源

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

x
发表于 2023-5-3 20:33:53 | 显示全部楼层
ferious 发表于 2023-5-3 20:24
我测试command也是无问题,想问下用command的话(commmand p1 p2)是什么意思?

相当于鼠标在绘图区点了两个点
 楼主| 发表于 2023-5-3 20:40:55 | 显示全部楼层
1,点了两点怎么能画出多线,2,你有没有command函数调用cad命令的语法示例讲解资料,3,序号是什么?
发表于 2023-5-3 20:43:15 | 显示全部楼层
ferious 发表于 2023-5-3 20:31
数字行号是用什么做出来的?


发表于 2023-5-3 21:02:18 | 显示全部楼层
ferious 发表于 2023-5-3 20:40
1,点了两点怎么能画出多线,2,你有没有command函数调用cad命令的语法示例讲解资料,3,序号是什么?

command 命令流 都是在CAD上自己测试 输入命令一步步操作 对应command后的内容 用这个有序号
发表于 2023-5-3 21:15:45 | 显示全部楼层
(command "pline"  pc pb pa)这里开始执行命令 但是没有结束 之后的每一次command 点  都是画线 给多少点都能画
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 04:28 , Processed in 0.218187 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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