CAD Monkey Cham 发表于 2022-7-5 16:43:11

东距和北距Lisp路由

大家好
 
我是这个论坛的新手,所以如果之前有人问我这个问题,请原谅我(我做了搜索,没有找到我想要的东西)。
 
现在是否有人使用lisp例程等,该例程可以同时生成X和Y坐标,并将一个坐标放置在另一个坐标之上,并使用指示原点的引线或圆选项(请参见随附的gif)。
我必须在工作中随时制作放样计划,以便对建筑物、停车场和道路进行放样。
我知道AutoCAD的“坐标”命令,但这只会同时执行X或Y。
 
我还想选择以米或毫米为单位生成坐标。我倾向于在mm中工作,但由于要显示的数字较少,所以生成以米为单位的co。
 
非常感谢您的帮助/建议。
 
当做
 
2007年CAD猴子冠军

Guest Alan Cull 发表于 2022-7-5 16:49:06

我有一对夫妇,mm和m。但没有领导。我还有一个也提供了作为RL的Z值。如果你想要他们,就喊。

CAD Monkey Cham 发表于 2022-7-5 16:51:56

你好
 
听起来他们可能有用,如果我能有一个副本,这将是伟大的,我可能能够定制一点。
 
干杯

Guest Alan Cull 发表于 2022-7-5 16:56:23

好的,给你。原始配置文件是米,需要相关的配置文件。另外两个(后缀mm)是最近才为Tiger重写的,即mm。我认为它们比我写的原件好多了。
 
坐标。拉链

CAD Monkey Cham 发表于 2022-7-5 16:58:07

谢谢你的帮助
 
CAD猴子

BIGAL 发表于 2022-7-5 17:01:13

你们有并没有考虑过用这些信息更新一个奇特的区块,我们只是复制区块然后选取点。十、 Y、Z属性已更新。

smorales02 发表于 2022-7-5 17:06:06

你们是否希望能够选择一个点,并有一个和北纬和东纬相关联的领导者?如果是这样的话,我有一个这样做的常规,如果你需要,请告诉我。。

NBC 发表于 2022-7-5 17:09:25

这听起来像是块的作业,其中字段使用块的插入点作为其属性,或类似的内容。

fixo 发表于 2022-7-5 17:12:23

试试这个
 

(defun layer_set (lyr col ltp)
(setvar "cmdecho" 0)
(if (tblsearch "layer" lyr)
(command "._-layer" "t" lyr "u" lyr "on" lyr"s" lyr "")
(command "._-layer" "m" lyr "c" col lyr "lt" ltp lyr ""))
)

(or (vl-load-com))

(defun C:lne (/        *debug*        *error*        acsp        adoc        ang        anno        atp
        col        lead        lyr        mtextobj        mtpt        nodpt
        ort        osm        pt        ptlist        ss        tmparray
        tmpvar        txh        xval        yval
       )

(defun *Error* (msg)
(cond        ((not msg))
((member msg '("Function cancelled" "quit / exit abort")))
((princ (strcat "\nError: " msg))
(cond (*Debug* (vl-bt)))
)
)
(setvar "cmdecho" 1)
(setvar "delobj" 1)
(if osm (setvar "osmode" osm))
(if ort (setvar "orthomode" ort))
(if lyr (setvar "clayer" lyr))
(if col (setvar "cecolor" col))
   
(vla-endundomark
(vla-get-activedocument (vlax-get-acad-object))
   )
)


(or adoc
   (setq adoc (vla-get-activedocument
           (vlax-get-acad-object)
       )
   )
)
(or acsp
   (setq acsp (if (= (getvar "TILEMODE") 0)
           (vla-get-paperspace
             adoc
           )
           (vla-get-modelspace
             adoc
           )
       )
   )
)
(vla-endundomark adoc)
(vla-startundomark adoc)

(setq osm (getvar "osmode"))
(setq lyr (getvar "clayer"))   
(setq ort (getvar "orthomode"))   
(setq col (getvar "cecolor"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)

(initget 6)
(setq txh (getreal (strcat "\nEnter New Value For Text Height <" (rtos (getvar "dimtxt")) "> :")))
(if (not txh)(setq txh (getvar "dimtxt")))   
(setvar "textsize" txh)
(if (not (tblsearch "block" "ArrowDonut"))
   (progn
      (setq ss (ssadd))
      (setvar "delobj" 1)
      (layer_set "ANNO-LEADER" "10" "Continuous")
      (setvar "cecolor" "256")
      (command "._circle" "0,0,0" 1.0);<-change outer diameter of donut here
      (ssadd (entlast) ss)
      (command "._circle" "0,0,0" 0.75);<-change inner diameter of donut here
      (ssadd (entlast) ss)
      (command "._-block" "ArrowDonut" "0,0,0" ss "")
)
   )

      
(while
(setq pt (getpoint "\nSpecify the starting point of the leader (press Enter to exit): \n"))

(setq ptlist (cons pt ptlist))
(while (setq
   pt (getpoint "\nSpecify next point press Enter to finish: " pt)
)
   (setq ptlist (cons pt ptlist)
   )
)

(setq ptlist (reverse ptlist))
(setq ang (angle (car ptlist )(cadr ptlist)))

(if (< (/ pi 2) ang (* pi 1.5))
   (setq atp acAttachmentPointMiddleRight)
   (setq atp acAttachmentPointMiddleLeft))
(setq nodpt (car ptlist)
xval (rtos (car nodpt) 2 3); easting
yval (rtos (cadr nodpt) 2 3);northing
anno (strcat "N " yval "\\PE " xval)
mtpt (vlax-3d-point (cadr ptlist)))
(layer_set "ANNO-TEXT" "2" "Continuous")
(setvar "cecolor" "256")
(setq        mtextobj (vla-addmtext
           acsp
           mtpt
           0.0
           anno
       )
)
(vla-put-height mtextobj txh)
(vla-put-attachmentPoint mtextobj atp)
(vla-put-insertionPoint mtextobj mtpt)
(setq ptlist (apply 'append ptlist))
(setq        tmparray
(vlax-make-safearray
   vlax-vbdouble
   (cons 0 (- (length ptlist) 1))
)
)
(vlax-safearray-fill tmparray ptlist)
(setq tmpvar (vlax-make-variant tmparray))
(layer_set "ANNO-LEADER" "10" "Continuous")
(setvar "cecolor" "256")
(setq lead (vla-addleader acsp tmpvar mtextobj acLineWithArrow))
(vla-put-verticaltextposition lead acvertcentered)

(vla-put-arrowheadblock lead "arrowdonut")
(vla-put-arrowheadsize lead (* 0.5 txh))
(vla-update lead)
(setq ptlist nil);optional
   )

(vla-regen adoc acactiveviewport);optional
(*Error* nil)
(princ)
)
(princ "\n\t\t\t   |-----------------------------|\n")
(princ "\n\t\t\t<|Start with LNE to execute|>\n")
(princ "\n\t\t\t   |-----------------------------|\n")

chulse 发表于 2022-7-5 17:15:33

http://www.cadtutor.net/forum/showthread.php?t=10812&highlight=ordi
 
有X,Y坐标,如果你想的话,我可以改变它。
页: [1] 2
查看完整版本: 东距和北距Lisp路由