Civ 发表于 2022-7-6 06:52:14

乘法表帮助

此表已部分完成。为了创建产品,我需要安装嵌套循环的帮助。(定义c:mt()
(setvar“cmdecho”0)
(setq osmode(getvar“osmode”))
(setq r270(*pi 1.5))
(Initget 7)
(setq stpt(getpoint“\n输入起点:”)
(initget 7)
(setq num(getint“\n输入行数:”)
(setq textheight(getvar“textsize”))
(setq distbet(*textheight 1.5))
(setvar“osmode”0)
(setq索引1)
(setq nextpnt(极性stpt r270 distbet))
(重复num
(命令“text”“j”“mc”nextpnt“0”(itoa索引))
(setq nextpnt(极地nextpnt r270 distbet))
(setq指数(+指数1))
)
(setq索引1)
(setq nextpnt(极性stpt 0 distbet))
(重复num
(命令“text”“j”“mc”nextpnt“0”(itoa索引))
(setq nextpnt(极轴nextpnt 0 distbet))
(setq指数(+指数1))
)
 
(setvar“osmode”osmode)
(普林斯)
)

David Bethel 发表于 2022-7-6 07:26:29

欢迎来到CADTutor
 
虽然我不太理解您对循环的要求,但我还是冒昧地提供了一个表号创建的替代方案:
 

(defun c:mt (/ stpt num ts i)

(initget 7)
(setq stpt (getpoint "\nEnter the start point: "))

(initget 7)
(setq num (getint "\nEnter the number of rows: "))

(setq ts (getvar "TEXTSIZE")
       i 1)

(repeat num
   (entmake (list (cons 0 "TEXT")
                  (cons 1 (itoa i))
                  (cons 40 ts)(cons 72 1)(cons 73 2)
                  (cons 10 (polar stpt 0 (* i ts 1.5)))
                  (cons 11 (polar stpt 0 (* i ts 1.5)))))
   (entmake (list (cons 0 "TEXT")
                  (cons 1 (itoa i))
                  (cons 40 ts)(cons 72 1)(cons 73 2)
                  (cons 10 (polar stpt (* pi 1.5) (* i ts 1.5)))
                  (cons 11 (polar stpt (* pi 1.5) (* i ts 1.5)))))
   (setq i (1+ i)))

(princ))

 
另外,请用包装Autolisp代码
标记
 
-大卫

David Bethel 发表于 2022-7-6 07:40:24

再说一次,如果只是简单的数学表,那么你可以尝试:
 

(defun c:mt (/ stpt num ts i yp m)

(initget 7)
(setq stpt (getpoint "\nEnter the start point: "))

(initget 7)
(setq num (getint "\nEnter the number of rows: "))

(setq ts (getvar "TEXTSIZE")
      i 1)

(repeat num

;;;LABELS
   (entmake (list (cons 0 "TEXT")
                  (cons 1 (itoa i))
                  (cons 40 ts)(cons 72 1)(cons 73 2)
                  (cons 10 (polar stpt 0 (* i ts 2.0)))
                  (cons 11 (polar stpt 0 (* i ts 2.0)))))
   (entmake (list (cons 0 "TEXT")
                  (cons 1 (itoa i))
                  (cons 40 ts)(cons 72 1)(cons 73 2)
                  (cons 10 (polar stpt (* pi 1.5) (* i ts 1.5)))
                  (cons 11 (polar stpt (* pi 1.5) (* i ts 1.5)))))

;;;PRODUCTS
   (setq yp (polar stpt (* pi 1.5) (* i ts 1.5))
          m 1)
   (repeat num
      (entmake (list (cons 0 "TEXT")
                     (cons 1 (itoa (* i m)))
                     (cons 40 ts)(cons 72 1)(cons 73 2)
                     (cons 10 (polar yp 0 (* m ts 2.0)))
                     (cons 11 (polar yp 0 (* m ts 2.0)))))
      (setq m (1+ m)))

   (setq i (1+ i)))

(princ))

 
根据字体的不同,您需要调整X轴的增加(我从1.5调整到2.0),产品越大,文本越大。
 
-大卫

Civ 发表于 2022-7-6 08:05:11

我等不及要试试这个了。
页: [1]
查看完整版本: 乘法表帮助