The Courage Dog 发表于 2022-7-6 15:14:23

超链接坐标到选项卡

嗨,有谁知道如何将坐标超链接到表中的技巧或lisp吗?我的意思是,当你试图通过点击点来生成x和y坐标时,它会自动更新表格,就像这样。。。。。。。不是得到x和y坐标,而是将其复制并粘贴到表中,这很烦人。。。。
 
非常感谢您的专业知识。。。
 
谢谢
满意的

ASMI 发表于 2022-7-6 15:23:48

那个点是“点”实体还是别的什么?例如,块插入点?可以在表内插入字段(参见图纸)。编写lisp并不难,它将很快地将坐标插入表中(拾取点-拾取表单元格或拾取第一个单元格并拾取许多点以自动填充表),但需要更多信息,例如*。图纸。
协调。图纸

The Courage Dog 发表于 2022-7-6 15:27:07

多段线的每个角上都没有点或块。我只有多段线,我只需要选取每个角和弧的中心。我必须在多段线的每个角上创建点吗?或者,只需拾取多段线就可以得到lisp,它将为表格生成X和y坐标。

ASMI 发表于 2022-7-6 15:31:59

 
为什么不呢?
 
(defun c:ppoint()
(and
    (setq cLp(entsel "\nSelect LwPoliline > "))
    (= "LWPOLYLINE"(cdr(assoc 0(setq cLp(entget(car cLp))))))
    (mapcar '(lambda(x)(vl-cmdf "_.point" x))(mapcar 'cdr
   (vl-remove-if-not '(lambda(a)(= 10(car a)))cLp)))
   ); end and
(princ)
); end of c:ppoint
 
 
我只能写作。

The Courage Dog 发表于 2022-7-6 15:35:35

如果你有时间写代码(关于拾取多段线&它将生成x和y坐标并自动链接到表格),请给我副本。谢谢Asmi

ASMI 发表于 2022-7-6 15:41:24

因为素描里没有契库普和其他东西。。。在表格中选择一条多段线,然后在第一个单元格内单击。缺少的行将自动添加。它不是字段,但工作正常。
 
(defun c:tabord(/ cPl cTb ptLst vlaTab hitPt hitRes
        ptLst Row Column rCnt adNum chT cStr)

(vl-load-com)

(defun Extract_DXF_Code(Entity Code / cPl)
   (cdr(assoc Code(setq cPl(entget(car Entity)))))
   ); end of Extract_DXF_Code

(if
   (and
   (setq cPl(entsel "\nSelect LwPoliline > "))
   (= "LWPOLYLINE"(Extract_DXF_Code cPl 0))
   ); end and
   (if
(and
(setq cTb(entsel "\nSelect Table > "))
(= "ACAD_TABLE"(Extract_DXF_Code cTb 0))
); end and
(if
(setq cPt(getpoint "\nClick inside first cell > "))
(progn
    (setq vlaTab(vlax-ename->vla-object(car cTb))
          hitPt (vlax-3D-Point(trans cPt 1 0))
          hitRes(vla-HitTest vlaTab hitPt
                        (vlax-3D-Point '(0.0 0.0 1.0)) 'Row 'Column)
          ptLst(mapcar 'cdr
                  (vl-remove-if-not
                    '(lambda(a)(= 10(car a)))
                          (entget(car cPl))))
          ); end setq
    (if(= :vlax-true hitRes)
      (progn
      (setq adNum(-(length ptLst)(-(vla-get-Rows vlaTab)Row))
          chT(vla-getRowHeight vlaTab Row)
          ); end setq
      (if(not(minusp adNum))
        (vla-InsertRows vlaTab Row chT adNum)
       ); end if
      (foreach itm ptLst
        (setq cStr
             (strcat(rtos(car itm)2 2)
                      ","
                      (rtos(cadr itm)2 2))
       ); end setq
        (vla-SetCellValue vlaTab Row Column cStr)
        (setq Row(1+ Row))
        ); end foreach
      ); end progn
    ); end if
); end if
); end progn
); end if
   ); end if
   (princ)
   ); end of c:tabord

The Courage Dog 发表于 2022-7-6 15:47:41

我试试这个,再次谢谢阿斯米先生。

The Courage Dog 发表于 2022-7-6 15:51:11

我试过你的tabord。lsp,很好用。在我的要求中,我需要x和y坐标在单独的单元格上,并且我需要最后的数字是4,请参见图。

ASMI 发表于 2022-7-6 15:57:41

好啊但它可以得到一些时间。

The Courage Dog 发表于 2022-7-6 16:03:55

提前感谢。。。。
页: [1] 2
查看完整版本: 超链接坐标到选项卡